@Test
public void testCombinedCase() throws Exception {
IType superType = JdtUtils.getJavaType(project, "org.test.spring.CombinedCaseSuperclass");
IType subType = JdtUtils.getJavaType(project, "org.test.spring.CombinedCaseSubclass");
IAnnotationMetadata metadata = getAnnotationMetadata(subType);
Annotation controllerAnnotation = metadata.getTypeLevelAnnotation(Controller.class.getName());
assertEquals(Controller.class.getName(), controllerAnnotation.getAnnotationClass());
Set<AnnotationMemberValuePair> controllerMembers = controllerAnnotation.getMembers();
assertEquals(0, controllerMembers.size());
Annotation requestAnnotation = metadata.getTypeLevelAnnotation(RequestMapping.class.getName());
assertEquals(RequestMapping.class.getName(), requestAnnotation.getAnnotationClass());
Set<AnnotationMemberValuePair> requestMembers = requestAnnotation.getMembers();
assertEquals(1, requestMembers.size());
AnnotationMemberValuePair pair = requestMembers.iterator().next();
assertNull(pair.getName());
assertEquals("/index3.htm, /index4.htm, /index5.htm", pair.getValue());
Map<IMethod, Annotation> beanMethodAnnotations = metadata.getMethodLevelAnnotations(Bean.class.getName());
assertEquals(4, beanMethodAnnotations.size());
IMethod getAnotherBean = subType.getMethod("getAnotherBean", new String[0]);
IMethod getBeanInstance = subType.getMethod("getBeanInstance", new String[0]);
IMethod getBeanInstanceWithString = subType.getMethod("getBeanInstance", new String[] {"QString;"});