1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.apache.struts2.views.jsp;
23
24 import java.util.ArrayList;
25 import java.util.Iterator;
26 import java.util.List;
27
28 import org.apache.struts2.views.jsp.iterator.AppendIteratorTag;
29
30 import com.opensymphony.xwork2.Action;
31 import com.opensymphony.xwork2.ActionSupport;
32
33 /***
34 * Test case for AppendIteratorTag.
35 */
36 public class AppendIteratorTagTest extends AbstractTagTest {
37
38
39 public void testAppendingIteratorUsingArrayAsSource() throws Exception {
40 AppendIteratorTag tag = new AppendIteratorTag();
41 tag.setPageContext(pageContext);
42 tag.setId("myAppendedIterator");
43
44 ParamTag iterator1ParamTag = new ParamTag();
45 iterator1ParamTag.setPageContext(pageContext);
46 iterator1ParamTag.setValue("%{myArr1}");
47
48 ParamTag iterator2ParamTag = new ParamTag();
49 iterator2ParamTag.setPageContext(pageContext);
50 iterator2ParamTag.setValue("%{myArr2}");
51
52 ParamTag iterator3ParamTag = new ParamTag();
53 iterator3ParamTag.setPageContext(pageContext);
54 iterator3ParamTag.setValue("%{myArr3}");
55
56
57 tag.doStartTag();
58 iterator1ParamTag.doStartTag();
59 iterator1ParamTag.doEndTag();
60 iterator2ParamTag.doStartTag();
61 iterator2ParamTag.doEndTag();
62 iterator3ParamTag.doStartTag();
63 iterator3ParamTag.doEndTag();
64 tag.doEndTag();
65
66 Iterator appendedIterator = (Iterator) stack.findValue("#myAppendedIterator");
67
68 assertNotNull(appendedIterator);
69 assertTrue(appendedIterator.hasNext());
70 assertEquals(appendedIterator.next(), "1");
71 assertTrue(appendedIterator.hasNext());
72 assertEquals(appendedIterator.next(), "2");
73 assertTrue(appendedIterator.hasNext());
74 assertEquals(appendedIterator.next(), "3");
75 assertTrue(appendedIterator.hasNext());
76 assertEquals(appendedIterator.next(), "a");
77 assertTrue(appendedIterator.hasNext());
78 assertEquals(appendedIterator.next(), "b");
79 assertTrue(appendedIterator.hasNext());
80 assertEquals(appendedIterator.next(), "c");
81 assertTrue(appendedIterator.hasNext());
82 assertEquals(appendedIterator.next(), "A");
83 assertTrue(appendedIterator.hasNext());
84 assertEquals(appendedIterator.next(), "B");
85 assertTrue(appendedIterator.hasNext());
86 assertEquals(appendedIterator.next(), "C");
87 assertFalse(appendedIterator.hasNext());
88 }
89
90 public void testAppendingIteratorsUsingListAsSource() throws Exception {
91 AppendIteratorTag tag = new AppendIteratorTag();
92 tag.setPageContext(pageContext);
93 tag.setId("myAppendedIterator");
94
95 ParamTag iterator1ParamTag = new ParamTag();
96 iterator1ParamTag.setPageContext(pageContext);
97 iterator1ParamTag.setValue("%{myList1}");
98
99 ParamTag iterator2ParamTag = new ParamTag();
100 iterator2ParamTag.setPageContext(pageContext);
101 iterator2ParamTag.setValue("%{myList2}");
102
103 ParamTag iterator3ParamTag = new ParamTag();
104 iterator3ParamTag.setPageContext(pageContext);
105 iterator3ParamTag.setValue("%{myList3}");
106
107
108 tag.doStartTag();
109 iterator1ParamTag.doStartTag();
110 iterator1ParamTag.doEndTag();
111 iterator2ParamTag.doStartTag();
112 iterator2ParamTag.doEndTag();
113 iterator3ParamTag.doStartTag();
114 iterator3ParamTag.doEndTag();
115 tag.doEndTag();
116
117 Iterator appendedIterator = (Iterator) stack.findValue("#myAppendedIterator");
118
119 assertNotNull(appendedIterator);
120 assertTrue(appendedIterator.hasNext());
121 assertEquals(appendedIterator.next(), "1");
122 assertTrue(appendedIterator.hasNext());
123 assertEquals(appendedIterator.next(), "2");
124 assertTrue(appendedIterator.hasNext());
125 assertEquals(appendedIterator.next(), "3");
126 assertTrue(appendedIterator.hasNext());
127 assertEquals(appendedIterator.next(), "a");
128 assertTrue(appendedIterator.hasNext());
129 assertEquals(appendedIterator.next(), "b");
130 assertTrue(appendedIterator.hasNext());
131 assertEquals(appendedIterator.next(), "c");
132 assertTrue(appendedIterator.hasNext());
133 assertEquals(appendedIterator.next(), "A");
134 assertTrue(appendedIterator.hasNext());
135 assertEquals(appendedIterator.next(), "B");
136 assertTrue(appendedIterator.hasNext());
137 assertEquals(appendedIterator.next(), "C");
138 assertFalse(appendedIterator.hasNext());
139 }
140
141
142
143 public Action getAction() {
144 return new ActionSupport() {
145 public List getMyList1() {
146 List l = new ArrayList();
147 l.add("1");
148 l.add("2");
149 l.add("3");
150 return l;
151 }
152
153 public List getMyList2() {
154 List l = new ArrayList();
155 l.add("a");
156 l.add("b");
157 l.add("c");
158 return l;
159 }
160
161 public List getMyList3() {
162 List l = new ArrayList(0);
163 l.add("A");
164 l.add("B");
165 l.add("C");
166 return l;
167 }
168
169 public String[] getMyArr1() {
170 return new String[] { "1", "2", "3" };
171 }
172
173 public String[] getMyArr2() {
174 return new String[] { "a", "b", "c" };
175 }
176
177 public String[] getMyArr3() {
178 return new String[] { "A", "B", "C" };
179 }
180 };
181 }
182 }