View Javadoc

1   /*
2    * $Id: AppendIteratorTagTest.java 651946 2008-04-27 13:41:38Z apetrelli $
3    *
4    * Licensed to the Apache Software Foundation (ASF) under one
5    * or more contributor license agreements.  See the NOTICE file
6    * distributed with this work for additional information
7    * regarding copyright ownership.  The ASF licenses this file
8    * to you under the Apache License, Version 2.0 (the
9    * "License"); you may not use this file except in compliance
10   * with the License.  You may obtain a copy of the License at
11   *
12   *  http://www.apache.org/licenses/LICENSE-2.0
13   *
14   * Unless required by applicable law or agreed to in writing,
15   * software distributed under the License is distributed on an
16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17   * KIND, either express or implied.  See the License for the
18   * specific language governing permissions and limitations
19   * under the License.
20   */
21  
22  package org.apache.struts2.views.jsp;
23  
24  import java.util.ArrayList;
25  import java.util.Iterator;
26  import java.util.List;
27  
28  import org.apache.struts2.views.jsp.iterator.AppendIteratorTag;
29  
30  import com.opensymphony.xwork2.Action;
31  import com.opensymphony.xwork2.ActionSupport;
32  
33  /***
34   * Test case for AppendIteratorTag.
35   */
36  public class AppendIteratorTagTest extends AbstractTagTest {
37  
38  
39      public void testAppendingIteratorUsingArrayAsSource() throws Exception {
40          AppendIteratorTag tag = new AppendIteratorTag();
41          tag.setPageContext(pageContext);
42          tag.setId("myAppendedIterator");
43  
44          ParamTag iterator1ParamTag = new ParamTag();
45          iterator1ParamTag.setPageContext(pageContext);
46          iterator1ParamTag.setValue("%{myArr1}");
47  
48          ParamTag iterator2ParamTag = new ParamTag();
49          iterator2ParamTag.setPageContext(pageContext);
50          iterator2ParamTag.setValue("%{myArr2}");
51  
52          ParamTag iterator3ParamTag = new ParamTag();
53          iterator3ParamTag.setPageContext(pageContext);
54          iterator3ParamTag.setValue("%{myArr3}");
55  
56  
57          tag.doStartTag();
58          iterator1ParamTag.doStartTag();
59          iterator1ParamTag.doEndTag();
60          iterator2ParamTag.doStartTag();
61          iterator2ParamTag.doEndTag();
62          iterator3ParamTag.doStartTag();
63          iterator3ParamTag.doEndTag();
64          tag.doEndTag();
65  
66          Iterator appendedIterator = (Iterator) stack.findValue("#myAppendedIterator");
67  
68          assertNotNull(appendedIterator);
69          assertTrue(appendedIterator.hasNext());
70          assertEquals(appendedIterator.next(), "1");
71          assertTrue(appendedIterator.hasNext());
72          assertEquals(appendedIterator.next(), "2");
73          assertTrue(appendedIterator.hasNext());
74          assertEquals(appendedIterator.next(), "3");
75          assertTrue(appendedIterator.hasNext());
76          assertEquals(appendedIterator.next(), "a");
77          assertTrue(appendedIterator.hasNext());
78          assertEquals(appendedIterator.next(), "b");
79          assertTrue(appendedIterator.hasNext());
80          assertEquals(appendedIterator.next(), "c");
81          assertTrue(appendedIterator.hasNext());
82          assertEquals(appendedIterator.next(), "A");
83          assertTrue(appendedIterator.hasNext());
84          assertEquals(appendedIterator.next(), "B");
85          assertTrue(appendedIterator.hasNext());
86          assertEquals(appendedIterator.next(), "C");
87          assertFalse(appendedIterator.hasNext());
88      }
89  
90      public void testAppendingIteratorsUsingListAsSource() throws Exception {
91          AppendIteratorTag tag = new AppendIteratorTag();
92          tag.setPageContext(pageContext);
93          tag.setId("myAppendedIterator");
94  
95          ParamTag iterator1ParamTag = new ParamTag();
96          iterator1ParamTag.setPageContext(pageContext);
97          iterator1ParamTag.setValue("%{myList1}");
98  
99          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 
108         tag.doStartTag();
109         iterator1ParamTag.doStartTag();
110         iterator1ParamTag.doEndTag();
111         iterator2ParamTag.doStartTag();
112         iterator2ParamTag.doEndTag();
113         iterator3ParamTag.doStartTag();
114         iterator3ParamTag.doEndTag();
115         tag.doEndTag();
116 
117         Iterator appendedIterator = (Iterator) stack.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 
142 
143     public Action getAction() {
144         return new ActionSupport() {
145             public List getMyList1() {
146                 List l = new ArrayList();
147                 l.add("1");
148                 l.add("2");
149                 l.add("3");
150                 return l;
151             }
152 
153             public List getMyList2() {
154                 List l = new ArrayList();
155                 l.add("a");
156                 l.add("b");
157                 l.add("c");
158                 return l;
159             }
160 
161             public List getMyList3() {
162                 List l = new ArrayList(0);
163                 l.add("A");
164                 l.add("B");
165                 l.add("C");
166                 return l;
167             }
168 
169             public String[] getMyArr1() {
170                 return new String[] { "1", "2", "3" };
171             }
172 
173             public String[] getMyArr2() {
174                 return new String[] { "a", "b", "c" };
175             }
176 
177             public String[] getMyArr3() {
178                 return new String[] { "A", "B", "C" };
179             }
180         };
181     }
182 }