001: /*
002: * Copyright (c) 2002-2003 by OpenSymphony
003: * All rights reserved.
004: */
005: package com.opensymphony.webwork.views.jsp;
006:
007: import java.util.ArrayList;
008: import java.util.Iterator;
009: import java.util.List;
010:
011: import com.opensymphony.webwork.util.SubsetIteratorFilter.Decider;
012: import com.opensymphony.webwork.views.jsp.iterator.SubsetIteratorTag;
013: import com.opensymphony.xwork.Action;
014: import com.opensymphony.xwork.ActionSupport;
015:
016: /**
017: * Test case for SubsetIteratorTag.
018: *
019: * @author tmjee
020: * @version $Date: 2005-11-24 19:19:58 +0100 (Thu, 24 Nov 2005) $ $Id: SubsetIteratorTagTest.java 1435 2005-11-24 18:19:58Z tmjee $
021: */
022: public class SubsetIteratorTagTest extends AbstractTagTest {
023:
024: public void testBasic() throws Exception {
025: { // List as Source
026: SubsetIteratorTag tag = new SubsetIteratorTag();
027: tag.setPageContext(pageContext);
028: tag.setSource("myList");
029:
030: tag.doStartTag();
031: Iterator subsetIterator = (Iterator) stack.findValue("top");
032: tag.doEndTag();
033:
034: assertEquals(subsetIterator.next(), new Integer(1));
035: assertEquals(subsetIterator.next(), new Integer(2));
036: assertEquals(subsetIterator.next(), new Integer(3));
037: assertEquals(subsetIterator.next(), new Integer(4));
038: assertEquals(subsetIterator.next(), new Integer(5));
039: }
040:
041: { // Array as Source
042: SubsetIteratorTag tag = new SubsetIteratorTag();
043: tag.setPageContext(pageContext);
044: tag.setSource("myArray");
045:
046: tag.doStartTag();
047: Iterator subsetIterator = (Iterator) stack.findValue("top");
048: tag.doEndTag();
049:
050: assertEquals(subsetIterator.next(), new Integer(1));
051: assertEquals(subsetIterator.next(), new Integer(2));
052: assertEquals(subsetIterator.next(), new Integer(3));
053: assertEquals(subsetIterator.next(), new Integer(4));
054: assertEquals(subsetIterator.next(), new Integer(5));
055: }
056: }
057:
058: public void testWithStartAttribute() throws Exception {
059: { // List as source
060: SubsetIteratorTag tag = new SubsetIteratorTag();
061: tag.setPageContext(pageContext);
062: tag.setSource("myList");
063: tag.setStart("3");
064:
065: tag.doStartTag();
066: Iterator subsetIterator = (Iterator) stack.findValue("top");
067: tag.doEndTag();
068:
069: assertEquals(subsetIterator.next(), new Integer(4));
070: assertEquals(subsetIterator.next(), new Integer(5));
071: }
072:
073: { // Array as source
074: SubsetIteratorTag tag = new SubsetIteratorTag();
075: tag.setPageContext(pageContext);
076: tag.setSource("myArray");
077: tag.setStart("3");
078:
079: tag.doStartTag();
080: Iterator subsetIterator = (Iterator) stack.findValue("top");
081: tag.doEndTag();
082:
083: assertEquals(subsetIterator.next(), new Integer(4));
084: assertEquals(subsetIterator.next(), new Integer(5));
085: }
086: }
087:
088: public void testWithCountAttribute() throws Exception {
089: { // List as source
090: SubsetIteratorTag tag = new SubsetIteratorTag();
091: tag.setPageContext(pageContext);
092: tag.setSource("myList");
093: tag.setCount("3");
094:
095: tag.doStartTag();
096: Iterator subsetIterator = (Iterator) stack.findValue("top");
097: tag.doEndTag();
098:
099: assertEquals(subsetIterator.next(), new Integer(1));
100: assertEquals(subsetIterator.next(), new Integer(2));
101: assertEquals(subsetIterator.next(), new Integer(3));
102: }
103:
104: { // array as source
105: SubsetIteratorTag tag = new SubsetIteratorTag();
106: tag.setPageContext(pageContext);
107: tag.setSource("myArray");
108: tag.setCount("3");
109:
110: tag.doStartTag();
111: Iterator subsetIterator = (Iterator) stack.findValue("top");
112: tag.doEndTag();
113:
114: assertEquals(subsetIterator.next(), new Integer(1));
115: assertEquals(subsetIterator.next(), new Integer(2));
116: assertEquals(subsetIterator.next(), new Integer(3));
117: }
118: }
119:
120: public void testWIthStartAndCountAttribute() throws Exception {
121: { // List as source
122: SubsetIteratorTag tag = new SubsetIteratorTag();
123: tag.setPageContext(pageContext);
124: tag.setSource("myList");
125: tag.setStart("3");
126: tag.setCount("3");
127:
128: tag.doStartTag();
129: Iterator subsetIterator = (Iterator) stack.findValue("top");
130: tag.doEndTag();
131:
132: assertEquals(subsetIterator.next(), new Integer("4"));
133: assertEquals(subsetIterator.next(), new Integer("5"));
134: }
135:
136: { // Array as source
137: SubsetIteratorTag tag = new SubsetIteratorTag();
138: tag.setPageContext(pageContext);
139: tag.setSource("myArray");
140: tag.setStart("3");
141: tag.setCount("3");
142:
143: tag.doStartTag();
144: Iterator subsetIterator = (Iterator) stack.findValue("top");
145: tag.doEndTag();
146:
147: assertEquals(subsetIterator.next(), new Integer("4"));
148: assertEquals(subsetIterator.next(), new Integer("5"));
149: }
150: }
151:
152: public void testWithId() throws Exception {
153: { // List as Source
154: SubsetIteratorTag tag = new SubsetIteratorTag();
155: tag.setPageContext(pageContext);
156: tag.setSource("myList");
157: tag.setId("myPageContextId1");
158:
159: tag.doStartTag();
160: Iterator subsetIterator1 = (Iterator) stack
161: .findValue("top");
162: tag.doEndTag();
163:
164: Iterator subsetIterator2 = (Iterator) pageContext
165: .getAttribute("myPageContextId1");
166:
167: assertNotNull(subsetIterator1);
168: assertNotNull(subsetIterator2);
169: assertEquals(subsetIterator1, subsetIterator2);
170: assertEquals(subsetIterator2.next(), new Integer(1));
171: assertEquals(subsetIterator2.next(), new Integer(2));
172: assertEquals(subsetIterator2.next(), new Integer(3));
173: assertEquals(subsetIterator2.next(), new Integer(4));
174: assertEquals(subsetIterator2.next(), new Integer(5));
175: }
176:
177: { // Array as source
178: SubsetIteratorTag tag = new SubsetIteratorTag();
179: tag.setPageContext(pageContext);
180: tag.setSource("myArray");
181: tag.setId("myPageContextId2");
182:
183: tag.doStartTag();
184: Iterator subsetIterator1 = (Iterator) stack
185: .findValue("top");
186: tag.doEndTag();
187:
188: Iterator subsetIterator2 = (Iterator) pageContext
189: .getAttribute("myPageContextId2");
190:
191: assertNotNull(subsetIterator1);
192: assertNotNull(subsetIterator2);
193: assertEquals(subsetIterator1, subsetIterator2);
194: assertEquals(subsetIterator2.next(), new Integer(1));
195: assertEquals(subsetIterator2.next(), new Integer(2));
196: assertEquals(subsetIterator2.next(), new Integer(3));
197: assertEquals(subsetIterator2.next(), new Integer(4));
198: assertEquals(subsetIterator2.next(), new Integer(5));
199: }
200: }
201:
202: public void testWithDecider() throws Exception {
203: { // List as source
204: SubsetIteratorTag tag = new SubsetIteratorTag();
205: tag.setPageContext(pageContext);
206: tag.setSource("myList");
207: tag.setDecider("myDecider");
208:
209: tag.doStartTag();
210: Iterator subsetIterator = (Iterator) stack.findValue("top");
211: tag.doEndTag();
212:
213: assertEquals(subsetIterator.next(), new Integer(2));
214: assertEquals(subsetIterator.next(), new Integer(4));
215: }
216:
217: { // Array As source
218: SubsetIteratorTag tag = new SubsetIteratorTag();
219: tag.setPageContext(pageContext);
220: tag.setSource("myList");
221: tag.setDecider("myDecider");
222:
223: tag.doStartTag();
224: Iterator subsetIterator = (Iterator) stack.findValue("top");
225: tag.doEndTag();
226:
227: assertEquals(subsetIterator.next(), new Integer(2));
228: assertEquals(subsetIterator.next(), new Integer(4));
229: }
230: }
231:
232: public Action getAction() {
233: return new ActionSupport() {
234: public List getMyList() {
235: List l = new ArrayList();
236: l.add(new Integer(1));
237: l.add(new Integer(2));
238: l.add(new Integer(3));
239: l.add(new Integer(4));
240: l.add(new Integer(5));
241: return l;
242: }
243:
244: public Integer[] getMyArray() {
245: Integer[] integers = new Integer[5];
246: integers[0] = new Integer(1);
247: integers[1] = new Integer(2);
248: integers[2] = new Integer(3);
249: integers[3] = new Integer(4);
250: integers[4] = new Integer(5);
251: return integers;
252: }
253:
254: public Decider getMyDecider() {
255: return new Decider() {
256: public boolean decide(Object element)
257: throws Exception {
258: int integer = ((Integer) element).intValue();
259: return (((integer % 2) == 0) ? true : false);
260: }
261: };
262: }
263: };
264: }
265: }
|