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.util.SubsetIteratorFilter.Decider;
25 import org.apache.struts2.views.jsp.iterator.SubsetIteratorTag;
26
27 import com.opensymphony.xwork2.Action;
28 import com.opensymphony.xwork2.ActionSupport;
29
30
31 /***
32 * Test case for SubsetIteratorTag.
33 *
34 */
35 public class SubsetIteratorTagTest extends AbstractTagTest {
36
37
38 public void testBasic() throws Exception {
39 {
40 SubsetIteratorTag tag = new SubsetIteratorTag();
41 tag.setPageContext(pageContext);
42 tag.setSource("myList");
43
44 tag.doStartTag();
45 Iterator subsetIterator = (Iterator) stack.findValue("top");
46 tag.doEndTag();
47
48 assertEquals(subsetIterator.next(), new Integer(1));
49 assertEquals(subsetIterator.next(), new Integer(2));
50 assertEquals(subsetIterator.next(), new Integer(3));
51 assertEquals(subsetIterator.next(), new Integer(4));
52 assertEquals(subsetIterator.next(), new Integer(5));
53 }
54
55 {
56 SubsetIteratorTag tag = new SubsetIteratorTag();
57 tag.setPageContext(pageContext);
58 tag.setSource("myArray");
59
60 tag.doStartTag();
61 Iterator subsetIterator = (Iterator) stack.findValue("top");
62 tag.doEndTag();
63
64 assertEquals(subsetIterator.next(), new Integer(1));
65 assertEquals(subsetIterator.next(), new Integer(2));
66 assertEquals(subsetIterator.next(), new Integer(3));
67 assertEquals(subsetIterator.next(), new Integer(4));
68 assertEquals(subsetIterator.next(), new Integer(5));
69 }
70 }
71
72 public void testWithStartAttribute() throws Exception {
73 {
74 SubsetIteratorTag tag = new SubsetIteratorTag();
75 tag.setPageContext(pageContext);
76 tag.setSource("myList");
77 tag.setStart("3");
78
79 tag.doStartTag();
80 Iterator subsetIterator = (Iterator) stack.findValue("top");
81 tag.doEndTag();
82
83 assertEquals(subsetIterator.next(), new Integer(4));
84 assertEquals(subsetIterator.next(), new Integer(5));
85 }
86
87 {
88 SubsetIteratorTag tag = new SubsetIteratorTag();
89 tag.setPageContext(pageContext);
90 tag.setSource("myArray");
91 tag.setStart("3");
92
93 tag.doStartTag();
94 Iterator subsetIterator = (Iterator) stack.findValue("top");
95 tag.doEndTag();
96
97 assertEquals(subsetIterator.next(), new Integer(4));
98 assertEquals(subsetIterator.next(), new Integer(5));
99 }
100 }
101
102 public void testWithCountAttribute() throws Exception {
103 {
104 SubsetIteratorTag tag = new SubsetIteratorTag();
105 tag.setPageContext(pageContext);
106 tag.setSource("myList");
107 tag.setCount("3");
108
109 tag.doStartTag();
110 Iterator subsetIterator = (Iterator) stack.findValue("top");
111 tag.doEndTag();
112
113 assertEquals(subsetIterator.next(), new Integer(1));
114 assertEquals(subsetIterator.next(), new Integer(2));
115 assertEquals(subsetIterator.next(), new Integer(3));
116 }
117
118 {
119 SubsetIteratorTag tag = new SubsetIteratorTag();
120 tag.setPageContext(pageContext);
121 tag.setSource("myArray");
122 tag.setCount("3");
123
124 tag.doStartTag();
125 Iterator subsetIterator = (Iterator) stack.findValue("top");
126 tag.doEndTag();
127
128 assertEquals(subsetIterator.next(), new Integer(1));
129 assertEquals(subsetIterator.next(), new Integer(2));
130 assertEquals(subsetIterator.next(), new Integer(3));
131 }
132 }
133
134 public void testWIthStartAndCountAttribute() throws Exception {
135 {
136 SubsetIteratorTag tag = new SubsetIteratorTag();
137 tag.setPageContext(pageContext);
138 tag.setSource("myList");
139 tag.setStart("3");
140 tag.setCount("3");
141
142 tag.doStartTag();
143 Iterator subsetIterator = (Iterator) stack.findValue("top");
144 tag.doEndTag();
145
146 assertEquals(subsetIterator.next(), new Integer("4"));
147 assertEquals(subsetIterator.next(), new Integer("5"));
148 }
149
150 {
151 SubsetIteratorTag tag = new SubsetIteratorTag();
152 tag.setPageContext(pageContext);
153 tag.setSource("myArray");
154 tag.setStart("3");
155 tag.setCount("3");
156
157 tag.doStartTag();
158 Iterator subsetIterator = (Iterator) stack.findValue("top");
159 tag.doEndTag();
160
161 assertEquals(subsetIterator.next(), new Integer("4"));
162 assertEquals(subsetIterator.next(), new Integer("5"));
163 }
164 }
165
166 public void testWithId() throws Exception {
167 {
168 SubsetIteratorTag tag = new SubsetIteratorTag();
169 tag.setPageContext(pageContext);
170 tag.setSource("myList");
171 tag.setId("myPageContextId1");
172
173 tag.doStartTag();
174 Iterator subsetIterator1 = (Iterator) stack.findValue("top");
175 tag.doEndTag();
176
177 Iterator subsetIterator2 = (Iterator) pageContext.getAttribute("myPageContextId1");
178
179 assertNotNull(subsetIterator1);
180 assertNotNull(subsetIterator2);
181 assertEquals(subsetIterator1, subsetIterator2);
182 assertEquals(subsetIterator2.next(), new Integer(1));
183 assertEquals(subsetIterator2.next(), new Integer(2));
184 assertEquals(subsetIterator2.next(), new Integer(3));
185 assertEquals(subsetIterator2.next(), new Integer(4));
186 assertEquals(subsetIterator2.next(), new Integer(5));
187 }
188
189 {
190 SubsetIteratorTag tag = new SubsetIteratorTag();
191 tag.setPageContext(pageContext);
192 tag.setSource("myArray");
193 tag.setId("myPageContextId2");
194
195 tag.doStartTag();
196 Iterator subsetIterator1 = (Iterator) stack.findValue("top");
197 tag.doEndTag();
198
199 Iterator subsetIterator2 = (Iterator) pageContext.getAttribute("myPageContextId2");
200
201 assertNotNull(subsetIterator1);
202 assertNotNull(subsetIterator2);
203 assertEquals(subsetIterator1, subsetIterator2);
204 assertEquals(subsetIterator2.next(), new Integer(1));
205 assertEquals(subsetIterator2.next(), new Integer(2));
206 assertEquals(subsetIterator2.next(), new Integer(3));
207 assertEquals(subsetIterator2.next(), new Integer(4));
208 assertEquals(subsetIterator2.next(), new Integer(5));
209 }
210 }
211
212 public void testWithDecider() throws Exception {
213 {
214 SubsetIteratorTag tag = new SubsetIteratorTag();
215 tag.setPageContext(pageContext);
216 tag.setSource("myList");
217 tag.setDecider("myDecider");
218
219 tag.doStartTag();
220 Iterator subsetIterator = (Iterator) stack.findValue("top");
221 tag.doEndTag();
222
223 assertEquals(subsetIterator.next(), new Integer(2));
224 assertEquals(subsetIterator.next(), new Integer(4));
225 }
226
227 {
228 SubsetIteratorTag tag = new SubsetIteratorTag();
229 tag.setPageContext(pageContext);
230 tag.setSource("myList");
231 tag.setDecider("myDecider");
232
233 tag.doStartTag();
234 Iterator subsetIterator = (Iterator) stack.findValue("top");
235 tag.doEndTag();
236
237 assertEquals(subsetIterator.next(), new Integer(2));
238 assertEquals(subsetIterator.next(), new Integer(4));
239 }
240 }
241
242
243
244 public Action getAction() {
245 return new ActionSupport() {
246 public List getMyList() {
247 List l = new ArrayList();
248 l.add(new Integer(1));
249 l.add(new Integer(2));
250 l.add(new Integer(3));
251 l.add(new Integer(4));
252 l.add(new Integer(5));
253 return l;
254 }
255
256 public Integer[] getMyArray() {
257 Integer[] integers = new Integer[5];
258 integers[0] = new Integer(1);
259 integers[1] = new Integer(2);
260 integers[2] = new Integer(3);
261 integers[3] = new Integer(4);
262 integers[4] = new Integer(5);
263 return integers;
264 }
265
266 public Decider getMyDecider() {
267 return new Decider() {
268 public boolean decide(Object element) throws Exception {
269 int integer = ((Integer)element).intValue();
270 return (((integer % 2) == 0)?true:false);
271 }
272 };
273 }
274 };
275 }
276 }