You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by mg...@apache.org on 2015/01/04 15:26:43 UTC

isis git commit: ISIS-995 Add tests for creating NamedFacet from annotations

Repository: isis
Updated Branches:
  refs/heads/ISIS-995-namedEscaped 6014a60b4 -> 8d929b944


ISIS-995 Add tests for creating NamedFacet from annotations


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/8d929b94
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/8d929b94
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/8d929b94

Branch: refs/heads/ISIS-995-namedEscaped
Commit: 8d929b9441ea6b3a4adc50a247d7052fa51d0dbf
Parents: 6014a60
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Sun Jan 4 16:26:10 2015 +0200
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Sun Jan 4 16:26:10 2015 +0200

----------------------------------------------------------------------
 ...orCollectionLayoutAnnotationFactoryTest.java | 83 ++++++++++++++++++++
 ...ForParameterLayoutAnnotationFactoryTest.java | 11 ++-
 ...ForParameterLayoutAnnotationFactoryTest.java | 79 +++++++++++++++++++
 ...tForPropertyLayoutAnnotationFactoryTest.java | 13 ++-
 ...tForPropertyLayoutAnnotationFactoryTest.java | 80 +++++++++++++++++++
 5 files changed, 259 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/8d929b94/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/layout/annotation/NamedFacetForCollectionLayoutAnnotationFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/layout/annotation/NamedFacetForCollectionLayoutAnnotationFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/layout/annotation/NamedFacetForCollectionLayoutAnnotationFactoryTest.java
new file mode 100644
index 0000000..bba826a
--- /dev/null
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/layout/annotation/NamedFacetForCollectionLayoutAnnotationFactoryTest.java
@@ -0,0 +1,83 @@
+/*
+ *  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.isis.core.metamodel.facets.collections.layout.annotation;
+
+import java.lang.reflect.Method;
+import java.util.Set;
+import java.util.SortedSet;
+import com.google.common.collect.Sets;
+import org.apache.isis.applib.annotation.CollectionLayout;
+import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
+import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
+import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
+import org.apache.isis.core.metamodel.facets.collections.layout.CollectionLayoutFactory;
+import org.apache.isis.core.metamodel.facets.collections.layout.NamedFacetForCollectionLayoutAnnotation;
+
+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.Assert.assertThat;
+
+public class NamedFacetForCollectionLayoutAnnotationFactoryTest extends AbstractFacetFactoryTest {
+
+    public void testCollectionLayoutAnnotationNamed() {
+        final CollectionLayoutFactory facetFactory = new CollectionLayoutFactory();
+
+        class Customer {
+            @SuppressWarnings("unused")
+            @CollectionLayout(named = "1st names")
+            public SortedSet<String> getFirstNames() {
+                return Sets.newTreeSet();
+            }
+        }
+        final Method method = findMethod(Customer.class, "getFirstNames");
+
+        facetFactory.process(new ProcessMethodContext(Customer.class, null, null, method, methodRemover, facetedMethod));
+
+        final NamedFacet facet = facetedMethod.getFacet(NamedFacet.class);
+        assertThat(facet, is(notNullValue()));
+        assertThat(facet, is(instanceOf(NamedFacetForCollectionLayoutAnnotation.class)));
+        assertThat(facet.value(), is(equalTo("1st names")));
+        assertThat(facet.escaped(), is(true));
+    }
+
+    public void testCollectionLayoutAnnotationNamedEscapedFalse() {
+        final CollectionLayoutFactory facetFactory = new CollectionLayoutFactory();
+
+        class Customer {
+            @SuppressWarnings("unused")
+            @CollectionLayout(named = "1st names", namedEscaped = false)
+            public Set<String> getFirstNames() {
+                return Sets.newTreeSet();
+            }
+        }
+        final Method method = findMethod(Customer.class, "getFirstNames");
+
+        facetFactory.process(new ProcessMethodContext(Customer.class, null, null, method, methodRemover, facetedMethod));
+
+        final NamedFacet facet = facetedMethod.getFacet(NamedFacet.class);
+        assertThat(facet, is(notNullValue()));
+        assertThat(facet, is(instanceOf(NamedFacetForCollectionLayoutAnnotation.class)));
+        assertThat(facet.value(), is(equalTo("1st names")));
+        assertThat(facet.escaped(), is(false));
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/8d929b94/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/layout/annotation/LabelAtFacetForParameterLayoutAnnotationFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/layout/annotation/LabelAtFacetForParameterLayoutAnnotationFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/layout/annotation/LabelAtFacetForParameterLayoutAnnotationFactoryTest.java
index 952df60..c2d8eab 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/layout/annotation/LabelAtFacetForParameterLayoutAnnotationFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/layout/annotation/LabelAtFacetForParameterLayoutAnnotationFactoryTest.java
@@ -29,6 +29,11 @@ import org.apache.isis.core.metamodel.facets.param.layout.LabelAtFacetForParamet
 import org.apache.isis.core.metamodel.facets.param.layout.ParameterLayoutFactory;
 import org.apache.isis.core.metamodel.facets.propparam.layout.LabelAtFacet;
 
+import static org.hamcrest.Matchers.instanceOf;
+import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.notNullValue;
+import static org.junit.Assert.assertThat;
+
 public class LabelAtFacetForParameterLayoutAnnotationFactoryTest extends AbstractFacetFactoryTest {
 
     public void testParameterLayoutAnnotationPickedUp() {
@@ -44,9 +49,9 @@ public class LabelAtFacetForParameterLayoutAnnotationFactoryTest extends Abstrac
         facetFactory.processParams(new FacetFactory.ProcessParameterContext(method, 0, facetedMethodParameter));
 
         final Facet facet = facetedMethodParameter.getFacet(LabelAtFacet.class);
-        assertNotNull(facet);
-        assertTrue(facet instanceof LabelAtFacetForParameterLayoutAnnotation);
+        assertThat(facet, is(notNullValue()));
+        assertThat(facet, is(instanceOf(LabelAtFacetForParameterLayoutAnnotation.class)));
         final LabelAtFacetForParameterLayoutAnnotation layoutAnnotation = (LabelAtFacetForParameterLayoutAnnotation) facet;
-        assertEquals(LabelPosition.LEFT, layoutAnnotation.label());
+        assertThat(layoutAnnotation.label(), is(LabelPosition.LEFT));
     }
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/8d929b94/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/layout/annotation/NamedFacetForParameterLayoutAnnotationFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/layout/annotation/NamedFacetForParameterLayoutAnnotationFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/layout/annotation/NamedFacetForParameterLayoutAnnotationFactoryTest.java
new file mode 100644
index 0000000..7469bf3
--- /dev/null
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/layout/annotation/NamedFacetForParameterLayoutAnnotationFactoryTest.java
@@ -0,0 +1,79 @@
+/*
+ *  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.isis.core.metamodel.facets.param.layout.annotation;
+
+import java.lang.reflect.Method;
+import org.apache.isis.applib.annotation.ParameterLayout;
+import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
+import org.apache.isis.core.metamodel.facets.FacetFactory;
+import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
+import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
+import org.apache.isis.core.metamodel.facets.param.layout.NamedFacetForParameterLayoutAnnotation;
+import org.apache.isis.core.metamodel.facets.param.layout.ParameterLayoutFactory;
+
+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.Assert.assertThat;
+
+public class NamedFacetForParameterLayoutAnnotationFactoryTest extends AbstractFacetFactoryTest {
+
+    private static final String NAME = "an action";
+
+    public void testParameterLayoutAnnotationNamed() {
+        final ParameterLayoutFactory facetFactory = new ParameterLayoutFactory();
+
+        class Customer {
+            @SuppressWarnings("unused")
+            public void someAction(@ParameterLayout(named = NAME) final String foo) {
+            }
+        }
+        final Method method = findMethod(Customer.class, "someAction", new Class[]{String.class});
+
+        facetFactory.processParams(new FacetFactory.ProcessParameterContext(method, 0, facetedMethodParameter));
+
+        final NamedFacet facet = facetedMethodParameter.getFacet(NamedFacet.class);
+        assertThat(facet, is(notNullValue()));
+        assertThat(facet, is(instanceOf(NamedFacetForParameterLayoutAnnotation.class)));
+        assertThat(facet.value(), is(equalTo(NAME)));
+        assertThat(facet.escaped(), is(true));
+    }
+
+    public void testParameterLayoutAnnotationNamedEscapedFalse() {
+        final ParameterLayoutFactory facetFactory = new ParameterLayoutFactory();
+
+        class Customer {
+            @SuppressWarnings("unused")
+            public void someAction(@ParameterLayout(named = NAME, namedEscaped = false) final String foo) {
+            }
+        }
+        final Method method = findMethod(Customer.class, "someAction", new Class[]{String.class});
+
+        facetFactory.processParams(new FacetFactory.ProcessParameterContext(method, 0, facetedMethodParameter));
+
+        final NamedFacet facet = facetedMethodParameter.getFacet(NamedFacet.class);
+        assertThat(facet, is(notNullValue()));
+        assertThat(facet, is(instanceOf(NamedFacetForParameterLayoutAnnotation.class)));
+        assertThat(facet.value(), is(equalTo(NAME)));
+        assertThat(facet.escaped(), is(false));
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/8d929b94/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/layout/annotation/LabelAtFacetForPropertyLayoutAnnotationFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/layout/annotation/LabelAtFacetForPropertyLayoutAnnotationFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/layout/annotation/LabelAtFacetForPropertyLayoutAnnotationFactoryTest.java
index 58dfa75..8c7e75a 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/layout/annotation/LabelAtFacetForPropertyLayoutAnnotationFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/layout/annotation/LabelAtFacetForPropertyLayoutAnnotationFactoryTest.java
@@ -29,6 +29,12 @@ import org.apache.isis.core.metamodel.facets.properties.layout.LabelAtFacetForPr
 import org.apache.isis.core.metamodel.facets.properties.layout.PropertyLayoutFactory;
 import org.apache.isis.core.metamodel.facets.propparam.layout.LabelAtFacet;
 
+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.Assert.assertThat;
+
 public class LabelAtFacetForPropertyLayoutAnnotationFactoryTest extends AbstractFacetFactoryTest {
 
     public void testPropertyLayoutAnnotationPickedUp() {
@@ -46,10 +52,9 @@ public class LabelAtFacetForPropertyLayoutAnnotationFactoryTest extends Abstract
         facetFactory.process(new ProcessMethodContext(Customer.class, null, null, method, methodRemover, facetedMethod));
 
         final Facet facet = facetedMethod.getFacet(LabelAtFacet.class);
-        assertNotNull(facet);
-        assertTrue(facet instanceof LabelAtFacetForPropertyLayoutAnnotation);
+        assertThat(facet, is(notNullValue()));
+        assertThat(facet, is(instanceOf(LabelAtFacetForPropertyLayoutAnnotation.class)));
         final LabelAtFacetForPropertyLayoutAnnotation layoutAnnotation = (LabelAtFacetForPropertyLayoutAnnotation) facet;
-        assertEquals(LabelPosition.LEFT, layoutAnnotation.label());
+        assertThat(layoutAnnotation.label(), is(equalTo(LabelPosition.LEFT)));
     }
-
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/8d929b94/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/layout/annotation/NamedFacetForPropertyLayoutAnnotationFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/layout/annotation/NamedFacetForPropertyLayoutAnnotationFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/layout/annotation/NamedFacetForPropertyLayoutAnnotationFactoryTest.java
new file mode 100644
index 0000000..4d0b151
--- /dev/null
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/layout/annotation/NamedFacetForPropertyLayoutAnnotationFactoryTest.java
@@ -0,0 +1,80 @@
+/*
+ *  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.isis.core.metamodel.facets.properties.layout.annotation;
+
+import java.lang.reflect.Method;
+import org.apache.isis.applib.annotation.PropertyLayout;
+import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
+import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
+import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
+import org.apache.isis.core.metamodel.facets.properties.layout.NamedFacetForPropertyLayoutAnnotation;
+import org.apache.isis.core.metamodel.facets.properties.layout.PropertyLayoutFactory;
+
+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.Assert.assertThat;
+
+public class NamedFacetForPropertyLayoutAnnotationFactoryTest extends AbstractFacetFactoryTest {
+
+    public void testPropertyLayoutAnnotationNamed() {
+        final PropertyLayoutFactory facetFactory = new PropertyLayoutFactory();
+
+        class Customer {
+            @SuppressWarnings("unused")
+            @PropertyLayout(named = "1st name")
+            public String getFirstName() {
+                return null;
+            }
+        }
+        final Method method = findMethod(Customer.class, "getFirstName");
+
+        facetFactory.process(new ProcessMethodContext(Customer.class, null, null, method, methodRemover, facetedMethod));
+
+        final NamedFacet facet = facetedMethod.getFacet(NamedFacet.class);
+        assertThat(facet, is(notNullValue()));
+        assertThat(facet, is(instanceOf(NamedFacetForPropertyLayoutAnnotation.class)));
+        assertThat(facet.value(), is(equalTo("1st name")));
+        assertThat(facet.escaped(), is(true));
+    }
+
+    public void testPropertyLayoutAnnotationNamedEscapedFalse() {
+        final PropertyLayoutFactory facetFactory = new PropertyLayoutFactory();
+
+        class Customer {
+            @SuppressWarnings("unused")
+            @PropertyLayout(named = "1st name", namedEscaped = false)
+            public String getFirstName() {
+                return null;
+            }
+        }
+        final Method method = findMethod(Customer.class, "getFirstName");
+
+        facetFactory.process(new ProcessMethodContext(Customer.class, null, null, method, methodRemover, facetedMethod));
+
+        final NamedFacet facet = facetedMethod.getFacet(NamedFacet.class);
+        assertThat(facet, is(notNullValue()));
+        assertThat(facet, is(instanceOf(NamedFacetForPropertyLayoutAnnotation.class)));
+        assertThat(facet.value(), is(equalTo("1st name")));
+        assertThat(facet.escaped(), is(false));
+    }
+
+}