View Javadoc

1   /*
2    * $Id: AppendIteratorTagTest.java 439747 2006-09-03 09:22:46Z mrdon $
3    *
4    * Copyright 2006 The Apache Software Foundation.
5    *
6    * Licensed under the Apache License, Version 2.0 (the "License");
7    * you may not use this file except in compliance with the License.
8    * You may obtain a copy of the License at
9    *
10   *      http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing, software
13   * distributed under the License is distributed on an "AS IS" BASIS,
14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   * See the License for the specific language governing permissions and
16   * limitations under the License.
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.AppendIteratorTag;
25  
26  import com.opensymphony.xwork2.Action;
27  import com.opensymphony.xwork2.ActionSupport;
28  
29  /***
30   * Test case for AppendIteratorTag.
31   */
32  public class AppendIteratorTagTest extends AbstractTagTest {
33  
34  	
35  	public void testAppendingIteratorUsingArrayAsSource() throws Exception {
36  		AppendIteratorTag tag = new AppendIteratorTag();
37  		tag.setPageContext(pageContext);
38  		tag.setId("myAppendedIterator");
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 appendedIterator = (Iterator) stack.findValue("#myAppendedIterator");
63  		
64  		assertNotNull(appendedIterator);
65  		assertTrue(appendedIterator.hasNext());
66  		assertEquals(appendedIterator.next(), "1");
67  		assertTrue(appendedIterator.hasNext());
68  		assertEquals(appendedIterator.next(), "2");
69  		assertTrue(appendedIterator.hasNext());
70  		assertEquals(appendedIterator.next(), "3");
71  		assertTrue(appendedIterator.hasNext());
72  		assertEquals(appendedIterator.next(), "a");
73  		assertTrue(appendedIterator.hasNext());
74  		assertEquals(appendedIterator.next(), "b");
75  		assertTrue(appendedIterator.hasNext());
76  		assertEquals(appendedIterator.next(), "c");
77  		assertTrue(appendedIterator.hasNext());
78  		assertEquals(appendedIterator.next(), "A");
79  		assertTrue(appendedIterator.hasNext());
80  		assertEquals(appendedIterator.next(), "B");
81  		assertTrue(appendedIterator.hasNext());
82  		assertEquals(appendedIterator.next(), "C");
83  		assertFalse(appendedIterator.hasNext());
84  	}
85  	
86  	public void testAppendingIteratorsUsingListAsSource() throws Exception {
87  		AppendIteratorTag tag = new AppendIteratorTag();
88  		tag.setPageContext(pageContext);
89  		tag.setId("myAppendedIterator");
90  		
91  		ParamTag iterator1ParamTag = new ParamTag();
92  		iterator1ParamTag.setPageContext(pageContext);
93  		iterator1ParamTag.setValue("%{myList1}");
94  		
95  		ParamTag iterator2ParamTag = new ParamTag();
96  		iterator2ParamTag.setPageContext(pageContext);
97  		iterator2ParamTag.setValue("%{myList2}");
98  		
99  		ParamTag iterator3ParamTag = new ParamTag();
100 		iterator3ParamTag.setPageContext(pageContext);
101 		iterator3ParamTag.setValue("%{myList3}");
102 		
103 		
104 		tag.doStartTag();
105 		iterator1ParamTag.doStartTag();
106 		iterator1ParamTag.doEndTag();
107 		iterator2ParamTag.doStartTag();
108 		iterator2ParamTag.doEndTag();
109 		iterator3ParamTag.doStartTag();
110 		iterator3ParamTag.doEndTag();
111 		tag.doEndTag();
112 		
113 		Iterator appendedIterator = (Iterator) stack.findValue("#myAppendedIterator");
114 		
115 		assertNotNull(appendedIterator);
116 		assertTrue(appendedIterator.hasNext());
117 		assertEquals(appendedIterator.next(), "1");
118 		assertTrue(appendedIterator.hasNext());
119 		assertEquals(appendedIterator.next(), "2");
120 		assertTrue(appendedIterator.hasNext());
121 		assertEquals(appendedIterator.next(), "3");
122 		assertTrue(appendedIterator.hasNext());
123 		assertEquals(appendedIterator.next(), "a");
124 		assertTrue(appendedIterator.hasNext());
125 		assertEquals(appendedIterator.next(), "b");
126 		assertTrue(appendedIterator.hasNext());
127 		assertEquals(appendedIterator.next(), "c");
128 		assertTrue(appendedIterator.hasNext());
129 		assertEquals(appendedIterator.next(), "A");
130 		assertTrue(appendedIterator.hasNext());
131 		assertEquals(appendedIterator.next(), "B");
132 		assertTrue(appendedIterator.hasNext());
133 		assertEquals(appendedIterator.next(), "C");
134 		assertFalse(appendedIterator.hasNext());
135 	}
136 	
137 
138 	
139 	public Action getAction() {
140 		return new ActionSupport() {
141 			public List getMyList1() {
142 				List l = new ArrayList();
143 				l.add("1");
144 				l.add("2");
145 				l.add("3");
146 				return l;
147 			}
148 			
149 			public List getMyList2() {
150 				List l = new ArrayList();
151 				l.add("a");
152 				l.add("b");
153 				l.add("c");
154 				return l;
155 			}
156 			
157 			public List getMyList3() {
158 				List l = new ArrayList(0);
159 				l.add("A");
160 				l.add("B");
161 				l.add("C");
162 				return l;
163 			}
164 			
165 			public String[] getMyArr1() {
166 				return new String[] { "1", "2", "3" };
167 			}
168 			
169 			public String[] getMyArr2() {
170 				return new String[] { "a", "b", "c" };
171 			}
172 			
173 			public String[] getMyArr3() {
174 				return new String[] { "A", "B", "C" };
175 			}
176 		};
177 	}
178 }