1 package org.apache.myfaces.custom.savestate;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 import java.util.LinkedList;
22
23 import javax.faces.el.ValueBinding;
24
25 import junit.framework.Test;
26 import junit.framework.TestSuite;
27
28 import org.apache.myfaces.test.AbstractTomahawkViewControllerTestCase;
29
30
31
32
33
34 public class UISaveStateTest extends AbstractTomahawkViewControllerTestCase{
35
36 private UISaveState saveState;
37 private SaveStateTestBean saveStateTestBean;
38
39 public UISaveStateTest(String name) {
40 super(name);
41 }
42
43 public static Test suite() {
44 return new TestSuite(UISaveStateTest.class);
45 }
46
47 public void setUp() throws Exception{
48 super.setUp();
49 saveState = new UISaveState();
50 saveStateTestBean = new SaveStateTestBean();
51 facesContext.getExternalContext().getRequestMap().put("testBean", saveStateTestBean);
52 }
53
54 public void tearDown() throws Exception{
55 saveState = null;
56 saveStateTestBean = null;
57 super.tearDown();
58 }
59
60 public void testWorksWithLinkedList() {
61 ValueBinding valueBinding = facesContext.getApplication().createValueBinding("#{testBean.linkedList}");
62 saveState.setValueBinding("value", valueBinding);
63
64 LinkedList linkedList = (LinkedList) valueBinding.getValue(facesContext);
65
66 try {
67 Object state = saveState.saveState(facesContext);
68 Object values[] = (Object[])state;
69 assertEquals(values[2], linkedList);
70
71 saveState.restoreState(facesContext, state);
72
73 }catch(Exception exception) {
74 fail();
75 }
76 }
77
78 public void testWorksWithStateHolder() {
79 ValueBinding valueBinding = facesContext.getApplication().createValueBinding("#{testBean}");
80 saveState.setValueBinding("value", valueBinding);
81
82 SaveStateTestBean testBean = (SaveStateTestBean) valueBinding.getValue(facesContext);
83
84 try {
85 Object state = saveState.saveState(facesContext);
86 Object values[] = (Object[])state;
87 assertNotSame(values[2], testBean);
88
89 saveState.restoreState(facesContext, state);
90 }catch(Exception exception) {
91 fail();
92 }
93 }
94
95 }