You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by cn...@apache.org on 2016/02/03 14:20:40 UTC
[03/10] struts git commit: added tests for
StrutsTilesAnnotationProcessor
added tests for StrutsTilesAnnotationProcessor
Project: http://git-wip-us.apache.org/repos/asf/struts/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/bd5e64e5
Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/bd5e64e5
Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/bd5e64e5
Branch: refs/heads/support-2-3
Commit: bd5e64e5980115a37dcdbed29ff6d15ddad06da7
Parents: 9a8f36d
Author: cnenning <cn...@apache.org>
Authored: Mon Jan 25 11:23:10 2016 +0100
Committer: cnenning <cn...@apache.org>
Committed: Wed Feb 3 13:22:35 2016 +0100
----------------------------------------------------------------------
.../tiles/StrutsTilesAnnotationProcessor.java | 7 +-
.../TestStrutsTilesAnnotationProcessor.java | 148 +++++++++++++++++++
.../TilesTestActionMultipleAnnotations.java | 12 ++
.../tiles/TilesTestActionSingleAnnotation.java | 49 ++++++
...TilesTestActionSingleAnnotationAllEmpty.java | 28 ++++
5 files changed, 241 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/struts/blob/bd5e64e5/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesAnnotationProcessor.java
----------------------------------------------------------------------
diff --git a/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesAnnotationProcessor.java b/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesAnnotationProcessor.java
index 2ae3ba4..fa5f735 100644
--- a/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesAnnotationProcessor.java
+++ b/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesAnnotationProcessor.java
@@ -66,9 +66,10 @@ public class StrutsTilesAnnotationProcessor {
break;
}
}
- }
- if (tilesDefinitions.value().length > 0) {
- tilesDefinition = tilesDefinitions.value()[0];
+ } else {
+ if (tilesDefinitions.value().length > 0) {
+ tilesDefinition = tilesDefinitions.value()[0];
+ }
}
}
http://git-wip-us.apache.org/repos/asf/struts/blob/bd5e64e5/plugins/tiles/src/test/java/org/apache/struts2/tiles/TestStrutsTilesAnnotationProcessor.java
----------------------------------------------------------------------
diff --git a/plugins/tiles/src/test/java/org/apache/struts2/tiles/TestStrutsTilesAnnotationProcessor.java b/plugins/tiles/src/test/java/org/apache/struts2/tiles/TestStrutsTilesAnnotationProcessor.java
new file mode 100644
index 0000000..db808cd
--- /dev/null
+++ b/plugins/tiles/src/test/java/org/apache/struts2/tiles/TestStrutsTilesAnnotationProcessor.java
@@ -0,0 +1,148 @@
+package org.apache.struts2.tiles;
+
+import java.util.List;
+import java.util.Set;
+
+import org.apache.struts2.tiles.annotation.TilesDefinition;
+import org.apache.tiles.Attribute;
+import org.apache.tiles.Definition;
+import org.apache.tiles.Expression;
+import org.junit.Test;
+
+import org.junit.Assert;
+
+public class TestStrutsTilesAnnotationProcessor {
+
+ @Test
+ public void findAnnotationSingleAction() {
+ StrutsTilesAnnotationProcessor annotationProcessor = new StrutsTilesAnnotationProcessor();
+ TilesDefinition tilesDefinition = annotationProcessor.findAnnotation(new TilesTestActionSingleAnnotation(), null);
+ Assert.assertNotNull(tilesDefinition);
+ Assert.assertEquals("definition-name", tilesDefinition.name());
+ }
+
+ @Test
+ public void findAnnotationMultipleActionNameNull() {
+ StrutsTilesAnnotationProcessor annotationProcessor = new StrutsTilesAnnotationProcessor();
+ TilesDefinition tilesDefinition = annotationProcessor.findAnnotation(new TilesTestActionMultipleAnnotations(), null);
+ Assert.assertNotNull(tilesDefinition);
+ Assert.assertEquals("def1", tilesDefinition.name());
+ }
+
+ @Test
+ public void findAnnotationMultipleActionNameGiven() {
+ StrutsTilesAnnotationProcessor annotationProcessor = new StrutsTilesAnnotationProcessor();
+ TilesDefinition tilesDefinition = annotationProcessor.findAnnotation(new TilesTestActionMultipleAnnotations(), "def2");
+ Assert.assertNotNull(tilesDefinition);
+ Assert.assertEquals("def2", tilesDefinition.name());
+ }
+
+ @Test
+ public void findAnnotationMultipleActionNotFound() {
+ StrutsTilesAnnotationProcessor annotationProcessor = new StrutsTilesAnnotationProcessor();
+ TilesDefinition tilesDefinition = annotationProcessor.findAnnotation(new TilesTestActionMultipleAnnotations(), "def3");
+ Assert.assertNull(tilesDefinition);
+ }
+
+ @Test
+ public void buildDefiniton() {
+ StrutsTilesAnnotationProcessor annotationProcessor = new StrutsTilesAnnotationProcessor();
+ TilesDefinition tilesDefinition = annotationProcessor.findAnnotation(new TilesTestActionSingleAnnotation(), null);
+
+ Definition definition = annotationProcessor.buildTilesDefinition("tileName", tilesDefinition);
+
+ Assert.assertNotNull(definition);
+ Assert.assertEquals("tileName", definition.getName());
+ Assert.assertEquals("preparer", definition.getPreparer());
+ Assert.assertEquals("base-definition", definition.getExtends());
+ Attribute templateAttribute = definition.getTemplateAttribute();
+ Assert.assertEquals("template", templateAttribute.getValue());
+ Assert.assertEquals("type", templateAttribute.getRenderer());
+ Assert.assertEquals("role", templateAttribute.getRole());
+ Expression definitionExpressionObject = templateAttribute.getExpressionObject();
+ Assert.assertEquals("templ*", definitionExpressionObject.getExpression());
+ Assert.assertNull(definitionExpressionObject.getLanguage());
+
+ Attribute putAttribute = definition.getAttribute("put-attr");
+ Assert.assertNotNull(putAttribute);
+ Assert.assertEquals("attr-val", putAttribute.getValue());
+ Assert.assertEquals("attr-type", putAttribute.getRenderer());
+ Assert.assertEquals("attr-role", putAttribute.getRole());
+ Expression putAttrExpressionObject = putAttribute.getExpressionObject();
+ Assert.assertEquals("expr", putAttrExpressionObject.getExpression());
+ Assert.assertEquals("lang", putAttrExpressionObject.getLanguage());
+
+ Attribute listAttribute = definition.getAttribute("list-name");
+ Assert.assertEquals("list-role", listAttribute.getRole());
+ List<Attribute> listValue = getListValue(listAttribute);
+ Assert.assertEquals(2, listValue.size());
+
+ Attribute addAttribute = listValue.get(0);
+ Assert.assertEquals("list-attr-role", addAttribute.getRole());
+ Assert.assertEquals("list-attr-val", addAttribute.getValue());
+ Assert.assertEquals("list-attr-type", addAttribute.getRenderer());
+ Expression addAttrExpressionObject = addAttribute.getExpressionObject();
+ Assert.assertEquals("list-attr-expr", addAttrExpressionObject.getExpression());
+
+ Attribute addListAttribute = listValue.get(1);
+ Assert.assertEquals("list-list-attr-role", addListAttribute.getRole());
+ List<Attribute> addListValue = getListValue(addListAttribute);
+ Assert.assertEquals(1, addListValue.size());
+ Assert.assertEquals("list-list-add-attr", addListValue.get(0).getValue());
+
+ Set<String> cascadedAttributeNames = definition.getCascadedAttributeNames();
+ Assert.assertEquals(2, cascadedAttributeNames.size());
+ Assert.assertTrue(cascadedAttributeNames.contains("put-attr"));
+ Assert.assertTrue(cascadedAttributeNames.contains("list-name"));
+ }
+
+ @Test
+ public void buildDefinitonAllEmpty() {
+ StrutsTilesAnnotationProcessor annotationProcessor = new StrutsTilesAnnotationProcessor();
+ TilesDefinition tilesDefinition = annotationProcessor.findAnnotation(new TilesTestActionSingleAnnotationAllEmpty(), null);
+
+ Definition definition = annotationProcessor.buildTilesDefinition(null, tilesDefinition);
+
+ Assert.assertNotNull(definition);
+ Assert.assertNull(definition.getName());
+ Assert.assertNull(definition.getPreparer());
+ Assert.assertNull(definition.getExtends());
+ Attribute templateAttribute = definition.getTemplateAttribute();
+ Assert.assertNull(templateAttribute.getValue());
+ //Assert.assertNull(templateAttribute.getRenderer());
+ Assert.assertNull(templateAttribute.getRole());
+ Assert.assertNull(templateAttribute.getExpressionObject());
+
+ Attribute putAttribute = definition.getAttribute("put-attr");
+ Assert.assertNotNull(putAttribute);
+ Assert.assertNull(putAttribute.getValue());
+ Assert.assertNull(putAttribute.getRenderer());
+ Assert.assertNull(putAttribute.getRole());
+ Assert.assertNull(putAttribute.getExpressionObject());
+
+ Attribute listAttribute = definition.getAttribute("list-name");
+ Assert.assertNull(listAttribute.getRole());
+ List<Attribute> listValue = getListValue(listAttribute);
+ Assert.assertEquals(2, listValue.size());
+
+ Attribute addAttribute = listValue.get(0);
+ Assert.assertNull(addAttribute.getRole());
+ Assert.assertNull(addAttribute.getValue());
+ Assert.assertNull(addAttribute.getRenderer());
+ Assert.assertNull(addAttribute.getExpressionObject());
+
+ Attribute addListAttribute = listValue.get(1);
+ Assert.assertNull(addListAttribute.getRole());
+ List<Attribute> addListValue = getListValue(addListAttribute);
+ Assert.assertEquals(1, addListValue.size());
+ Assert.assertNull(addListValue.get(0).getValue());
+
+ Set<String> cascadedAttributeNames = definition.getCascadedAttributeNames();
+ Assert.assertNull(cascadedAttributeNames);
+ }
+
+ @SuppressWarnings("unchecked")
+ protected List<Attribute> getListValue(Attribute listAttribute) {
+ return (List<Attribute>) listAttribute.getValue();
+ }
+}
http://git-wip-us.apache.org/repos/asf/struts/blob/bd5e64e5/plugins/tiles/src/test/java/org/apache/struts2/tiles/TilesTestActionMultipleAnnotations.java
----------------------------------------------------------------------
diff --git a/plugins/tiles/src/test/java/org/apache/struts2/tiles/TilesTestActionMultipleAnnotations.java b/plugins/tiles/src/test/java/org/apache/struts2/tiles/TilesTestActionMultipleAnnotations.java
new file mode 100644
index 0000000..99a736b
--- /dev/null
+++ b/plugins/tiles/src/test/java/org/apache/struts2/tiles/TilesTestActionMultipleAnnotations.java
@@ -0,0 +1,12 @@
+package org.apache.struts2.tiles;
+
+import org.apache.struts2.tiles.annotation.TilesDefinition;
+import org.apache.struts2.tiles.annotation.TilesDefinitions;
+
+@TilesDefinitions({
+ @TilesDefinition(name="def1"),
+ @TilesDefinition(name="def2"),
+})
+public class TilesTestActionMultipleAnnotations {
+
+}
http://git-wip-us.apache.org/repos/asf/struts/blob/bd5e64e5/plugins/tiles/src/test/java/org/apache/struts2/tiles/TilesTestActionSingleAnnotation.java
----------------------------------------------------------------------
diff --git a/plugins/tiles/src/test/java/org/apache/struts2/tiles/TilesTestActionSingleAnnotation.java b/plugins/tiles/src/test/java/org/apache/struts2/tiles/TilesTestActionSingleAnnotation.java
new file mode 100644
index 0000000..c7a98eb
--- /dev/null
+++ b/plugins/tiles/src/test/java/org/apache/struts2/tiles/TilesTestActionSingleAnnotation.java
@@ -0,0 +1,49 @@
+package org.apache.struts2.tiles;
+
+import org.apache.struts2.tiles.annotation.TilesAddAttribute;
+import org.apache.struts2.tiles.annotation.TilesAddListAttribute;
+import org.apache.struts2.tiles.annotation.TilesDefinition;
+import org.apache.struts2.tiles.annotation.TilesPutAttribute;
+import org.apache.struts2.tiles.annotation.TilesPutListAttribute;
+
+@TilesDefinition(
+ name = "definition-name",
+ extend = "base-definition",
+ preparer = "preparer",
+ role = "role",
+ template = "template",
+ templateExpression = "templ*",
+ templateType = "type",
+ putAttributes = {
+ @TilesPutAttribute(
+ cascade = true,
+ expression = "lang:expr",
+ name = "put-attr",
+ role = "attr-role",
+ type = "attr-type",
+ value = "attr-val")
+ },
+ putListAttributes = {
+ @TilesPutListAttribute(
+ cascade = true,
+ inherit = true,
+ name = "list-name",
+ role = "list-role",
+ addAttributes = {
+ @TilesAddAttribute(
+ expression = "list-attr-expr",
+ role = "list-attr-role",
+ type = "list-attr-type",
+ value = "list-attr-val")
+ },
+ addListAttributes = {
+ @TilesAddListAttribute(
+ role = "list-list-attr-role",
+ addAttributes = {@TilesAddAttribute("list-list-add-attr")})
+ }
+ )
+ }
+)
+public class TilesTestActionSingleAnnotation {
+
+}
http://git-wip-us.apache.org/repos/asf/struts/blob/bd5e64e5/plugins/tiles/src/test/java/org/apache/struts2/tiles/TilesTestActionSingleAnnotationAllEmpty.java
----------------------------------------------------------------------
diff --git a/plugins/tiles/src/test/java/org/apache/struts2/tiles/TilesTestActionSingleAnnotationAllEmpty.java b/plugins/tiles/src/test/java/org/apache/struts2/tiles/TilesTestActionSingleAnnotationAllEmpty.java
new file mode 100644
index 0000000..4a9aff9
--- /dev/null
+++ b/plugins/tiles/src/test/java/org/apache/struts2/tiles/TilesTestActionSingleAnnotationAllEmpty.java
@@ -0,0 +1,28 @@
+package org.apache.struts2.tiles;
+
+import org.apache.struts2.tiles.annotation.TilesAddAttribute;
+import org.apache.struts2.tiles.annotation.TilesAddListAttribute;
+import org.apache.struts2.tiles.annotation.TilesDefinition;
+import org.apache.struts2.tiles.annotation.TilesPutAttribute;
+import org.apache.struts2.tiles.annotation.TilesPutListAttribute;
+
+@TilesDefinition(
+ putAttributes = {
+ @TilesPutAttribute(name = "put-attr")
+ },
+ putListAttributes = {
+ @TilesPutListAttribute(
+ name = "list-name",
+ addAttributes = {
+ @TilesAddAttribute()
+ },
+ addListAttributes = {
+ @TilesAddListAttribute(
+ addAttributes = {@TilesAddAttribute()})
+ }
+ )
+ }
+)
+public class TilesTestActionSingleAnnotationAllEmpty {
+
+}