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 public class ContextPassingTest {
38
39
40
41
42
43 @Test
44 public void testTwoRegisteredPassersOnBothSides() {
45 ImplicitContextPasserA passerClientA = new ImplicitContextPasserA();
46 ImplicitContextPasserB passerClientB = new ImplicitContextPasserB();
47 DefaultImplicitContextPassingRegistry registryClient
48 = new DefaultImplicitContextPassingRegistry();
49 passerClientA.setImplicitContextPassingRegistry(registryClient);
50 passerClientB.setImplicitContextPassingRegistry(registryClient);
51
52 ImplicitContextPasserA passerServerA = new ImplicitContextPasserA();
53 ImplicitContextPasserB passerServerB = new ImplicitContextPasserB();
54 DefaultImplicitContextPassingRegistry registryServer
55 = new DefaultImplicitContextPassingRegistry();
56 passerServerA.setImplicitContextPassingRegistry(registryServer);
57 passerServerB.setImplicitContextPassingRegistry(registryServer);
58
59 Map contextClient = registryClient.getAssembledImplicitContext();
60 Map contextServer = new HashMap(contextClient);
61 registryServer.pushAssembledImplicitContext(contextServer);
62
63 String sentDataA = passerClientA.getTestData();
64 String receivedDataA = passerServerA.getReceivedData();
65 assertEquals("Sent and received data of passer A is not the same.",
66 sentDataA, receivedDataA);
67
68 double sentDataB = passerClientB.getTestData();
69 double receivedDataB = passerServerB.getReceivedData();
70 assertEquals("Sent and received data of passer B is not the same.",
71 sentDataB, receivedDataB, 0);
72 }
73
74
75
76
77
78 @Test
79 public void testTwoRegisteredPassersOnClientSideAndOneOnServerSide() {
80 ImplicitContextPasserA passerClientA = new ImplicitContextPasserA();
81 ImplicitContextPasserB passerClientB = new ImplicitContextPasserB();
82 DefaultImplicitContextPassingRegistry registryClient
83 = new DefaultImplicitContextPassingRegistry();
84 passerClientA.setImplicitContextPassingRegistry(registryClient);
85 passerClientB.setImplicitContextPassingRegistry(registryClient);
86
87 ImplicitContextPasserA passerServerA = new ImplicitContextPasserA();
88 ImplicitContextPasserB passerServerB = new ImplicitContextPasserB();
89 DefaultImplicitContextPassingRegistry registryServer
90 = new DefaultImplicitContextPassingRegistry();
91
92 passerServerB.setImplicitContextPassingRegistry(registryServer);
93
94 Map contextClient = registryClient.getAssembledImplicitContext();
95 Map contextServer = new HashMap(contextClient);
96 registryServer.pushAssembledImplicitContext(contextServer);
97
98 String sentDataA = passerClientA.getTestData();
99 String receivedDataA = passerServerA.getReceivedData();
100 assertFalse("Sent and received data of passer A is the same!",
101 sentDataA.equals(receivedDataA));
102
103 double sentDataB = passerClientB.getTestData();
104 double receivedDataB = passerServerB.getReceivedData();
105 assertEquals("Sent and received data of passer B is not the same.",
106 sentDataB, receivedDataB, 0);
107 }
108
109
110
111
112
113 @Test
114 public void testOneRegisteredPasserOnClientSideAndTwoOnServerSide() {
115 ImplicitContextPasserA passerClientA = new ImplicitContextPasserA();
116 ImplicitContextPasserB passerClientB = new ImplicitContextPasserB();
117 DefaultImplicitContextPassingRegistry registryClient
118 = new DefaultImplicitContextPassingRegistry();
119 passerClientA.setImplicitContextPassingRegistry(registryClient);
120
121
122 ImplicitContextPasserA passerServerA = new ImplicitContextPasserA();
123 ImplicitContextPasserB passerServerB = new ImplicitContextPasserB();
124 DefaultImplicitContextPassingRegistry registryServer
125 = new DefaultImplicitContextPassingRegistry();
126 passerServerA.setImplicitContextPassingRegistry(registryServer);
127 passerServerB.setImplicitContextPassingRegistry(registryServer);
128
129 Map contextClient = registryClient.getAssembledImplicitContext();
130 Map contextServer = new HashMap(contextClient);
131 registryServer.pushAssembledImplicitContext(contextServer);
132
133 String sentDataA = passerClientA.getTestData();
134 String receivedDataA = passerServerA.getReceivedData();
135 assertEquals("Sent and received data of passer A is not the same.",
136 sentDataA, receivedDataA);
137
138 double sentDataB = passerClientB.getTestData();
139 double receivedDataB = passerServerB.getReceivedData();
140 assertFalse("Sent and received data of passer B is the same!",
141 sentDataB == receivedDataB);
142 }
143
144
145
146
147
148 @Test
149 public void testDefaultImplicitContextPassingRegistryStandalone() {
150 ImplicitContextPasserA passerClientA = new ImplicitContextPasserA();
151 ImplicitContextPasserB passerClientB = new ImplicitContextPasserB();
152 DefaultImplicitContextPassingRegistry registryClient
153 = new DefaultImplicitContextPassingRegistry();
154
155
156
157 ImplicitContextPasserA passerServerA = new ImplicitContextPasserA();
158 ImplicitContextPasserB passerServerB = new ImplicitContextPasserB();
159 DefaultImplicitContextPassingRegistry registryServer
160 = new DefaultImplicitContextPassingRegistry();
161
162
163
164 Map contextClient = registryClient.getAssembledImplicitContext();
165 Map contextServer = new HashMap(contextClient);
166 registryServer.pushAssembledImplicitContext(contextServer);
167
168 String sentDataA = passerClientA.getTestData();
169 String receivedDataA = passerServerA.getReceivedData();
170 assertFalse("Sent and received data of passer A is the same!",
171 sentDataA.equals(receivedDataA));
172
173 double sentDataB = passerClientB.getTestData();
174 double receivedDataB = passerServerB.getReceivedData();
175 assertFalse("Sent and received data of passer B is the same!",
176 sentDataB == receivedDataB);
177 }
178 }