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.AppendIteratorTag;
012: import com.opensymphony.xwork.Action;
013: import com.opensymphony.xwork.ActionSupport;
014:
015: /**
016: * Test case for AppendIteratorTag.
017: * @author tmjee
018: * @version $Date: 2005-11-26 05:46:46 +0100 (Sat, 26 Nov 2005) $ $Id: AppendIteratorTagTest.java 1439 2005-11-26 04:46:46Z tmjee $
019: */
020: public class AppendIteratorTagTest extends AbstractTagTest {
021:
022: public void testAppendingIteratorUsingArrayAsSource()
023: throws Exception {
024: AppendIteratorTag tag = new AppendIteratorTag();
025: tag.setPageContext(pageContext);
026: tag.setId("myAppendedIterator");
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 appendedIterator = (Iterator) stack
050: .findValue("#myAppendedIterator");
051:
052: assertNotNull(appendedIterator);
053: assertTrue(appendedIterator.hasNext());
054: assertEquals(appendedIterator.next(), "1");
055: assertTrue(appendedIterator.hasNext());
056: assertEquals(appendedIterator.next(), "2");
057: assertTrue(appendedIterator.hasNext());
058: assertEquals(appendedIterator.next(), "3");
059: assertTrue(appendedIterator.hasNext());
060: assertEquals(appendedIterator.next(), "a");
061: assertTrue(appendedIterator.hasNext());
062: assertEquals(appendedIterator.next(), "b");
063: assertTrue(appendedIterator.hasNext());
064: assertEquals(appendedIterator.next(), "c");
065: assertTrue(appendedIterator.hasNext());
066: assertEquals(appendedIterator.next(), "A");
067: assertTrue(appendedIterator.hasNext());
068: assertEquals(appendedIterator.next(), "B");
069: assertTrue(appendedIterator.hasNext());
070: assertEquals(appendedIterator.next(), "C");
071: assertFalse(appendedIterator.hasNext());
072: }
073:
074: public void testAppendingIteratorsUsingListAsSource()
075: throws Exception {
076: AppendIteratorTag tag = new AppendIteratorTag();
077: tag.setPageContext(pageContext);
078: tag.setId("myAppendedIterator");
079:
080: ParamTag iterator1ParamTag = new ParamTag();
081: iterator1ParamTag.setPageContext(pageContext);
082: iterator1ParamTag.setValue("%{myList1}");
083:
084: ParamTag iterator2ParamTag = new ParamTag();
085: iterator2ParamTag.setPageContext(pageContext);
086: iterator2ParamTag.setValue("%{myList2}");
087:
088: ParamTag iterator3ParamTag = new ParamTag();
089: iterator3ParamTag.setPageContext(pageContext);
090: iterator3ParamTag.setValue("%{myList3}");
091:
092: tag.doStartTag();
093: iterator1ParamTag.doStartTag();
094: iterator1ParamTag.doEndTag();
095: iterator2ParamTag.doStartTag();
096: iterator2ParamTag.doEndTag();
097: iterator3ParamTag.doStartTag();
098: iterator3ParamTag.doEndTag();
099: tag.doEndTag();
100:
101: Iterator appendedIterator = (Iterator) stack
102: .findValue("#myAppendedIterator");
103:
104: assertNotNull(appendedIterator);
105: assertTrue(appendedIterator.hasNext());
106: assertEquals(appendedIterator.next(), "1");
107: assertTrue(appendedIterator.hasNext());
108: assertEquals(appendedIterator.next(), "2");
109: assertTrue(appendedIterator.hasNext());
110: assertEquals(appendedIterator.next(), "3");
111: assertTrue(appendedIterator.hasNext());
112: assertEquals(appendedIterator.next(), "a");
113: assertTrue(appendedIterator.hasNext());
114: assertEquals(appendedIterator.next(), "b");
115: assertTrue(appendedIterator.hasNext());
116: assertEquals(appendedIterator.next(), "c");
117: assertTrue(appendedIterator.hasNext());
118: assertEquals(appendedIterator.next(), "A");
119: assertTrue(appendedIterator.hasNext());
120: assertEquals(appendedIterator.next(), "B");
121: assertTrue(appendedIterator.hasNext());
122: assertEquals(appendedIterator.next(), "C");
123: assertFalse(appendedIterator.hasNext());
124: }
125:
126: public Action getAction() {
127: return new ActionSupport() {
128: public List getMyList1() {
129: List l = new ArrayList();
130: l.add("1");
131: l.add("2");
132: l.add("3");
133: return l;
134: }
135:
136: public List getMyList2() {
137: List l = new ArrayList();
138: l.add("a");
139: l.add("b");
140: l.add("c");
141: return l;
142: }
143:
144: public List getMyList3() {
145: List l = new ArrayList(0);
146: l.add("A");
147: l.add("B");
148: l.add("C");
149: return l;
150: }
151:
152: public String[] getMyArr1() {
153: return new String[] { "1", "2", "3" };
154: }
155:
156: public String[] getMyArr2() {
157: return new String[] { "a", "b", "c" };
158: }
159:
160: public String[] getMyArr3() {
161: return new String[] { "A", "B", "C" };
162: }
163: };
164: }
165: }
|