1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package javax.faces.application;
21
22 import javax.faces.context.ExternalContext;
23 import javax.faces.context.FacesContext;
24
25 import junit.framework.TestCase;
26
27 import org.apache.shale.test.mock.MockStateManager;
28 import org.easymock.MockControl;
29 import org.easymock.classextension.MockClassControl;
30
31 public class StateManagerTest extends TestCase {
32
33 public static void main(String[] args) {
34 junit.textui.TestRunner.run(StateManagerTest.class);
35 }
36
37 public StateManagerTest(String name) {
38 super(name);
39 }
40
41 protected void setUp() throws Exception {
42 super.setUp();
43 }
44
45 protected void tearDown() throws Exception {
46 super.tearDown();
47 }
48
49
50
51
52 public void testNullThrowsIsSavingStateInClient() {
53 MockStateManager subject = new MockStateManager();
54 try {
55 subject.isSavingStateInClient(null);
56 fail("should have thrown an exception");
57 } catch (RuntimeException e) {
58 }
59 }
60
61
62
63
64 public void testIsSavingStateInClientTrue() {
65 MockControl contextControl = MockClassControl.createControl(FacesContext.class);
66 MockControl externalControl = MockClassControl.createControl(ExternalContext.class);
67 FacesContext context = (FacesContext)contextControl.getMock();
68 ExternalContext external = (ExternalContext)externalControl.getMock();
69 context.getExternalContext();
70 contextControl.setReturnValue(external);
71 contextControl.replay();
72 external.getInitParameter(StateManager.STATE_SAVING_METHOD_PARAM_NAME);
73 externalControl.setReturnValue("client");
74 externalControl.replay();
75
76 MockStateManager subject = new MockStateManager();
77 assertEquals(true, subject.isSavingStateInClient(context));
78 }
79
80
81
82
83 public void testIsSavingStateInClientFalse() {
84 MockControl contextControl = MockClassControl.createControl(FacesContext.class);
85 MockControl externalControl = MockClassControl.createControl(ExternalContext.class);
86 FacesContext context = (FacesContext)contextControl.getMock();
87 ExternalContext external = (ExternalContext)externalControl.getMock();
88 context.getExternalContext();
89 contextControl.setReturnValue(external);
90 contextControl.replay();
91 external.getInitParameter(StateManager.STATE_SAVING_METHOD_PARAM_NAME);
92 externalControl.setReturnValue("server");
93 externalControl.replay();
94
95 MockStateManager subject = new MockStateManager();
96 assertEquals(false, subject.isSavingStateInClient(context));
97
98 assertEquals(false, subject.isSavingStateInClient(context));
99 }
100
101
102
103
104 public void testIsSavingStateInClientBogus() {
105 MockControl contextControl = MockClassControl.createControl(FacesContext.class);
106 MockControl externalControl = MockClassControl.createControl(ExternalContext.class);
107 FacesContext context = (FacesContext)contextControl.getMock();
108 ExternalContext external = (ExternalContext)externalControl.getMock();
109 context.getExternalContext();
110 contextControl.setReturnValue(external);
111 context.getExternalContext();
112 contextControl.setReturnValue(external);
113 contextControl.replay();
114 external.getInitParameter(StateManager.STATE_SAVING_METHOD_PARAM_NAME);
115 externalControl.setReturnValue("blorf");
116 external.log("Illegal state saving method 'blorf', default server state saving will be used");
117 externalControl.setVoidCallable();
118 externalControl.replay();
119
120 MockStateManager subject = new MockStateManager();
121 assertEquals(false, subject.isSavingStateInClient(context));
122 }
123
124
125
126
127 public void testIsSavingStateInClientNull() {
128 MockControl contextControl = MockClassControl.createControl(FacesContext.class);
129 MockControl externalControl = MockClassControl.createControl(ExternalContext.class);
130 FacesContext context = (FacesContext)contextControl.getMock();
131 ExternalContext external = (ExternalContext)externalControl.getMock();
132 context.getExternalContext();
133 contextControl.setReturnValue(external);
134 context.getExternalContext();
135 contextControl.setReturnValue(external);
136 contextControl.replay();
137 external.getInitParameter(StateManager.STATE_SAVING_METHOD_PARAM_NAME);
138 externalControl.setReturnValue(null);
139 external.log("No state saving method defined, assuming default server state saving");
140 externalControl.setVoidCallable();
141 externalControl.replay();
142
143 MockStateManager subject = new MockStateManager();
144 assertEquals(false, subject.isSavingStateInClient(context));
145 }
146
147 }