001: /*
002: * Copyright (c) 2002-2003 by OpenSymphony
003: * All rights reserved.
004: */
005: package com.opensymphony.webwork.views.jsp;
006:
007: import java.util.ArrayList;
008: import java.util.Iterator;
009: import java.util.List;
010:
011: import com.opensymphony.webwork.views.jsp.iterator.MergeIteratorTag;
012: import com.opensymphony.xwork.Action;
013: import com.opensymphony.xwork.ActionSupport;
014:
015: /**
016: * Test case for MergeIteratorTag.
017: *
018: * @author tmjee (tm_jee (at) yahoo.co.uk)
019: * @version $Date: 2005-11-30 17:58:16 +0100 (Wed, 30 Nov 2005) $ $Id: MergeIteratorTagTest.java 1522 2005-11-30 16:58:16Z rgielen $
020: */
021: public class MergeIteratorTagTest extends AbstractTagTest {
022:
023: public void testMergingIteratorWithArrayAsSource() throws Exception {
024: MergeIteratorTag tag = new MergeIteratorTag();
025: tag.setPageContext(pageContext);
026: tag.setId("myMergedIterator");
027:
028: ParamTag iterator1ParamTag = new ParamTag();
029: iterator1ParamTag.setPageContext(pageContext);
030: iterator1ParamTag.setValue("myArr1");
031:
032: ParamTag iterator2ParamTag = new ParamTag();
033: iterator2ParamTag.setPageContext(pageContext);
034: iterator2ParamTag.setValue("myArr2");
035:
036: ParamTag iterator3ParamTag = new ParamTag();
037: iterator3ParamTag.setPageContext(pageContext);
038: iterator3ParamTag.setValue("myArr3");
039:
040: tag.doStartTag();
041: iterator1ParamTag.doStartTag();
042: iterator1ParamTag.doEndTag();
043: iterator2ParamTag.doStartTag();
044: iterator2ParamTag.doEndTag();
045: iterator3ParamTag.doStartTag();
046: iterator3ParamTag.doEndTag();
047: tag.doEndTag();
048:
049: Iterator mergedIterator = (Iterator) stack
050: .findValue("#myMergedIterator"); // if not iterator, let CCE surface
051:
052: assertNotNull(mergedIterator);
053: assertTrue(mergedIterator.hasNext());
054: assertEquals(mergedIterator.next(), "1");
055: assertTrue(mergedIterator.hasNext());
056: assertEquals(mergedIterator.next(), "a");
057: assertTrue(mergedIterator.hasNext());
058: assertEquals(mergedIterator.next(), "A");
059: assertTrue(mergedIterator.hasNext());
060: assertEquals(mergedIterator.next(), "2");
061: assertTrue(mergedIterator.hasNext());
062: assertEquals(mergedIterator.next(), "b");
063: assertTrue(mergedIterator.hasNext());
064: assertEquals(mergedIterator.next(), "B");
065: assertTrue(mergedIterator.hasNext());
066: assertEquals(mergedIterator.next(), "3");
067: assertTrue(mergedIterator.hasNext());
068: assertEquals(mergedIterator.next(), "c");
069: assertTrue(mergedIterator.hasNext());
070: assertEquals(mergedIterator.next(), "C");
071: assertFalse(mergedIterator.hasNext());
072: }
073:
074: public void testMergingIteratorsWithListAsSource() throws Exception {
075: MergeIteratorTag tag = new MergeIteratorTag();
076: tag.setPageContext(pageContext);
077: tag.setId("myMergedIterator");
078:
079: ParamTag iterator1ParamTag = new ParamTag();
080: iterator1ParamTag.setPageContext(pageContext);
081: iterator1ParamTag.setValue("myList1");
082:
083: ParamTag iterator2ParamTag = new ParamTag();
084: iterator2ParamTag.setPageContext(pageContext);
085: iterator2ParamTag.setValue("myList2");
086:
087: ParamTag iterator3ParamTag = new ParamTag();
088: iterator3ParamTag.setPageContext(pageContext);
089: iterator3ParamTag.setValue("myList3");
090:
091: tag.doStartTag();
092: iterator1ParamTag.doStartTag();
093: iterator1ParamTag.doEndTag();
094: iterator2ParamTag.doStartTag();
095: iterator2ParamTag.doEndTag();
096: iterator3ParamTag.doStartTag();
097: iterator3ParamTag.doEndTag();
098: tag.doEndTag();
099:
100: Iterator mergedIterator = (Iterator) stack
101: .findValue("#myMergedIterator"); // if not iterator, let CCE surface
102:
103: assertNotNull(mergedIterator);
104: assertTrue(mergedIterator.hasNext());
105: assertEquals(mergedIterator.next(), "1");
106: assertTrue(mergedIterator.hasNext());
107: assertEquals(mergedIterator.next(), "a");
108: assertTrue(mergedIterator.hasNext());
109: assertEquals(mergedIterator.next(), "A");
110: assertTrue(mergedIterator.hasNext());
111: assertEquals(mergedIterator.next(), "2");
112: assertTrue(mergedIterator.hasNext());
113: assertEquals(mergedIterator.next(), "b");
114: assertTrue(mergedIterator.hasNext());
115: assertEquals(mergedIterator.next(), "B");
116: assertTrue(mergedIterator.hasNext());
117: assertEquals(mergedIterator.next(), "3");
118: assertTrue(mergedIterator.hasNext());
119: assertEquals(mergedIterator.next(), "c");
120: assertTrue(mergedIterator.hasNext());
121: assertEquals(mergedIterator.next(), "C");
122: assertFalse(mergedIterator.hasNext());
123: }
124:
125: public Action getAction() {
126: return new ActionSupport() {
127: public List getMyList1() {
128: List l = new ArrayList();
129: l.add("1");
130: l.add("2");
131: l.add("3");
132: return l;
133: }
134:
135: public List getMyList2() {
136: List l = new ArrayList();
137: l.add("a");
138: l.add("b");
139: l.add("c");
140: return l;
141: }
142:
143: public List getMyList3() {
144: List l = new ArrayList();
145: l.add("A");
146: l.add("B");
147: l.add("C");
148: return l;
149: }
150:
151: public String[] getMyArr1() {
152: return new String[] { "1", "2", "3" };
153: }
154:
155: public String[] getMyArr2() {
156: return new String[] { "a", "b", "c" };
157: }
158:
159: public String[] getMyArr3() {
160: return new String[] { "A", "B", "C" };
161: }
162: };
163: }
164: }
|