This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/causeway.git


The following commit(s) were added to refs/heads/master by this push:
     new cf3cb3a5d2 CAUSEWAY-3424: prepare removal of tests for 
Action/Collection/Property#hidden
cf3cb3a5d2 is described below

commit cf3cb3a5d2dc7b53ade9fd7b68e9235cae483a2a
Author: andi-huber <[email protected]>
AuthorDate: Wed Apr 12 19:05:23 2023 +0200

    CAUSEWAY-3424: prepare removal of tests for
    Action/Collection/Property#hidden
    
    - that is, provide tests for
    ActionLayout/CollectionLayout/PropertyLayout#hidden
---
 .../metamodel/facets/AbstractFacetFactoryTest.java |   8 +-
 ...=> ActionLayoutAnnotationFacetFactoryTest.java} |  38 +++++-
 ... => CollectionLayoutAnnotationFactoryTest.java} |  37 +++++-
 ...acetForPropertyLayoutAnnotationFactoryTest.java |  64 ----------
 ...acetForPropertyLayoutAnnotationFactoryTest.java |  67 -----------
 .../PropertyLayoutAnnotationFactoryTest.java       | 132 +++++++++++++++++++++
 6 files changed, 204 insertions(+), 142 deletions(-)

diff --git 
a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/AbstractFacetFactoryTest.java
 
b/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/AbstractFacetFactoryTest.java
index 90fc1de789..5caadfa631 100644
--- 
a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/AbstractFacetFactoryTest.java
+++ 
b/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/AbstractFacetFactoryTest.java
@@ -23,7 +23,6 @@ import java.util.Optional;
 
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
-import org.mockito.Mock;
 import org.mockito.Mockito;
 
 import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -61,8 +60,8 @@ public abstract class AbstractFacetFactoryTest {
         }
     }
 
-    @Mock protected TranslationService mockTranslationService;
-    @Mock protected InteractionService mockInteractionService;
+    protected TranslationService mockTranslationService;
+    protected InteractionService mockInteractionService;
     protected final InteractionContext iaContext = 
InteractionContextFactory.testing();
     protected MethodRemover_forTesting methodRemover;
 
@@ -74,6 +73,9 @@ public abstract class AbstractFacetFactoryTest {
     @BeforeEach
     protected void setUp() throws Exception {
 
+        mockTranslationService = Mockito.mock(TranslationService.class);
+        mockInteractionService = Mockito.mock(InteractionService.class);
+
         methodRemover = new MethodRemover_forTesting();
 
         metaModelContext = MetaModelContext_forTesting.builder()
diff --git 
a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/actions/layout/ActionLayoutXmlLayoutAnnotationFacetFactoryTest.java
 
b/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/actions/layout/ActionLayoutAnnotationFacetFactoryTest.java
similarity index 79%
rename from 
core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/actions/layout/ActionLayoutXmlLayoutAnnotationFacetFactoryTest.java
rename to 
core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/actions/layout/ActionLayoutAnnotationFacetFactoryTest.java
index c175dc166c..fc03efe6e3 100644
--- 
a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/actions/layout/ActionLayoutXmlLayoutAnnotationFacetFactoryTest.java
+++ 
b/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/actions/layout/ActionLayoutAnnotationFacetFactoryTest.java
@@ -31,15 +31,19 @@ import static 
org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import org.apache.causeway.applib.annotation.ActionLayout;
+import org.apache.causeway.applib.annotation.Where;
 import org.apache.causeway.applib.layout.component.CssClassFaPosition;
 import org.apache.causeway.core.metamodel.facetapi.Facet;
 import 
org.apache.causeway.core.metamodel.facets.AbstractFacetFactoryJupiterTestCase;
 import 
org.apache.causeway.core.metamodel.facets.FacetFactory.ProcessMethodContext;
 import 
org.apache.causeway.core.metamodel.facets.actions.position.ActionPositionFacet;
 import 
org.apache.causeway.core.metamodel.facets.actions.position.ActionPositionFacetFallback;
+import org.apache.causeway.core.metamodel.facets.all.hide.HiddenFacet;
 import 
org.apache.causeway.core.metamodel.facets.members.cssclassfa.CssClassFaFacet;
 
-class ActionLayoutXmlLayoutAnnotationFacetFactoryTest
+import lombok.val;
+
+class ActionLayoutAnnotationFacetFactoryTest
 extends AbstractFacetFactoryJupiterTestCase {
 
     ActionLayoutFacetFactory facetFactory;
@@ -50,7 +54,7 @@ extends AbstractFacetFactoryJupiterTestCase {
     }
 
     @Test
-    void testActionLayoutAnnotationPickedUp() {
+    void testActionLayoutAnnotation_position() {
 
         class Customer {
             @ActionLayout(position = ActionLayout.Position.PANEL)
@@ -67,10 +71,32 @@ extends AbstractFacetFactoryJupiterTestCase {
         final Facet facet = facetedMethod.getFacet(ActionPositionFacet.class);
         assertNotNull(facet);
         assertTrue(facet instanceof 
ActionPositionFacetForActionLayoutAnnotation);
-        final ActionPositionFacetForActionLayoutAnnotation 
actionLayoutFacetAnnotation = (ActionPositionFacetForActionLayoutAnnotation) 
facet;
+        val actionLayoutFacetAnnotation = 
(ActionPositionFacetForActionLayoutAnnotation) facet;
         assertEquals(ActionLayout.Position.PANEL, 
actionLayoutFacetAnnotation.position());
     }
 
+    @Test
+    void testActionLayoutAnnotation_hidden() {
+
+        class Customer {
+            @ActionLayout(hidden = Where.ALL_TABLES)
+            public String foz() {
+                return null;
+            }
+        }
+
+        final Method method = findMethod(Customer.class, "foz");
+
+        facetFactory.process(ProcessMethodContext.forTesting(Customer.class, 
null, method, mockMethodRemover,
+                facetedMethod));
+
+        final Facet facet = facetedMethod.getFacet(HiddenFacet.class);
+        assertNotNull(facet);
+        assertTrue(facet instanceof HiddenFacetForActionLayoutAnnotation);
+        val actionLayoutFacetAnnotation = 
(HiddenFacetForActionLayoutAnnotation) facet;
+        assertEquals(Where.ALL_TABLES, actionLayoutFacetAnnotation.where());
+    }
+
     @Test
     void testActionLayoutFallbackPickedUp() {
 
@@ -91,7 +117,7 @@ extends AbstractFacetFactoryJupiterTestCase {
         assertTrue(facet instanceof ActionPositionFacetFallback);
     }
 
-    static class CssClassFa extends 
ActionLayoutXmlLayoutAnnotationFacetFactoryTest {
+    static class CssClassFa extends ActionLayoutAnnotationFacetFactoryTest {
 
         @Test
         void testDefaultPosition() {
@@ -110,7 +136,7 @@ extends AbstractFacetFactoryJupiterTestCase {
             Facet facet = facetedMethod.getFacet(CssClassFaFacet.class);
             assertThat(facet, is(notNullValue()));
             assertThat(facet, 
is(instanceOf(CssClassFaFacetForActionLayoutAnnotation.class)));
-            CssClassFaFacetForActionLayoutAnnotation 
classFaFacetForActionLayoutAnnotation = 
(CssClassFaFacetForActionLayoutAnnotation) facet;
+            val classFaFacetForActionLayoutAnnotation = 
(CssClassFaFacetForActionLayoutAnnotation) facet;
             
assertThat(classFaFacetForActionLayoutAnnotation.asSpaceSeparated(), 
is(equalTo("fa fa-fw fa-font-awesome")));
             assertThat(classFaFacetForActionLayoutAnnotation.getPosition(), 
is(CssClassFaPosition.LEFT));
         }
@@ -132,7 +158,7 @@ extends AbstractFacetFactoryJupiterTestCase {
             Facet facet = facetedMethod.getFacet(CssClassFaFacet.class);
             assertThat(facet, is(notNullValue()));
             assertThat(facet, 
is(instanceOf(CssClassFaFacetForActionLayoutAnnotation.class)));
-            CssClassFaFacetForActionLayoutAnnotation 
classFaFacetForActionLayoutAnnotation = 
(CssClassFaFacetForActionLayoutAnnotation) facet;
+            val classFaFacetForActionLayoutAnnotation = 
(CssClassFaFacetForActionLayoutAnnotation) facet;
             
assertThat(classFaFacetForActionLayoutAnnotation.asSpaceSeparated(), 
is(equalTo("fa fa-fw fa-font-awesome")));
             assertThat(classFaFacetForActionLayoutAnnotation.getPosition(), 
is(CssClassFaPosition.RIGHT));
         }
diff --git 
a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/collections/layout/annotation/NamedFacetForCollectionLayoutAnnotationFactoryTest.java
 
b/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/collections/layout/annotation/CollectionLayoutAnnotationFactoryTest.java
similarity index 62%
rename from 
core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/collections/layout/annotation/NamedFacetForCollectionLayoutAnnotationFactoryTest.java
rename to 
core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/collections/layout/annotation/CollectionLayoutAnnotationFactoryTest.java
index c08024254d..6a520605a8 100644
--- 
a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/collections/layout/annotation/NamedFacetForCollectionLayoutAnnotationFactoryTest.java
+++ 
b/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/collections/layout/annotation/CollectionLayoutAnnotationFactoryTest.java
@@ -21,26 +21,36 @@ package 
org.apache.causeway.core.metamodel.facets.collections.layout.annotation;
 import java.lang.reflect.Method;
 import java.util.SortedSet;
 
+import org.junit.jupiter.api.Test;
+
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.equalTo;
 import static org.hamcrest.Matchers.instanceOf;
 import static org.hamcrest.Matchers.is;
 import static org.hamcrest.Matchers.notNullValue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import org.apache.causeway.applib.annotation.CollectionLayout;
+import org.apache.causeway.applib.annotation.Where;
 import org.apache.causeway.commons.internal.collections._Sets;
+import org.apache.causeway.core.metamodel.facetapi.Facet;
 import org.apache.causeway.core.metamodel.facets.AbstractFacetFactoryTest;
 import 
org.apache.causeway.core.metamodel.facets.FacetFactory.ProcessMethodContext;
+import org.apache.causeway.core.metamodel.facets.all.hide.HiddenFacet;
 import org.apache.causeway.core.metamodel.facets.all.i8n.staatic.HasStaticText;
 import org.apache.causeway.core.metamodel.facets.all.named.MemberNamedFacet;
 import 
org.apache.causeway.core.metamodel.facets.collections.layout.CollectionLayoutFacetFactory;
+import 
org.apache.causeway.core.metamodel.facets.collections.layout.HiddenFacetForCollectionLayoutAnnotation;
 import 
org.apache.causeway.core.metamodel.facets.collections.layout.MemberNamedFacetForCollectionLayoutAnnotation;
 
 import lombok.val;
 
-public class NamedFacetForCollectionLayoutAnnotationFactoryTest extends 
AbstractFacetFactoryTest {
+class CollectionLayoutAnnotationFactoryTest extends AbstractFacetFactoryTest {
 
-    public void testCollectionLayoutAnnotationNamed() {
+    @Test
+    public void testCollectionLayoutAnnotation_named() {
         val facetFactory = new CollectionLayoutFacetFactory(metaModelContext);
 
         class Customer {
@@ -60,4 +70,27 @@ public class 
NamedFacetForCollectionLayoutAnnotationFactoryTest extends Abstract
         assertThat(((HasStaticText)facet).text(), is(equalTo("1st names")));
     }
 
+    @Test
+    void testCollectionLayoutAnnotation_hidden() {
+        val facetFactory = new CollectionLayoutFacetFactory(metaModelContext);
+
+        class Customer {
+            @CollectionLayout(hidden = Where.OBJECT_FORMS)
+            public SortedSet<String> getFirstNames() {
+                return _Sets.newTreeSet();
+            }
+        }
+        final Method method = findMethod(Customer.class, "getFirstNames");
+
+        facetFactory.process(ProcessMethodContext
+                .forTesting(Customer.class, null, method, methodRemover, 
facetedMethod));
+
+        final Facet facet = facetedMethod.getFacet(HiddenFacet.class);
+        assertNotNull(facet);
+        assertTrue(facet instanceof HiddenFacetForCollectionLayoutAnnotation);
+        final HiddenFacetForCollectionLayoutAnnotation 
collLayoutFacetAnnotation = (HiddenFacetForCollectionLayoutAnnotation) facet;
+        assertEquals(Where.OBJECT_FORMS, collLayoutFacetAnnotation.where());
+
+    }
+
 }
diff --git 
a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/properties/propertylayout/LabelAtFacetForPropertyLayoutAnnotationFactoryTest.java
 
b/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/properties/propertylayout/LabelAtFacetForPropertyLayoutAnnotationFactoryTest.java
deleted file mode 100644
index 0247065dc8..0000000000
--- 
a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/properties/propertylayout/LabelAtFacetForPropertyLayoutAnnotationFactoryTest.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package org.apache.causeway.core.metamodel.facets.properties.propertylayout;
-
-import java.lang.reflect.Method;
-
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.equalTo;
-import static org.hamcrest.Matchers.instanceOf;
-import static org.hamcrest.Matchers.is;
-import static org.hamcrest.Matchers.notNullValue;
-
-import org.apache.causeway.applib.annotation.LabelPosition;
-import org.apache.causeway.applib.annotation.PropertyLayout;
-import org.apache.causeway.core.metamodel.facetapi.Facet;
-import org.apache.causeway.core.metamodel.facets.AbstractFacetFactoryTest;
-import org.apache.causeway.core.metamodel.facets.FacetFactory;
-import 
org.apache.causeway.core.metamodel.facets.FacetFactory.ProcessMethodContext;
-import 
org.apache.causeway.core.metamodel.facets.objectvalue.labelat.LabelAtFacet;
-
-public class LabelAtFacetForPropertyLayoutAnnotationFactoryTest extends 
AbstractFacetFactoryTest {
-
-    public void testPropertyLayoutAnnotationPickedUp() {
-        final PropertyLayoutFacetFactory facetFactory = 
createPropertyLayoutFacetFactory(metaModelContext);
-
-        class Customer {
-            @PropertyLayout(labelPosition = LabelPosition.LEFT)
-            public String getFirstName() {
-                return null;
-            }
-        }
-        final Method method = findMethod(Customer.class, "getFirstName");
-
-        final FacetFactory.ProcessMethodContext processMethodContext =
-                ProcessMethodContext
-                .forTesting(Customer.class, null, method, methodRemover, 
facetedMethod);
-
-        // when
-        facetFactory.process(processMethodContext);
-
-        // then
-        final Facet facet = facetedMethod.getFacet(LabelAtFacet.class);
-        assertThat(facet, is(notNullValue()));
-        assertThat(facet, 
is(instanceOf(LabelAtFacetForPropertyLayoutAnnotation.class)));
-        final LabelAtFacetForPropertyLayoutAnnotation layoutAnnotation = 
(LabelAtFacetForPropertyLayoutAnnotation) facet;
-        assertThat(layoutAnnotation.label(), is(equalTo(LabelPosition.LEFT)));
-    }
-}
diff --git 
a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/properties/propertylayout/NamedFacetForPropertyLayoutAnnotationFactoryTest.java
 
b/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/properties/propertylayout/NamedFacetForPropertyLayoutAnnotationFactoryTest.java
deleted file mode 100644
index f27d4dc62e..0000000000
--- 
a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/properties/propertylayout/NamedFacetForPropertyLayoutAnnotationFactoryTest.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package org.apache.causeway.core.metamodel.facets.properties.propertylayout;
-
-import java.lang.reflect.Method;
-
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.equalTo;
-import static org.hamcrest.Matchers.instanceOf;
-import static org.hamcrest.Matchers.is;
-import static org.hamcrest.Matchers.notNullValue;
-
-import org.apache.causeway.applib.annotation.PropertyLayout;
-import org.apache.causeway.core.metamodel.facets.AbstractFacetFactoryTest;
-import org.apache.causeway.core.metamodel.facets.FacetFactory;
-import 
org.apache.causeway.core.metamodel.facets.FacetFactory.ProcessMethodContext;
-import org.apache.causeway.core.metamodel.facets.all.i8n.staatic.HasStaticText;
-import org.apache.causeway.core.metamodel.facets.all.named.MemberNamedFacet;
-
-import lombok.val;
-
-public class NamedFacetForPropertyLayoutAnnotationFactoryTest
-extends AbstractFacetFactoryTest {
-
-    public void testPropertyLayoutAnnotationNamed() {
-        val facetFactory = createPropertyLayoutFacetFactory(metaModelContext);
-
-        class Customer {
-            @PropertyLayout(named = "1st name")
-            public String getFirstName() {
-                return null;
-            }
-        }
-        final Method method = findMethod(Customer.class, "getFirstName");
-
-        // when
-        final FacetFactory.ProcessMethodContext processMethodContext =
-                ProcessMethodContext
-                .forTesting(Customer.class, null, method, methodRemover, 
facetedMethod);
-
-        facetFactory.process(processMethodContext);
-
-        // then
-        val facet = facetedMethod.getFacet(MemberNamedFacet.class);
-        assertThat(facet, is(notNullValue()));
-        assertThat(facet, 
is(instanceOf(NamedFacetForPropertyLayoutAnnotation.class)));
-        assertThat(((HasStaticText)facet).text(), is(equalTo("1st name")));
-    }
-
-
-}
diff --git 
a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/properties/propertylayout/PropertyLayoutAnnotationFactoryTest.java
 
b/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/properties/propertylayout/PropertyLayoutAnnotationFactoryTest.java
new file mode 100644
index 0000000000..4b539ce504
--- /dev/null
+++ 
b/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/properties/propertylayout/PropertyLayoutAnnotationFactoryTest.java
@@ -0,0 +1,132 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.apache.causeway.core.metamodel.facets.properties.propertylayout;
+
+import java.lang.reflect.Method;
+
+import org.junit.jupiter.api.Test;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.instanceOf;
+import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.notNullValue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import org.apache.causeway.applib.annotation.LabelPosition;
+import org.apache.causeway.applib.annotation.PropertyLayout;
+import org.apache.causeway.applib.annotation.Where;
+import org.apache.causeway.core.metamodel.facetapi.Facet;
+import org.apache.causeway.core.metamodel.facets.AbstractFacetFactoryTest;
+import org.apache.causeway.core.metamodel.facets.FacetFactory;
+import 
org.apache.causeway.core.metamodel.facets.FacetFactory.ProcessMethodContext;
+import org.apache.causeway.core.metamodel.facets.all.hide.HiddenFacet;
+import org.apache.causeway.core.metamodel.facets.all.i8n.staatic.HasStaticText;
+import org.apache.causeway.core.metamodel.facets.all.named.MemberNamedFacet;
+import 
org.apache.causeway.core.metamodel.facets.objectvalue.labelat.LabelAtFacet;
+
+import lombok.val;
+
+class PropertyLayoutAnnotationFactoryTest
+extends AbstractFacetFactoryTest {
+
+    @Test
+    void testPropertyLayoutAnnotation_named() {
+        val facetFactory = createPropertyLayoutFacetFactory(metaModelContext);
+
+        class Customer {
+            @PropertyLayout(named = "1st name")
+            public String getFirstName() {
+                return null;
+            }
+        }
+        final Method method = findMethod(Customer.class, "getFirstName");
+
+        // when
+        final FacetFactory.ProcessMethodContext processMethodContext =
+                ProcessMethodContext
+                .forTesting(Customer.class, null, method, methodRemover, 
facetedMethod);
+
+        facetFactory.process(processMethodContext);
+
+        // then
+        val facet = facetedMethod.getFacet(MemberNamedFacet.class);
+        assertThat(facet, is(notNullValue()));
+        assertThat(facet, 
is(instanceOf(NamedFacetForPropertyLayoutAnnotation.class)));
+        assertThat(((HasStaticText)facet).text(), is(equalTo("1st name")));
+    }
+
+    @Test
+    void testPropertyLayoutAnnotation_hidden() {
+        final PropertyLayoutFacetFactory facetFactory = 
createPropertyLayoutFacetFactory(metaModelContext);
+
+        class Customer {
+            @PropertyLayout(hidden = Where.OBJECT_FORMS)
+            public String getFirstName() {
+                return null;
+            }
+        }
+        final Method method = findMethod(Customer.class, "getFirstName");
+
+        final FacetFactory.ProcessMethodContext processMethodContext =
+                ProcessMethodContext
+                .forTesting(Customer.class, null, method, methodRemover, 
facetedMethod);
+
+        // when
+        facetFactory.process(processMethodContext);
+
+        // then
+        final Facet facet = facetedMethod.getFacet(HiddenFacet.class);
+        assertNotNull(facet);
+        assertTrue(facet instanceof HiddenFacetForPropertyLayoutAnnotation);
+        val propLayoutFacetAnnotation = 
(HiddenFacetForPropertyLayoutAnnotation) facet;
+        assertEquals(Where.OBJECT_FORMS, propLayoutFacetAnnotation.where());
+    }
+
+    @Test
+    void testPropertyLayoutAnnotation_labelPosition() {
+        final PropertyLayoutFacetFactory facetFactory = 
createPropertyLayoutFacetFactory(metaModelContext);
+
+        class Customer {
+            @PropertyLayout(labelPosition = LabelPosition.LEFT)
+            public String getFirstName() {
+                return null;
+            }
+        }
+        final Method method = findMethod(Customer.class, "getFirstName");
+
+        final FacetFactory.ProcessMethodContext processMethodContext =
+                ProcessMethodContext
+                .forTesting(Customer.class, null, method, methodRemover, 
facetedMethod);
+
+        // when
+        facetFactory.process(processMethodContext);
+
+        // then
+        final Facet facet = facetedMethod.getFacet(LabelAtFacet.class);
+        assertThat(facet, is(notNullValue()));
+        assertThat(facet, 
is(instanceOf(LabelAtFacetForPropertyLayoutAnnotation.class)));
+        val layoutAnnotation = (LabelAtFacetForPropertyLayoutAnnotation) facet;
+        assertThat(layoutAnnotation.label(), is(equalTo(LabelPosition.LEFT)));
+    }
+
+
+}

Reply via email to