IteratorTagTestpublic class IteratorTagTest extends AbstractUITagTest Test Case for Iterator Tag |
Fields Summary |
---|
IteratorTag | tag |
Methods Summary |
---|
private void | iterateThreeStrings()
int result = 0;
try {
result = tag.doStartTag();
} catch (JspException e) {
e.printStackTrace();
fail();
}
assertEquals(result, TagSupport.EVAL_BODY_INCLUDE);
assertEquals("test1", stack.getRoot().peek());
assertEquals(4, stack.size());
try {
result = tag.doAfterBody();
} catch (JspException e) {
e.printStackTrace();
fail();
}
assertEquals(result, TagSupport.EVAL_BODY_AGAIN);
assertEquals("test2", stack.getRoot().peek());
assertEquals(4, stack.size());
try {
result = tag.doAfterBody();
} catch (JspException e) {
e.printStackTrace();
fail();
}
assertEquals(result, TagSupport.EVAL_BODY_AGAIN);
assertEquals("test3", stack.getRoot().peek());
assertEquals(4, stack.size());
try {
result = tag.doAfterBody();
} catch (JspException e) {
e.printStackTrace();
fail();
}
assertEquals(result, TagSupport.SKIP_BODY);
assertEquals(3, stack.size());
| protected void | setUp()
super.setUp();
// create the needed objects
tag = new IteratorTag();
MockBodyContent mockBodyContent = new TestMockBodyContent();
mockBodyContent.setupGetEnclosingWriter(new MockJspWriter());
tag.setBodyContent(mockBodyContent);
// associate the tag with the mock page request
tag.setPageContext(pageContext);
| public void | testArrayIterator()
Foo foo = new Foo();
foo.setArray(new String[]{"test1", "test2", "test3"});
stack.push(foo);
tag.setValue("array");
iterateThreeStrings();
| public void | testCollectionIterator()
Foo foo = new Foo();
ArrayList list = new ArrayList();
list.add("test1");
list.add("test2");
list.add("test3");
foo.setList(list);
stack.push(foo);
tag.setValue("list");
iterateThreeStrings();
| public void | testEmptyArray()
Foo foo = new Foo();
foo.setArray(new String[]{});
stack.push(foo);
tag.setValue("array");
validateSkipBody();
| public void | testEmptyCollection()
Foo foo = new Foo();
foo.setList(new ArrayList());
stack.push(foo);
tag.setValue("list");
validateSkipBody();
| public void | testIteratingWithIdSpecified()
List list = new ArrayList();
list.add("one");
list.add("two");
list.add("three");
list.add("four");
list.add("five");
Foo foo = new Foo();
foo.setList(list);
stack.push(foo);
tag.setValue("list");
tag.setId("myId");
// one
int result = tag.doStartTag();
assertEquals(result, TagSupport.EVAL_BODY_INCLUDE);
assertEquals(stack.peek(), "one");
assertEquals(stack.getContext().get("myId"), "one");
tag.doInitBody();
// two
result = tag.doAfterBody();
assertEquals(result, TagSupport.EVAL_BODY_AGAIN);
assertEquals(stack.peek(), "two");
assertEquals(stack.getContext().get("myId"), "two");
// three
result = tag.doAfterBody();
assertEquals(result, TagSupport.EVAL_BODY_AGAIN);
assertEquals(stack.peek(), "three");
assertEquals(stack.getContext().get("myId"), "three");
// four
result = tag.doAfterBody();
assertEquals(result, TagSupport.EVAL_BODY_AGAIN);
assertEquals(stack.peek(), "four");
assertEquals(stack.getContext().get("myId"), "four");
// five
result = tag.doAfterBody();
assertEquals(result, TagSupport.EVAL_BODY_AGAIN);
assertEquals(stack.peek(), "five");
assertEquals(stack.getContext().get("myId"), "five");
result = tag.doAfterBody();
assertEquals(result, TagSupport.SKIP_BODY);
result = tag.doEndTag();
assertEquals(result, TagSupport.EVAL_PAGE);
| public void | testIteratorWithDefaultValue()
stack.push(new String[]{"test1", "test2", "test3"});
iterateThreeStrings();
| public void | testMapIterator()
Foo foo = new Foo();
HashMap map = new HashMap();
map.put("test1", "123");
map.put("test2", "456");
map.put("test3", "789");
foo.setMap(map);
stack.push(foo);
tag.setValue("map");
int result = 0;
try {
result = tag.doStartTag();
} catch (JspException e) {
e.printStackTrace();
fail();
}
assertEquals(TagSupport.EVAL_BODY_INCLUDE, result);
assertEquals(4, stack.size());
assertTrue(stack.getRoot().peek() instanceof Map.Entry);
try {
result = tag.doAfterBody();
} catch (JspException e) {
e.printStackTrace();
fail();
}
assertEquals(TagSupport.EVAL_BODY_AGAIN, result);
assertEquals(4, stack.size());
assertTrue(stack.getRoot().peek() instanceof Map.Entry);
try {
result = tag.doAfterBody();
} catch (JspException e) {
e.printStackTrace();
fail();
}
assertEquals(TagSupport.EVAL_BODY_AGAIN, result);
assertEquals(4, stack.size());
assertTrue(stack.getRoot().peek() instanceof Map.Entry);
try {
result = tag.doAfterBody();
} catch (JspException e) {
e.printStackTrace();
fail();
}
assertEquals(TagSupport.SKIP_BODY, result);
assertEquals(3, stack.size());
| public void | testNullArray()
Foo foo = new Foo();
foo.setArray(null);
stack.push(foo);
tag.setValue("array");
validateSkipBody();
| public void | testNullCollection()
Foo foo = new Foo();
foo.setList(null);
stack.push(foo);
tag.setValue("list");
validateSkipBody();
| public void | testStatus()
Foo foo = new Foo();
foo.setArray(new String[]{"test1", "test2", "test3"});
stack.push(foo);
tag.setValue("array");
tag.setStatus("fooStatus");
int result = 0;
try {
result = tag.doStartTag();
} catch (JspException e) {
e.printStackTrace();
fail();
}
assertEquals(result, TagSupport.EVAL_BODY_INCLUDE);
assertEquals("test1", stack.getRoot().peek());
assertEquals(4, stack.size());
IteratorStatus status = (IteratorStatus) context.get("fooStatus");
assertNotNull(status);
assertFalse(status.isLast());
assertTrue(status.isFirst());
assertEquals(0, status.getIndex());
assertEquals(1, status.getCount());
assertTrue(status.isOdd());
assertFalse(status.isEven());
try {
result = tag.doAfterBody();
} catch (JspException e) {
e.printStackTrace();
fail();
}
assertEquals(result, TagSupport.EVAL_BODY_AGAIN);
assertEquals("test2", stack.getRoot().peek());
assertEquals(4, stack.size());
status = (IteratorStatus) context.get("fooStatus");
assertNotNull(status);
assertFalse(status.isLast());
assertFalse(status.isFirst());
assertEquals(1, status.getIndex());
assertEquals(2, status.getCount());
assertFalse(status.isOdd());
assertTrue(status.isEven());
try {
result = tag.doAfterBody();
} catch (JspException e) {
e.printStackTrace();
fail();
}
assertEquals(result, TagSupport.EVAL_BODY_AGAIN);
assertEquals("test3", stack.getRoot().peek());
assertEquals(4, stack.size());
status = (IteratorStatus) context.get("fooStatus");
assertNotNull(status);
assertTrue(status.isLast());
assertFalse(status.isFirst());
assertEquals(2, status.getIndex());
assertEquals(3, status.getCount());
assertTrue(status.isOdd());
assertFalse(status.isEven());
| private void | validateSkipBody()
int result = 0;
try {
result = tag.doStartTag();
} catch (JspException e) {
e.printStackTrace();
fail();
}
assertEquals(result, TagSupport.SKIP_BODY);
try {
result = tag.doEndTag();
} catch (JspException e) {
e.printStackTrace();
fail();
}
|
|