Author: apetrelli
Date: Wed Nov 4 18:44:25 2009
New Revision: 832840
URL: http://svn.apache.org/viewvc?rev=832840&view=rev
Log:
TILESSB-11
Added tests for Expression, Definition.
TILESSB-10
Modified ListAttribute to be more significant in its API.
Modified:
tiles/sandbox/trunk/tiles3/tiles-api/src/main/java/org/apache/tiles/Definition.java
tiles/sandbox/trunk/tiles3/tiles-api/src/main/java/org/apache/tiles/ListAttribute.java
tiles/sandbox/trunk/tiles3/tiles-api/src/test/java/org/apache/tiles/BasicAttributeContextTest.java
tiles/sandbox/trunk/tiles3/tiles-api/src/test/java/org/apache/tiles/ExpressionTest.java
tiles/sandbox/trunk/tiles3/tiles-api/src/test/java/org/apache/tiles/TestDefinition.java
Modified:
tiles/sandbox/trunk/tiles3/tiles-api/src/main/java/org/apache/tiles/Definition.java
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-api/src/main/java/org/apache/tiles/Definition.java?rev=832840&r1=832839&r2=832840&view=diff
==============================================================================
---
tiles/sandbox/trunk/tiles3/tiles-api/src/main/java/org/apache/tiles/Definition.java
(original)
+++
tiles/sandbox/trunk/tiles3/tiles-api/src/main/java/org/apache/tiles/Definition.java
Wed Nov 4 18:44:25 2009
@@ -47,7 +47,6 @@
* Constructor.
*/
public Definition() {
- super();
}
/**
Modified:
tiles/sandbox/trunk/tiles3/tiles-api/src/main/java/org/apache/tiles/ListAttribute.java
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-api/src/main/java/org/apache/tiles/ListAttribute.java?rev=832840&r1=832839&r2=832840&view=diff
==============================================================================
---
tiles/sandbox/trunk/tiles3/tiles-api/src/main/java/org/apache/tiles/ListAttribute.java
(original)
+++
tiles/sandbox/trunk/tiles3/tiles-api/src/main/java/org/apache/tiles/ListAttribute.java
Wed Nov 4 18:44:25 2009
@@ -59,8 +59,8 @@
* @param value List.
* @since 2.1.0
*/
- public ListAttribute(List<? extends Object> value) {
- super(value);
+ public ListAttribute(List<Attribute> value) {
+ setValue(value);
}
/**
@@ -75,44 +75,36 @@
}
/**
- * Add an element in list.
- * We use a property to avoid rewriting a new class.
+ * Sets the list of the attributes that are elements of this attribute.
*
- * @param element XmlAttribute to add.
- * @since 2.1.0
+ * @param attributes The attributes.
+ * @since 3.0.0
*/
- @SuppressWarnings("unchecked")
- public void add(Attribute element) {
- ((List<Object>) value).add(element);
+ public void setValue(List<Attribute> attributes) {
+ super.setValue(attributes);
}
/**
- * Add an element in list.
+ * Returns the list of the attributes that are elements of this attribute.
*
- * @param value Object to add.
- * @since 2.1.0
+ * @return The attributes.
+ * @since 3.0.0
*/
@SuppressWarnings("unchecked")
- public void add(Object value) {
- //list.add( value );
- // To correct a bug in digester, we need to check the object type
- // Digester doesn't call correct method according to object type ;-(
- if (value instanceof Attribute) {
- add((Attribute) value);
- } else {
- ((List<Object>) this.value).add(value);
- }
+ @Override
+ public List<Attribute> getValue() {
+ return (List<Attribute>) super.getValue();
}
/**
* Add an element in list.
+ * We use a property to avoid rewriting a new class.
*
- * @param value Object to add.
+ * @param element XmlAttribute to add.
* @since 2.1.0
*/
- @SuppressWarnings("unchecked")
- public void addObject(Object value) {
- ((List<Object>) this.value).add(value);
+ public void add(Attribute element) {
+ getValue().add(element);
}
/**
@@ -148,9 +140,9 @@
*/
@SuppressWarnings("unchecked")
public void inherit(ListAttribute parent) {
- List<Object> tempList = new ArrayList<Object>();
- tempList.addAll((List<Object>) parent.value);
- tempList.addAll((List<Object>) value);
+ List<Attribute> tempList = new ArrayList<Attribute>();
+ tempList.addAll((List<Attribute>) parent.value);
+ tempList.addAll((List<Attribute>) value);
setValue(tempList);
}
Modified:
tiles/sandbox/trunk/tiles3/tiles-api/src/test/java/org/apache/tiles/BasicAttributeContextTest.java
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-api/src/test/java/org/apache/tiles/BasicAttributeContextTest.java?rev=832840&r1=832839&r2=832840&view=diff
==============================================================================
---
tiles/sandbox/trunk/tiles3/tiles-api/src/test/java/org/apache/tiles/BasicAttributeContextTest.java
(original)
+++
tiles/sandbox/trunk/tiles3/tiles-api/src/test/java/org/apache/tiles/BasicAttributeContextTest.java
Wed Nov 4 18:44:25 2009
@@ -193,39 +193,40 @@
* Tests {...@link BasicAttributeContext#inherit(BasicAttributeContext)}
* testing inheritance between {...@link ListAttribute} instances.
*/
- @SuppressWarnings("unchecked")
@Test
public void testInheritListAttribute() {
AttributeContext toCopy = new BasicAttributeContext();
ListAttribute parentListAttribute = new ListAttribute();
- parentListAttribute.add("first");
+ Attribute first = new Attribute("first");
+ Attribute second = new Attribute("second");
+ parentListAttribute.add(first);
toCopy.putAttribute("list", parentListAttribute);
AttributeContext context = new BasicAttributeContext();
ListAttribute listAttribute = new ListAttribute();
listAttribute.setInherit(true);
- listAttribute.add("second");
+ listAttribute.add(second);
context.putAttribute("list", listAttribute);
context.inherit(toCopy);
ListAttribute result = (ListAttribute) context.getAttribute("list");
assertNotNull("The attribute must exist", result);
- List<Object> value = (List<Object>) result.getValue();
+ List<Attribute> value = result.getValue();
assertNotNull("The list must exist", value);
assertEquals("The size is not correct", 2, value.size());
- assertEquals("The first element is not correct", "first",
value.get(0));
- assertEquals("The second element is not correct", "second", value
+ assertEquals("The first element is not correct", first, value.get(0));
+ assertEquals("The second element is not correct", second, value
.get(1));
context = new BasicAttributeContext();
listAttribute = new ListAttribute();
- listAttribute.add("second");
+ listAttribute.add(second);
context.putAttribute("list", listAttribute);
context.inherit(toCopy);
result = (ListAttribute) context.getAttribute("list");
assertNotNull("The attribute must exist", result);
- value = (List<Object>) result.getValue();
+ value = result.getValue();
assertNotNull("The list must exist", value);
assertEquals("The size is not correct", 1, value.size());
- assertEquals("The second element is not correct", "second", value
+ assertEquals("The second element is not correct", second, value
.get(0));
}
@@ -351,7 +352,6 @@
* Tests {...@link BasicAttributeContext#inherit(AttributeContext)}
* testing inheritance between {...@link ListAttribute} instances.
*/
- @SuppressWarnings("unchecked")
@Test
public void testInheritAttributeContextListAttribute() {
AttributeContext toCopy = createMock(AttributeContext.class);
@@ -359,9 +359,13 @@
expect(toCopy.getTemplateAttribute()).andReturn(templateAttribute).times(2);
expect(toCopy.getPreparer()).andReturn("my.preparer").times(2);
ListAttribute parentListAttribute = new ListAttribute();
- parentListAttribute.add("first");
+ Attribute first = new Attribute("first");
+ Attribute second = new Attribute("second");
+ Attribute third = new Attribute("third");
+ Attribute fourth = new Attribute("fourth");
+ parentListAttribute.add(first);
ListAttribute parentListAttribute2 = new ListAttribute();
- parentListAttribute2.add("third");
+ parentListAttribute2.add(third);
Set<String> names = new HashSet<String>();
names.add("list");
Set<String> cascadedNames = new HashSet<String>();
@@ -375,41 +379,41 @@
AttributeContext context = new BasicAttributeContext();
ListAttribute listAttribute = new ListAttribute();
listAttribute.setInherit(true);
- listAttribute.add("second");
+ listAttribute.add(second);
context.putAttribute("list", listAttribute, false);
ListAttribute listAttribute2 = new ListAttribute();
listAttribute2.setInherit(true);
- listAttribute2.add("fourth");
+ listAttribute2.add(fourth);
context.putAttribute("list2", listAttribute2, true);
context.inherit(toCopy);
ListAttribute result = (ListAttribute) context.getAttribute("list");
assertNotNull("The attribute must exist", result);
- List<Object> value = (List<Object>) result.getValue();
+ List<Attribute> value = result.getValue();
assertNotNull("The list must exist", value);
assertEquals("The size is not correct", 2, value.size());
- assertEquals("The first element is not correct", "first",
value.get(0));
- assertEquals("The second element is not correct", "second", value
+ assertEquals("The first element is not correct", first, value.get(0));
+ assertEquals("The second element is not correct", second, value
.get(1));
result = (ListAttribute) context.getAttribute("list2");
assertNotNull("The attribute must exist", result);
- value = (List<Object>) result.getValue();
+ value = result.getValue();
assertNotNull("The list must exist", value);
assertEquals("The size is not correct", 2, value.size());
- assertEquals("The first element is not correct", "third",
value.get(0));
- assertEquals("The second element is not correct", "fourth", value
+ assertEquals("The first element is not correct", third, value.get(0));
+ assertEquals("The second element is not correct", fourth, value
.get(1));
context = new BasicAttributeContext();
listAttribute = new ListAttribute();
- listAttribute.add("second");
+ listAttribute.add(second);
context.putAttribute("list", listAttribute);
context.inherit(toCopy);
result = (ListAttribute) context.getAttribute("list");
assertNotNull("The attribute must exist", result);
- value = (List<Object>) result.getValue();
+ value = result.getValue();
assertNotNull("The list must exist", value);
assertEquals("The size is not correct", 1, value.size());
- assertEquals("The second element is not correct", "second", value
+ assertEquals("The second element is not correct", second, value
.get(0));
verify(toCopy);
}
@@ -768,8 +772,9 @@
AttributeContext toCopy = new BasicAttributeContext();
toCopy.putAttribute("name1", new Attribute("value1"), false);
toCopy.putAttribute("name2", new Attribute("value2"), true);
- List<Object> listOfObjects = new ArrayList<Object>();
- listOfObjects.add(1);
+ List<Attribute> listOfObjects = new ArrayList<Attribute>();
+ Attribute attribute1 = new Attribute(1);
+ listOfObjects.add(attribute1);
ListAttribute listAttribute = new ListAttribute(listOfObjects);
listAttribute.setInherit(true);
toCopy.putAttribute("name3", listAttribute);
Modified:
tiles/sandbox/trunk/tiles3/tiles-api/src/test/java/org/apache/tiles/ExpressionTest.java
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-api/src/test/java/org/apache/tiles/ExpressionTest.java?rev=832840&r1=832839&r2=832840&view=diff
==============================================================================
---
tiles/sandbox/trunk/tiles3/tiles-api/src/test/java/org/apache/tiles/ExpressionTest.java
(original)
+++
tiles/sandbox/trunk/tiles3/tiles-api/src/test/java/org/apache/tiles/ExpressionTest.java
Wed Nov 4 18:44:25 2009
@@ -86,6 +86,7 @@
expression =
Expression.createExpressionFromDescribedExpression("there_:hello");
assertEquals("there_:hello", expression.getExpression());
assertNull(expression.getLanguage());
+ assertNull(Expression.createExpressionFromDescribedExpression(null));
}
/**
Modified:
tiles/sandbox/trunk/tiles3/tiles-api/src/test/java/org/apache/tiles/TestDefinition.java
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-api/src/test/java/org/apache/tiles/TestDefinition.java?rev=832840&r1=832839&r2=832840&view=diff
==============================================================================
---
tiles/sandbox/trunk/tiles3/tiles-api/src/test/java/org/apache/tiles/TestDefinition.java
(original)
+++
tiles/sandbox/trunk/tiles3/tiles-api/src/test/java/org/apache/tiles/TestDefinition.java
Wed Nov 4 18:44:25 2009
@@ -21,43 +21,56 @@
package org.apache.tiles;
+import static org.junit.Assert.*;
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.junit.Test;
/**
* Tests the Definition class.
*
* @version $Rev$ $Date$
*/
-public class TestDefinition extends TestCase {
-
- /**
- * Creates a new instance of TestDefinition.
- *
- * @param name The name of the test.
- */
- public TestDefinition(String name) {
- super(name);
- }
+public class TestDefinition {
/**
- * Start the tests.
- *
- * @param theArgs the arguments. Not used
+ * Tests {...@link Definition#Definition(Definition)}.
*/
- public static void main(String[] theArgs) {
- junit.textui.TestRunner.main(
- new String[] { TestDefinition.class.getName()});
+ @Test
+ public void testDefinitionCopy() {
+ Definition definition = new Definition();
+ definition.setName("myDefinition");
+ definition.setExtends("myExtends");
+ Attribute attribute1 = new Attribute("value1");
+ definition.putAttribute("name1", attribute1);
+ Attribute attribute2 = new Attribute("value2");
+ definition.putAttribute("name2", attribute2);
+ Definition toCheck = new Definition(definition);
+ assertEquals("myDefinition", toCheck.getName());
+ assertEquals("myExtends", toCheck.getExtends());
+ assertEquals(attribute1, toCheck.getAttribute("name1"));
+ assertEquals(attribute2, toCheck.getAttribute("name2"));
}
/**
- * @return a test suite (<code>TestSuite</code>) that includes all methods
- * starting with "test"
- */
- public static Test suite() {
- return new TestSuite(TestDefinition.class);
+ * Tests {...@link Definition#Definition(Definition)}.
+ */
+ @Test
+ public void testDefinitionComplete() {
+ Map<String, Attribute> attributeMap = new HashMap<String, Attribute>();
+ Attribute attribute1 = new Attribute("value1");
+ Attribute attribute2 = new Attribute("value2");
+ attributeMap.put("name1", attribute1);
+ attributeMap.put("name2", attribute2);
+ Attribute templateAttribute =
Attribute.createTemplateAttribute("/my/template.jsp");
+ Definition definition = new Definition("myDefinition",
+ templateAttribute, attributeMap);
+ assertEquals("myDefinition", definition.getName());
+ assertEquals(templateAttribute, definition.getTemplateAttribute());
+ assertEquals(attribute1, definition.getAttribute("name1"));
+ assertEquals(attribute2, definition.getAttribute("name2"));
}
/**
@@ -65,6 +78,7 @@
*
* Attributes are added or replaced in the definition.
*/
+ @Test
public void testPutAttribute() {
Definition def = new Definition();
def.setName("test1");
@@ -83,6 +97,7 @@
/**
* Tests the {...@link Definition#inherit(BasicAttributeContext)} method.
*/
+ @Test
public void testInherit() {
Definition toCopy = new Definition();
toCopy.putAttribute("name1", new Attribute("value1"), true);
@@ -161,6 +176,7 @@
/**
* Tests {...@link Definition#toString()}.
*/
+ @Test
public void testToString() {
Definition definition = new Definition();
definition.setName("myDefinitionName");
@@ -177,4 +193,60 @@
+ "attributes={myAttributeName=myAttributeValue}}",
definition.toString());
}
+
+ /**
+ * Tests {...@link Definition#equals(Object)}.
+ */
+ @Test
+ public void testEquals() {
+ Definition definition = new Definition();
+ definition.setName("myDefinition");
+ definition.setExtends("myExtends");
+ Attribute attribute1 = new Attribute("value1");
+ definition.putAttribute("name1", attribute1);
+ Attribute attribute2 = new Attribute("value2");
+ definition.putAttribute("name2", attribute2);
+ Definition toCheck = new Definition(definition);
+ assertTrue(definition.equals(toCheck));
+ toCheck = new Definition(definition);
+ toCheck.setName("anotherDefinition");
+ assertFalse(definition.equals(toCheck));
+ toCheck = new Definition(definition);
+ toCheck.setExtends("anotherExtends");
+ assertFalse(definition.equals(toCheck));
+ toCheck = new Definition(definition);
+ toCheck.putAttribute("name1", new Attribute("anotherAttribute"));
+ assertFalse(definition.equals(toCheck));
+ }
+
+ /**
+ * Tests {...@link Definition#hashCode()}.
+ */
+ @Test
+ public void testHashCode() {
+ Definition definition = new Definition();
+ definition.setName("myDefinition");
+ definition.setExtends("myExtends");
+ Attribute attribute1 = new Attribute("value1");
+ definition.putAttribute("name1", attribute1);
+ Attribute attribute2 = new Attribute("value2");
+ definition.putAttribute("name2", attribute2);
+ BasicAttributeContext attributeContext = new BasicAttributeContext();
+ attributeContext.putAttribute("name1", attribute1);
+ attributeContext.putAttribute("name2", attribute2);
+ assertEquals("myDefinition".hashCode() + "myExtends".hashCode()
+ + attributeContext.hashCode(), definition.hashCode());
+ }
+
+ /**
+ * Tests {...@link Definition#isExtending()}.
+ */
+ @Test
+ public void testIsExtending() {
+ Definition definition = new Definition();
+ definition.setName("myDefinition");
+ assertFalse(definition.isExtending());
+ definition.setExtends("myExtends");
+ assertTrue(definition.isExtending());
+ }
}