1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package ch.elca.el4j.tests.core.contextpassing;
19
20 import static org.junit.Assert.assertEquals;
21 import static org.junit.Assert.assertFalse;
22
23 import java.util.HashMap;
24 import java.util.Map;
25
26 import org.junit.Test;
27
28 import ch.elca.el4j.core.contextpassing.DefaultImplicitContextPassingRegistry;
29
30
31
32
33
34
35
36
37
38
39
40
41
42 public class ContextPassingTest {
43
44
45
46
47
48 @Test
49 public void testTwoRegisteredPassersOnBothSides() {
50 ImplicitContextPasserA passerClientA = new ImplicitContextPasserA();
51 ImplicitContextPasserB passerClientB = new ImplicitContextPasserB();
52 DefaultImplicitContextPassingRegistry registryClient
53 = new DefaultImplicitContextPassingRegistry();
54 passerClientA.setImplicitContextPassingRegistry(registryClient);
55 passerClientB.setImplicitContextPassingRegistry(registryClient);
56
57 ImplicitContextPasserA passerServerA = new ImplicitContextPasserA();
58 ImplicitContextPasserB passerServerB = new ImplicitContextPasserB();
59 DefaultImplicitContextPassingRegistry registryServer
60 = new DefaultImplicitContextPassingRegistry();
61 passerServerA.setImplicitContextPassingRegistry(registryServer);
62 passerServerB.setImplicitContextPassingRegistry(registryServer);
63
64 Map contextClient = registryClient.getAssembledImplicitContext();
65 Map contextServer = new HashMap(contextClient);
66 registryServer.pushAssembledImplicitContext(contextServer);
67
68 String sentDataA = passerClientA.getTestData();
69 String receivedDataA = passerServerA.getReceivedData();
70 assertEquals("Sent and received data of passer A is not the same.",
71 sentDataA, receivedDataA);
72
73 double sentDataB = passerClientB.getTestData();
74 double receivedDataB = passerServerB.getReceivedData();
75 assertEquals("Sent and received data of passer B is not the same.",
76 sentDataB, receivedDataB, 0);
77 }
78
79
80
81
82
83 @Test
84 public void testTwoRegisteredPassersOnClientSideAndOneOnServerSide() {
85 ImplicitContextPasserA passerClientA = new ImplicitContextPasserA();
86 ImplicitContextPasserB passerClientB = new ImplicitContextPasserB();
87 DefaultImplicitContextPassingRegistry registryClient
88 = new DefaultImplicitContextPassingRegistry();
89 passerClientA.setImplicitContextPassingRegistry(registryClient);
90 passerClientB.setImplicitContextPassingRegistry(registryClient);
91
92 ImplicitContextPasserA passerServerA = new ImplicitContextPasserA();
93 ImplicitContextPasserB passerServerB = new ImplicitContextPasserB();
94 DefaultImplicitContextPassingRegistry registryServer
95 = new DefaultImplicitContextPassingRegistry();
96
97 passerServerB.setImplicitContextPassingRegistry(registryServer);
98
99 Map contextClient = registryClient.getAssembledImplicitContext();
100 Map contextServer = new HashMap(contextClient);
101 registryServer.pushAssembledImplicitContext(contextServer);
102
103 String sentDataA = passerClientA.getTestData();
104 String receivedDataA = passerServerA.getReceivedData();
105 assertFalse("Sent and received data of passer A is the same!",
106 sentDataA.equals(receivedDataA));
107
108 double sentDataB = passerClientB.getTestData();
109 double receivedDataB = passerServerB.getReceivedData();
110 assertEquals("Sent and received data of passer B is not the same.",
111 sentDataB, receivedDataB, 0);
112 }
113
114
115
116
117
118 @Test
119 public void testOneRegisteredPasserOnClientSideAndTwoOnServerSide() {
120 ImplicitContextPasserA passerClientA = new ImplicitContextPasserA();
121 ImplicitContextPasserB passerClientB = new ImplicitContextPasserB();
122 DefaultImplicitContextPassingRegistry registryClient
123 = new DefaultImplicitContextPassingRegistry();
124 passerClientA.setImplicitContextPassingRegistry(registryClient);
125
126
127 ImplicitContextPasserA passerServerA = new ImplicitContextPasserA();
128 ImplicitContextPasserB passerServerB = new ImplicitContextPasserB();
129 DefaultImplicitContextPassingRegistry registryServer
130 = new DefaultImplicitContextPassingRegistry();
131 passerServerA.setImplicitContextPassingRegistry(registryServer);
132 passerServerB.setImplicitContextPassingRegistry(registryServer);
133
134 Map contextClient = registryClient.getAssembledImplicitContext();
135 Map contextServer = new HashMap(contextClient);
136 registryServer.pushAssembledImplicitContext(contextServer);
137
138 String sentDataA = passerClientA.getTestData();
139 String receivedDataA = passerServerA.getReceivedData();
140 assertEquals("Sent and received data of passer A is not the same.",
141 sentDataA, receivedDataA);
142
143 double sentDataB = passerClientB.getTestData();
144 double receivedDataB = passerServerB.getReceivedData();
145 assertFalse("Sent and received data of passer B is the same!",
146 sentDataB == receivedDataB);
147 }
148
149
150
151
152
153 @Test
154 public void testDefaultImplicitContextPassingRegistryStandalone() {
155 ImplicitContextPasserA passerClientA = new ImplicitContextPasserA();
156 ImplicitContextPasserB passerClientB = new ImplicitContextPasserB();
157 DefaultImplicitContextPassingRegistry registryClient
158 = new DefaultImplicitContextPassingRegistry();
159
160
161
162 ImplicitContextPasserA passerServerA = new ImplicitContextPasserA();
163 ImplicitContextPasserB passerServerB = new ImplicitContextPasserB();
164 DefaultImplicitContextPassingRegistry registryServer
165 = new DefaultImplicitContextPassingRegistry();
166
167
168
169 Map contextClient = registryClient.getAssembledImplicitContext();
170 Map contextServer = new HashMap(contextClient);
171 registryServer.pushAssembledImplicitContext(contextServer);
172
173 String sentDataA = passerClientA.getTestData();
174 String receivedDataA = passerServerA.getReceivedData();
175 assertFalse("Sent and received data of passer A is the same!",
176 sentDataA.equals(receivedDataA));
177
178 double sentDataB = passerClientB.getTestData();
179 double receivedDataB = passerServerB.getReceivedData();
180 assertFalse("Sent and received data of passer B is the same!",
181 sentDataB == receivedDataB);
182 }
183 }