1 /*
2 * Licensed to the Apache Software Foundation (ASF) under one
3 * or more contributor license agreements. See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership. The ASF licenses this file
6 * to you under the Apache License, Version 2.0 (the
7 * "License"); you may not use this file except in compliance
8 * with the License. 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,
13 * software distributed under the License is distributed on an
14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 * KIND, either express or implied. See the License for the
16 * specific language governing permissions and limitations
17 * under the License.
18 */
19 package javax.faces.component;
20
21 import javax.faces.context.FacesContext;
22 import javax.faces.render.Renderer;
23
24 import org.apache.myfaces.Assert;
25 import org.apache.myfaces.TestRunner;
26 import org.apache.shale.test.base.AbstractJsfTestCase;
27 import org.easymock.classextension.EasyMock;
28 import org.easymock.classextension.IMocksControl;
29
30 /**
31 * @author Mathias Broekelmann (latest modification by $Author: lu4242 $)
32 * @version $Revision: 823343 $ $Date: 2009-10-08 16:59:45 -0500 (Thu, 08 Oct 2009) $
33 */
34 public class UIDataTest extends AbstractJsfTestCase
35 {
36 public UIDataTest(String name)
37 {
38 super(name);
39 }
40
41 private IMocksControl _mocksControl;
42 private UIData _testImpl;
43
44 protected void setUp() throws Exception
45 {
46 super.setUp();
47 _mocksControl = EasyMock.createControl();
48 _testImpl = new UIData();
49 }
50
51 /**
52 * Test method for
53 * {@link javax.faces.component.UIData#setValueExpression(java.lang.String, javax.el.ValueExpression)}.
54 */
55 public void testValueExpression()
56 {
57 assertSetValueExpressionException(IllegalArgumentException.class, "rowIndex");
58 assertSetValueExpressionException(NullPointerException.class, null);
59 }
60
61 private void assertSetValueExpressionException(Class<? extends Throwable> expected, final String name)
62 {
63 Assert.assertException(expected, new TestRunner()
64 {
65 public void run() throws Throwable
66 {
67 _testImpl.setValueExpression(name, null);
68 }
69 });
70 }
71
72 /**
73 * Test method for {@link javax.faces.component.UIData#getClientId(javax.faces.context.FacesContext)}.
74 */
75 public void testGetClientId()
76 {
77 _testImpl.setId("xxx");
78 Renderer renderer = _mocksControl.createMock(Renderer.class);
79 renderKit.addRenderer(UIData.COMPONENT_FAMILY, UIData.COMPONENT_TYPE, renderer );
80 assertEquals("xxx", _testImpl.getClientId(facesContext));
81 _testImpl.setRowIndex(99);
82 assertEquals("xxx:99", _testImpl.getClientId(facesContext));
83 }
84
85 /**
86 * Test method for
87 * {@link javax.faces.component.UIData#invokeOnComponent(javax.faces.context.FacesContext, java.lang.String, javax.faces.component.ContextCallback)}.
88 * Tests, if invokeOnComponent also checks the facets of the h:column children (MYFACES-2370)
89 */
90 public void testInvokeOnComponentFacesContextStringContextCallback()
91 {
92 /**
93 * Concrete class of ContextCallback needed to test invokeOnComponent.
94 * @author Jakob Korherr
95 */
96 final class MyContextCallback implements ContextCallback
97 {
98
99 private boolean invoked = false;
100
101 public void invokeContextCallback(FacesContext context,
102 UIComponent target)
103 {
104 this.invoked = true;
105 }
106
107 }
108
109 UIComponent facet = new UIOutput();
110 facet.setId("facet");
111 UIColumn column = new UIColumn();
112 column.setId("column");
113 column.getFacets().put("header", facet);
114 _testImpl.setId("uidata");
115 _testImpl.getChildren().add(column);
116
117 MyContextCallback callback = new MyContextCallback();
118 _testImpl.invokeOnComponent(facesContext, facet.getClientId(facesContext), callback);
119 // the callback should have been invoked
120 assertTrue(callback.invoked);
121 }
122
123 /**
124 * Test method for {@link javax.faces.component.UIData#broadcast(javax.faces.event.FacesEvent)}.
125 */
126 public void testBroadcastFacesEvent()
127 {
128 // TODO
129 }
130
131 /**
132 * Test method for {@link javax.faces.component.UIData#encodeBegin(javax.faces.context.FacesContext)}.
133 */
134 public void testEncodeBeginFacesContext()
135 {
136 // TODO
137 }
138
139 /**
140 * Test method for {@link javax.faces.component.UIData#encodeEnd(javax.faces.context.FacesContext)}.
141 */
142 public void testEncodeEndFacesContext()
143 {
144 // TODO
145 }
146
147 /**
148 * Test method for {@link javax.faces.component.UIData#queueEvent(javax.faces.event.FacesEvent)}.
149 */
150 public void testQueueEventFacesEvent()
151 {
152 // TODO
153 }
154
155 /**
156 * Test method for {@link javax.faces.component.UIData#processDecodes(javax.faces.context.FacesContext)}.
157 */
158 public void testProcessDecodesFacesContext()
159 {
160 // TODO
161 }
162
163 /**
164 * Test method for {@link javax.faces.component.UIData#processValidators(javax.faces.context.FacesContext)}.
165 */
166 public void testProcessValidatorsFacesContext()
167 {
168 // TODO
169 }
170
171 /**
172 * Test method for {@link javax.faces.component.UIData#processUpdates(javax.faces.context.FacesContext)}.
173 */
174 public void testProcessUpdatesFacesContext()
175 {
176 // TODO
177 }
178
179 /**
180 * Test method for {@link javax.faces.component.UIData#saveState(javax.faces.context.FacesContext)}.
181 */
182 public void testSaveState()
183 {
184 // TODO
185 }
186
187 /**
188 * Test method for
189 * {@link javax.faces.component.UIData#restoreState(javax.faces.context.FacesContext, java.lang.Object)}.
190 */
191 public void testRestoreState()
192 {
193 // TODO
194 }
195
196 /**
197 * Test method for {@link javax.faces.component.UIData#UIData()}.
198 */
199 public void testUIData()
200 {
201 // TODO
202 }
203
204 /**
205 * Test method for {@link javax.faces.component.UIData#setFooter(javax.faces.component.UIComponent)}.
206 */
207 public void testSetFooter()
208 {
209 // TODO
210 }
211
212 /**
213 * Test method for {@link javax.faces.component.UIData#getFooter()}.
214 */
215 public void testGetFooter()
216 {
217 // TODO
218 }
219
220 /**
221 * Test method for {@link javax.faces.component.UIData#setHeader(javax.faces.component.UIComponent)}.
222 */
223 public void testSetHeader()
224 {
225 // TODO
226 }
227
228 /**
229 * Test method for {@link javax.faces.component.UIData#getHeader()}.
230 */
231 public void testGetHeader()
232 {
233 // TODO
234 }
235
236 /**
237 * Test method for {@link javax.faces.component.UIData#isRowAvailable()}.
238 */
239 public void testIsRowAvailable()
240 {
241 // TODO
242 }
243
244 /**
245 * Test method for {@link javax.faces.component.UIData#getRowCount()}.
246 */
247 public void testGetRowCount()
248 {
249 // TODO
250 }
251
252 /**
253 * Test method for {@link javax.faces.component.UIData#getRowData()}.
254 */
255 public void testGetRowData()
256 {
257 // TODO
258 }
259
260 /**
261 * Test method for {@link javax.faces.component.UIData#getRowIndex()}.
262 */
263 public void testGetRowIndex()
264 {
265 // TODO
266 }
267
268 /**
269 * Test method for {@link javax.faces.component.UIData#setRowIndex(int)}.
270 */
271 public void testSetRowIndex()
272 {
273 // TODO
274 }
275
276 /**
277 * Test method for {@link javax.faces.component.UIData#getDataModel()}.
278 */
279 public void testGetDataModel()
280 {
281 // TODO
282 }
283
284 /**
285 * Test method for {@link javax.faces.component.UIData#setDataModel(javax.faces.model.DataModel)}.
286 */
287 public void testSetDataModel()
288 {
289 // TODO
290 }
291
292 /**
293 * Test method for {@link javax.faces.component.UIData#setValue(java.lang.Object)}.
294 */
295 public void testSetValue()
296 {
297 // TODO
298 }
299
300 /**
301 * Test method for {@link javax.faces.component.UIData#setRows(int)}.
302 */
303 public void testSetRows()
304 {
305 // TODO
306 }
307
308 /**
309 * Test method for {@link javax.faces.component.UIData#setFirst(int)}.
310 */
311 public void testSetFirst()
312 {
313 // TODO
314 }
315
316 /**
317 * Test method for {@link javax.faces.component.UIData#getValue()}.
318 */
319 public void testGetValue()
320 {
321 // TODO
322 }
323
324 /**
325 * Test method for {@link javax.faces.component.UIData#getVar()}.
326 */
327 public void testGetVar()
328 {
329 // TODO
330 }
331
332 /**
333 * Test method for {@link javax.faces.component.UIData#setVar(java.lang.String)}.
334 */
335 public void testSetVar()
336 {
337 // TODO
338 }
339
340 /**
341 * Test method for {@link javax.faces.component.UIData#getRows()}.
342 */
343 public void testGetRows()
344 {
345 // TODO
346 }
347
348 /**
349 * Test method for {@link javax.faces.component.UIData#getFirst()}.
350 */
351 public void testGetFirst()
352 {
353 // TODO
354 }
355
356 /**
357 * Test method for {@link javax.faces.component.UIData#getFamily()}.
358 */
359 public void testGetFamily()
360 {
361 // TODO
362 }
363
364 }