001: /*
002: * $Id: AppendIteratorTagTest.java 471756 2006-11-06 15:01:43Z husted $
003: *
004: * Licensed to the Apache Software Foundation (ASF) under one
005: * or more contributor license agreements. See the NOTICE file
006: * distributed with this work for additional information
007: * regarding copyright ownership. The ASF licenses this file
008: * to you under the Apache License, Version 2.0 (the
009: * "License"); you may not use this file except in compliance
010: * with the License. You may obtain a copy of the License at
011: *
012: * http://www.apache.org/licenses/LICENSE-2.0
013: *
014: * Unless required by applicable law or agreed to in writing,
015: * software distributed under the License is distributed on an
016: * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
017: * KIND, either express or implied. See the License for the
018: * specific language governing permissions and limitations
019: * under the License.
020: */
021: package org.apache.struts2.views.jsp;
022:
023: import java.util.ArrayList;
024: import java.util.Iterator;
025: import java.util.List;
026:
027: import org.apache.struts2.views.jsp.iterator.AppendIteratorTag;
028:
029: import com.opensymphony.xwork2.Action;
030: import com.opensymphony.xwork2.ActionSupport;
031:
032: /**
033: * Test case for AppendIteratorTag.
034: */
035: public class AppendIteratorTagTest extends AbstractTagTest {
036:
037: public void testAppendingIteratorUsingArrayAsSource()
038: throws Exception {
039: AppendIteratorTag tag = new AppendIteratorTag();
040: tag.setPageContext(pageContext);
041: tag.setId("myAppendedIterator");
042:
043: ParamTag iterator1ParamTag = new ParamTag();
044: iterator1ParamTag.setPageContext(pageContext);
045: iterator1ParamTag.setValue("%{myArr1}");
046:
047: ParamTag iterator2ParamTag = new ParamTag();
048: iterator2ParamTag.setPageContext(pageContext);
049: iterator2ParamTag.setValue("%{myArr2}");
050:
051: ParamTag iterator3ParamTag = new ParamTag();
052: iterator3ParamTag.setPageContext(pageContext);
053: iterator3ParamTag.setValue("%{myArr3}");
054:
055: tag.doStartTag();
056: iterator1ParamTag.doStartTag();
057: iterator1ParamTag.doEndTag();
058: iterator2ParamTag.doStartTag();
059: iterator2ParamTag.doEndTag();
060: iterator3ParamTag.doStartTag();
061: iterator3ParamTag.doEndTag();
062: tag.doEndTag();
063:
064: Iterator appendedIterator = (Iterator) stack
065: .findValue("#myAppendedIterator");
066:
067: assertNotNull(appendedIterator);
068: assertTrue(appendedIterator.hasNext());
069: assertEquals(appendedIterator.next(), "1");
070: assertTrue(appendedIterator.hasNext());
071: assertEquals(appendedIterator.next(), "2");
072: assertTrue(appendedIterator.hasNext());
073: assertEquals(appendedIterator.next(), "3");
074: assertTrue(appendedIterator.hasNext());
075: assertEquals(appendedIterator.next(), "a");
076: assertTrue(appendedIterator.hasNext());
077: assertEquals(appendedIterator.next(), "b");
078: assertTrue(appendedIterator.hasNext());
079: assertEquals(appendedIterator.next(), "c");
080: assertTrue(appendedIterator.hasNext());
081: assertEquals(appendedIterator.next(), "A");
082: assertTrue(appendedIterator.hasNext());
083: assertEquals(appendedIterator.next(), "B");
084: assertTrue(appendedIterator.hasNext());
085: assertEquals(appendedIterator.next(), "C");
086: assertFalse(appendedIterator.hasNext());
087: }
088:
089: public void testAppendingIteratorsUsingListAsSource()
090: throws Exception {
091: AppendIteratorTag tag = new AppendIteratorTag();
092: tag.setPageContext(pageContext);
093: tag.setId("myAppendedIterator");
094:
095: ParamTag iterator1ParamTag = new ParamTag();
096: iterator1ParamTag.setPageContext(pageContext);
097: iterator1ParamTag.setValue("%{myList1}");
098:
099: ParamTag iterator2ParamTag = new ParamTag();
100: iterator2ParamTag.setPageContext(pageContext);
101: iterator2ParamTag.setValue("%{myList2}");
102:
103: ParamTag iterator3ParamTag = new ParamTag();
104: iterator3ParamTag.setPageContext(pageContext);
105: iterator3ParamTag.setValue("%{myList3}");
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
117: .findValue("#myAppendedIterator");
118:
119: assertNotNull(appendedIterator);
120: assertTrue(appendedIterator.hasNext());
121: assertEquals(appendedIterator.next(), "1");
122: assertTrue(appendedIterator.hasNext());
123: assertEquals(appendedIterator.next(), "2");
124: assertTrue(appendedIterator.hasNext());
125: assertEquals(appendedIterator.next(), "3");
126: assertTrue(appendedIterator.hasNext());
127: assertEquals(appendedIterator.next(), "a");
128: assertTrue(appendedIterator.hasNext());
129: assertEquals(appendedIterator.next(), "b");
130: assertTrue(appendedIterator.hasNext());
131: assertEquals(appendedIterator.next(), "c");
132: assertTrue(appendedIterator.hasNext());
133: assertEquals(appendedIterator.next(), "A");
134: assertTrue(appendedIterator.hasNext());
135: assertEquals(appendedIterator.next(), "B");
136: assertTrue(appendedIterator.hasNext());
137: assertEquals(appendedIterator.next(), "C");
138: assertFalse(appendedIterator.hasNext());
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(0);
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: }
|