This is an automated email from the ASF dual-hosted git repository. ahuber pushed a commit to branch 3409-mixin.eventtypes in repository https://gitbox.apache.org/repos/asf/causeway.git
commit a49202011a4cb22d0305ce13d5013be141059f1c Author: Andi Huber <[email protected]> AuthorDate: Tue Apr 18 17:10:41 2023 +0200 CAUSEWAY-3409: resurrect CollectionAnnotationFacetFactoryTest_typeOf --- .../metamodel/facets/FacetFactoryTestAbstract.java | 13 +++ ...ollectionAnnotationFacetFactoryTest_typeOf.java | 97 ++++++++++------------ 2 files changed, 57 insertions(+), 53 deletions(-) diff --git a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/FacetFactoryTestAbstract.java b/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/FacetFactoryTestAbstract.java index 03f04eb434..ea75b3a433 100644 --- a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/FacetFactoryTestAbstract.java +++ b/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/FacetFactoryTestAbstract.java @@ -201,6 +201,19 @@ implements HasMetaModelContext { consumer.accept(processMethodContext, scenario.facetHolder, scenario.facetedMethod, scenario.facetedMethodParameter); } + /** + * Collection scenario. + */ + protected void collectionScenario( + final Class<?> declaringClass, final String propertyName, final MemberScenarioConsumer consumer) { + val scenario = Scenario.prop(getMetaModelContext(), declaringClass, propertyName); + val processMethodContext = ProcessMethodContext + .forTesting(declaringClass, FeatureType.COLLECTION, scenario.annotatedMethod(), methodRemover, scenario.facetedMethod()); + consumer.accept(processMethodContext, scenario.facetHolder, scenario.facetedMethod, scenario.facetedMethodParameter); + } + + + /** * DomainObject scenario. */ diff --git a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactoryTest_typeOf.java b/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactoryTest_typeOf.java index 35e57b7115..71ebd76851 100644 --- a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactoryTest_typeOf.java +++ b/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactoryTest_typeOf.java @@ -18,13 +18,13 @@ */ package org.apache.causeway.core.metamodel.facets.collections.collection; -import java.lang.reflect.Method; import java.util.Collection; import java.util.Optional; import org.hamcrest.Matchers; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -33,13 +33,12 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import org.apache.causeway.core.config.progmodel.ProgrammingModelConstants.CollectionSemantics; import org.apache.causeway.core.metamodel.facetapi.Facet; -import org.apache.causeway.core.metamodel.facets.FacetFactory.ProcessMethodContext; -import org.apache.causeway.core.metamodel.facets.FacetFactoryTestAbstract2; +import org.apache.causeway.core.metamodel.facets.FacetFactoryTestAbstract; import org.apache.causeway.core.metamodel.facets.actcoll.typeof.TypeOfFacet; import org.apache.causeway.core.metamodel.facets.actcoll.typeof.TypeOfFacetFromFeature; class CollectionAnnotationFacetFactoryTest_typeOf -extends FacetFactoryTestAbstract2 { +extends FacetFactoryTestAbstract { private CollectionAnnotationFacetFactory facetFactory; @@ -53,71 +52,63 @@ extends FacetFactoryTestAbstract2 { facetFactory = null; } - public void testTypeOfFacetInferredForActionWithGenericCollectionReturnType() { + @Test + void typeOfFacetInferredForActionWithGenericCollectionReturnType() { class Order { } + @SuppressWarnings("unused") class Customer { - @SuppressWarnings("unused") - public Collection<Order> someAction() { - return null; - } + public Collection<Order> someAction() { return null;} } - final Method actionMethod = findMethodExactOrFail(Customer.class, "someAction"); - - facetFactory.process(ProcessMethodContext - .forTesting(Customer.class, null, actionMethod, methodRemover, facetedMethod)); - - final Facet facet = facetedMethod.getFacet(TypeOfFacet.class); - assertNotNull(facet); - assertTrue(facet instanceof TypeOfFacetFromFeature); - final TypeOfFacetFromFeature typeOfFacetInferredFromGenerics = (TypeOfFacetFromFeature) facet; - assertEquals(Order.class, typeOfFacetInferredFromGenerics.value().getElementType()); - + actionScenario(Customer.class, "someAction", (processMethodContext, facetHolder, facetedMethod, facetedMethodParameter) -> { + //when + facetFactory.process(processMethodContext); + //then + final Facet facet = facetedMethod.getFacet(TypeOfFacet.class); + assertNotNull(facet); + assertTrue(facet instanceof TypeOfFacetFromFeature); + final TypeOfFacetFromFeature typeOfFacetInferredFromGenerics = (TypeOfFacetFromFeature) facet; + assertEquals(Order.class, typeOfFacetInferredFromGenerics.value().getElementType()); + }); } - public void testTypeOfFacetInferredForCollectionWithGenericCollectionReturnType() { + @Test + void typeOfFacetInferredForCollectionWithGenericCollectionReturnType() { class Order { } + @SuppressWarnings("unused") class Customer { - @SuppressWarnings("unused") - public Collection<Order> getOrders() { - return null; - } + public Collection<Order> getOrders() { return null; } } - - final Method collectionAccessorMethod = findMethodExactOrFail(Customer.class, "getOrders"); - - facetFactory.process(ProcessMethodContext - .forTesting(Customer.class, null, collectionAccessorMethod, methodRemover, facetedMethod)); - - final Facet facet = facetedMethod.getFacet(TypeOfFacet.class); - assertNotNull(facet); - assertTrue(facet instanceof TypeOfFacetFromFeature); - final TypeOfFacetFromFeature typeOfFacetInferredFromGenerics = (TypeOfFacetFromFeature) facet; - assertEquals(Order.class, typeOfFacetInferredFromGenerics.value().getElementType()); - + collectionScenario(Customer.class, "orders", (processMethodContext, facetHolder, facetedMethod, facetedMethodParameter)->{ + // when + facetFactory.process(processMethodContext); + // then + final Facet facet = facetedMethod.getFacet(TypeOfFacet.class); + assertNotNull(facet); + assertTrue(facet instanceof TypeOfFacetFromFeature); + final TypeOfFacetFromFeature typeOfFacetInferredFromGenerics = (TypeOfFacetFromFeature) facet; + assertEquals(Order.class, typeOfFacetInferredFromGenerics.value().getElementType()); + }); } - public void testTypeOfFacetIsInferredForCollectionFromOrderArray() { + @Test + void typeOfFacetIsInferredForCollectionFromOrderArray() { class Order { } + @SuppressWarnings("unused") class Customer { - @SuppressWarnings("unused") - public Order[] getOrders() { - return null; - } + public Order[] getOrders() { return null;} } - final Method collectionAccessorMethod = findMethodExactOrFail(Customer.class, "getOrders"); - - facetFactory.process(ProcessMethodContext - .forTesting(Customer.class, null, collectionAccessorMethod, methodRemover, facetedMethod)); - - final TypeOfFacet facet = facetedMethod.getFacet(TypeOfFacet.class); - assertNotNull(facet); - assertEquals(Order.class, facet.value().getElementType()); - assertThat(facet.value().getCollectionSemantics(), Matchers.is(Optional.of(CollectionSemantics.ARRAY))); - + collectionScenario(Customer.class, "orders", (processMethodContext, facetHolder, facetedMethod, facetedMethodParameter)->{ + // when + facetFactory.process(processMethodContext); + // then + final TypeOfFacet facet = facetedMethod.getFacet(TypeOfFacet.class); + assertNotNull(facet); + assertEquals(Order.class, facet.value().getElementType()); + assertThat(facet.value().getCollectionSemantics(), Matchers.is(Optional.of(CollectionSemantics.ARRAY))); + }); } - }
