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