@Override protected void setUp() throws Exception { super.setUp(); facetFactory = new TypeOfAnnotationForCollectionsFacetFactory(); facetFactory.setCollectionTypeRegistry(new CollectionTypeRegistryDefault()); }
public void testTypeOfAnnotationIgnoredForActionIfReturnTypeIsntACollectionType() { class Order {} class Customer { @SuppressWarnings("unused") @TypeOf(Order.class) public Customer someAction() { return null; } } final Method actionMethod = findMethod(Customer.class, "someAction"); facetFactory.process( new ProcessMethodContext(Customer.class, actionMethod, methodRemover, facetedMethod)); assertNull(facetedMethod.getFacet(TypeOfFacet.class)); assertNoMethodsRemoved(); }
public void testTypeOfFacetInferredForActionWithGenericCollectionReturnType() { class Order {} class Customer { @SuppressWarnings("unused") public Collection<Order> someAction() { return null; } } final Method actionMethod = findMethod(Customer.class, "someAction"); facetFactory.process( new ProcessMethodContext(Customer.class, actionMethod, methodRemover, facetedMethod)); final Facet facet = facetedMethod.getFacet(TypeOfFacet.class); assertNotNull(facet); assertTrue(facet instanceof TypeOfFacetInferredFromGenerics); final TypeOfFacetInferredFromGenerics typeOfFacetInferredFromGenerics = (TypeOfFacetInferredFromGenerics) facet; assertEquals(Order.class, typeOfFacetInferredFromGenerics.value()); }
public void testTypeOfFacetIsInferredForCollectionFromOrderArray() { class Order {} class Customer { @SuppressWarnings("unused") public Order[] getOrders() { return null; } } final Method collectionAccessorMethod = findMethod(Customer.class, "getOrders"); facetFactory.process( new ProcessMethodContext( Customer.class, collectionAccessorMethod, methodRemover, facetedMethod)); final Facet facet = facetedMethod.getFacet(TypeOfFacet.class); assertNotNull(facet); assertTrue(facet instanceof TypeOfFacetInferredFromArray); final TypeOfFacetInferredFromArray typeOfFacetInferredFromArray = (TypeOfFacetInferredFromArray) facet; assertEquals(Order.class, typeOfFacetInferredFromArray.value()); }
public void testTypeOfFacetInferredForCollectionWithJavaUtilSetReturnType() { class Order {} class Customer { @SuppressWarnings("unused") @TypeOf(Order.class) public Set getOrders() { return null; } } final Method accessorMethod = findMethod(Customer.class, "getOrders"); facetFactory.process( new ProcessMethodContext(Customer.class, accessorMethod, methodRemover, facetedMethod)); final Facet facet = facetedMethod.getFacet(TypeOfFacet.class); assertNotNull(facet); assertTrue(facet instanceof TypeOfFacetAnnotationForCollection); final TypeOfFacetAnnotationForCollection typeOfFacetAnnotationForCollection = (TypeOfFacetAnnotationForCollection) facet; assertEquals(Order.class, typeOfFacetAnnotationForCollection.value()); assertNoMethodsRemoved(); }
public void testTypeOfFacetInferredForActionWithJavaUtilCollectionReturnType() { class Order {} class Customer { // rawtypes are intention for this test @SuppressWarnings({"unused", "rawtypes"}) @TypeOf(Order.class) public Collection someAction() { return null; } } final Method actionMethod = findMethod(Customer.class, "someAction"); facetFactory.process( new ProcessMethodContext(Customer.class, actionMethod, methodRemover, facetedMethod)); final Facet facet = facetedMethod.getFacet(TypeOfFacet.class); assertNotNull(facet); assertTrue(facet instanceof TypeOfFacetAnnotationForCollection); final TypeOfFacetAnnotationForCollection typeOfFacetAnnotationForCollection = (TypeOfFacetAnnotationForCollection) facet; assertEquals(Order.class, typeOfFacetAnnotationForCollection.value()); assertNoMethodsRemoved(); }