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));
+ }
+
+}