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.MergeIteratorTag;
25
26 import com.opensymphony.xwork2.Action;
27 import com.opensymphony.xwork2.ActionSupport;
28
29 /***
30 * Test case for MergeIteratorTag.
31 *
32 */
33 public class MergeIteratorTagTest extends AbstractTagTest {
34
35 public void testMergingIteratorWithArrayAsSource() throws Exception {
36 MergeIteratorTag tag = new MergeIteratorTag();
37 tag.setPageContext(pageContext);
38 tag.setId("myMergedIterator");
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 mergedIterator = (Iterator) stack.findValue("#myMergedIterator");
63
64 assertNotNull(mergedIterator);
65 assertTrue(mergedIterator.hasNext());
66 assertEquals(mergedIterator.next(), "1");
67 assertTrue(mergedIterator.hasNext());
68 assertEquals(mergedIterator.next(), "a");
69 assertTrue(mergedIterator.hasNext());
70 assertEquals(mergedIterator.next(), "A");
71 assertTrue(mergedIterator.hasNext());
72 assertEquals(mergedIterator.next(), "2");
73 assertTrue(mergedIterator.hasNext());
74 assertEquals(mergedIterator.next(), "b");
75 assertTrue(mergedIterator.hasNext());
76 assertEquals(mergedIterator.next(), "B");
77 assertTrue(mergedIterator.hasNext());
78 assertEquals(mergedIterator.next(), "3");
79 assertTrue(mergedIterator.hasNext());
80 assertEquals(mergedIterator.next(), "c");
81 assertTrue(mergedIterator.hasNext());
82 assertEquals(mergedIterator.next(), "C");
83 assertFalse(mergedIterator.hasNext());
84 }
85
86
87 public void testMergingIteratorsWithListAsSource() throws Exception {
88 MergeIteratorTag tag = new MergeIteratorTag();
89 tag.setPageContext(pageContext);
90 tag.setId("myMergedIterator");
91
92 ParamTag iterator1ParamTag = new ParamTag();
93 iterator1ParamTag.setPageContext(pageContext);
94 iterator1ParamTag.setValue("myList1");
95
96 ParamTag iterator2ParamTag = new ParamTag();
97 iterator2ParamTag.setPageContext(pageContext);
98 iterator2ParamTag.setValue("myList2");
99
100 ParamTag iterator3ParamTag = new ParamTag();
101 iterator3ParamTag.setPageContext(pageContext);
102 iterator3ParamTag.setValue("myList3");
103
104
105 tag.doStartTag();
106 iterator1ParamTag.doStartTag();
107 iterator1ParamTag.doEndTag();
108 iterator2ParamTag.doStartTag();
109 iterator2ParamTag.doEndTag();
110 iterator3ParamTag.doStartTag();
111 iterator3ParamTag.doEndTag();
112 tag.doEndTag();
113
114 Iterator mergedIterator = (Iterator) stack.findValue("#myMergedIterator");
115
116 assertNotNull(mergedIterator);
117 assertTrue(mergedIterator.hasNext());
118 assertEquals(mergedIterator.next(), "1");
119 assertTrue(mergedIterator.hasNext());
120 assertEquals(mergedIterator.next(), "a");
121 assertTrue(mergedIterator.hasNext());
122 assertEquals(mergedIterator.next(), "A");
123 assertTrue(mergedIterator.hasNext());
124 assertEquals(mergedIterator.next(), "2");
125 assertTrue(mergedIterator.hasNext());
126 assertEquals(mergedIterator.next(), "b");
127 assertTrue(mergedIterator.hasNext());
128 assertEquals(mergedIterator.next(), "B");
129 assertTrue(mergedIterator.hasNext());
130 assertEquals(mergedIterator.next(), "3");
131 assertTrue(mergedIterator.hasNext());
132 assertEquals(mergedIterator.next(), "c");
133 assertTrue(mergedIterator.hasNext());
134 assertEquals(mergedIterator.next(), "C");
135 assertFalse(mergedIterator.hasNext());
136 }
137
138
139
140
141 public Action getAction() {
142 return new ActionSupport() {
143 public List getMyList1() {
144 List l = new ArrayList();
145 l.add("1");
146 l.add("2");
147 l.add("3");
148 return l;
149 }
150
151 public List getMyList2() {
152 List l = new ArrayList();
153 l.add("a");
154 l.add("b");
155 l.add("c");
156 return l;
157 }
158
159 public List getMyList3() {
160 List l = new ArrayList();
161 l.add("A");
162 l.add("B");
163 l.add("C");
164 return l;
165 }
166
167 public String[] getMyArr1() {
168 return new String[] { "1", "2", "3" };
169 }
170
171 public String[] getMyArr2() {
172 return new String[] { "a", "b", "c" };
173 }
174
175 public String[] getMyArr3() {
176 return new String[] {"A", "B", "C"};
177 }
178 };
179 }
180 }