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