@Test
 @SpecAssertions({@SpecAssertion(section = "12.4", id = "bi")})
 public void testProcessAnnotatedTypeFiredForWsEndpoint() {
   assertNotNull(ProcessAnnotatedTypeObserver.getWsEndpointEvent());
   validateWsEndpointAnnotatedType(
       ProcessAnnotatedTypeObserver.getWsEndpointEvent().getAnnotatedType());
 }
 @Test
 @SpecAssertions({
   @SpecAssertion(section = PAT, id = "aa"),
   @SpecAssertion(section = PAT, id = "ab"),
   @SpecAssertion(section = BEAN_DISCOVERY, id = "ba"),
   @SpecAssertion(section = PAT, id = "j")
 })
 public void testProcessAnnotatedTypeEventsSent() {
   // Randomly test some of the classes and interfaces that should have
   // been discovered and sent via the event
   assertTrue(ProcessAnnotatedTypeObserver.getAnnotatedclasses().contains(AbstractC.class));
   assertTrue(ProcessAnnotatedTypeObserver.getAnnotatedclasses().contains(ClassD.class));
   assertTrue(ProcessAnnotatedTypeObserver.getAnnotatedclasses().contains(Dog.class));
   assertTrue(ProcessAnnotatedTypeObserver.getAnnotatedclasses().contains(InterfaceA.class));
 }
 @Test
 @SpecAssertion(section = PAT, id = "ba")
 public void testGetAnnotatedType() {
   AnnotatedType<Dog> annotatedType = ProcessAnnotatedTypeObserver.getDogAnnotatedType();
   assertEquals(annotatedType.getBaseType(), Dog.class);
   Set<AnnotatedMethod<? super Dog>> annotatedMethods = annotatedType.getMethods();
   assertEquals(annotatedMethods.size(), 3);
   for (AnnotatedMethod<? super Dog> annotatedMethod : annotatedMethods) {
     Set<String> validMethodNames =
         new HashSet<String>(Arrays.asList("bite", "live", "drinkMilk"));
     if (!validMethodNames.contains(annotatedMethod.getJavaMember().getName())) {
       fail("Invalid method name found" + annotatedMethod.getJavaMember().getName());
     }
   }
 }
 @Test
 @SpecAssertion(section = PAT, id = "ac")
 public void testProcessAnnotatedTypeFiredForEnum() {
   assertTrue(ProcessAnnotatedTypeObserver.getAnnotatedclasses().contains(Type.class));
 }