1 package org.apache.commons.jcs.auxiliary.lateral.socket.tcp;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import junit.framework.TestCase;
23 import org.apache.commons.jcs.auxiliary.lateral.LateralCache;
24 import org.apache.commons.jcs.auxiliary.lateral.LateralCacheAttributes;
25 import org.apache.commons.jcs.auxiliary.lateral.LateralCacheNoWait;
26 import org.apache.commons.jcs.auxiliary.lateral.LateralCacheNoWaitFacade;
27 import org.apache.commons.jcs.auxiliary.lateral.behavior.ILateralCacheAttributes;
28 import org.apache.commons.jcs.auxiliary.lateral.socket.tcp.behavior.ITCPLateralCacheAttributes;
29 import org.apache.commons.jcs.engine.behavior.IElementSerializer;
30 import org.apache.commons.jcs.engine.control.CompositeCacheManager;
31 import org.apache.commons.jcs.engine.logging.MockCacheEventLogger;
32 import org.apache.commons.jcs.utils.discovery.DiscoveredService;
33 import org.apache.commons.jcs.utils.serialization.StandardSerializer;
34
35 import java.util.ArrayList;
36
37
38 public class LateralTCPDiscoveryListenerUnitTest
39 extends TestCase
40 {
41
42 private LateralTCPDiscoveryListener listener;
43
44
45 private LateralTCPCacheFactory factory;
46
47
48 private CompositeCacheManager cacheMgr;
49
50
51 protected MockCacheEventLogger cacheEventLogger;
52
53
54 protected IElementSerializer elementSerializer;
55
56
57 @Override
58 protected void setUp() throws Exception
59 {
60 factory = new LateralTCPCacheFactory();
61 factory.initialize();
62
63 cacheMgr = CompositeCacheManager.getInstance();
64 cacheEventLogger = new MockCacheEventLogger();
65 elementSerializer = new StandardSerializer();
66
67 listener = new LateralTCPDiscoveryListener( factory.getName(), cacheMgr );
68 }
69
70
71
72
73 public void testAddNoWaitFacade_NotInList()
74 {
75
76 String cacheName = "testAddNoWaitFacade_NotInList";
77
78 @SuppressWarnings("unchecked")
79 LateralCacheNoWait<String, String>[] noWaits = new LateralCacheNoWait[0];
80 ILateralCacheAttributes cattr = new LateralCacheAttributes();
81 cattr.setCacheName( cacheName );
82
83 LateralCacheNoWaitFacade<String, String> facade = new LateralCacheNoWaitFacade<String, String>( null, noWaits, cattr );
84
85
86 listener.addNoWaitFacade( cacheName, facade );
87
88
89 assertTrue( "Should have the facade.", listener.containsNoWaitFacade( cacheName ) );
90 }
91
92
93
94
95 public void testAddNoWait_FacadeInList()
96 {
97
98 String cacheName = "testAddNoWaitFacade_FacadeInList";
99
100 @SuppressWarnings("unchecked")
101 LateralCacheNoWait<String, String>[] noWaits = new LateralCacheNoWait[0];
102 ILateralCacheAttributes cattr = new LateralCacheAttributes();
103 cattr.setCacheName( cacheName );
104
105 LateralCacheNoWaitFacade<String, String> facade = new LateralCacheNoWaitFacade<String, String>( null, noWaits, cattr );
106 listener.addNoWaitFacade( cacheName, facade );
107
108 LateralCache<String, String> cache = new LateralCache<String, String>( cattr );
109 LateralCacheNoWait<String, String> noWait = new LateralCacheNoWait<String, String>( cache );
110
111
112 boolean result = listener.addNoWait( noWait );
113
114
115 assertTrue( "Should have added the no wait.", result );
116 }
117
118
119
120
121 public void testAddNoWait_FacadeNotInList()
122 {
123
124 String cacheName = "testAddNoWaitFacade_FacadeInList";
125 ILateralCacheAttributes cattr = new LateralCacheAttributes();
126 cattr.setCacheName( cacheName );
127
128 LateralCache<String, String> cache = new LateralCache<String, String>( cattr );
129 LateralCacheNoWait<String, String> noWait = new LateralCacheNoWait<String, String>( cache );
130
131
132 boolean result = listener.addNoWait( noWait );
133
134
135 assertFalse( "Should not have added the no wait.", result );
136 }
137
138
139
140
141 public void testRemoveNoWait_FacadeNotInList()
142 {
143
144 String cacheName = "testRemoveNoWaitFacade_FacadeNotInList";
145 ILateralCacheAttributes cattr = new LateralCacheAttributes();
146 cattr.setCacheName( cacheName );
147
148 LateralCache<String, String> cache = new LateralCache<String, String>( cattr );
149 LateralCacheNoWait<String, String> noWait = new LateralCacheNoWait<String, String>( cache );
150
151
152 boolean result = listener.removeNoWait( noWait );
153
154
155 assertFalse( "Should not have removed the no wait.", result );
156 }
157
158
159
160
161 public void testRemoveNoWait_FacadeInList_NoWaitNot()
162 {
163
164 String cacheName = "testAddNoWaitFacade_FacadeInList";
165
166 @SuppressWarnings("unchecked")
167 LateralCacheNoWait<String, String>[] noWaits = new LateralCacheNoWait[0];
168 ILateralCacheAttributes cattr = new LateralCacheAttributes();
169 cattr.setCacheName( cacheName );
170
171 LateralCacheNoWaitFacade<String, String> facade = new LateralCacheNoWaitFacade<String, String>( null, noWaits, cattr );
172 listener.addNoWaitFacade( cacheName, facade );
173
174 LateralCache<String, String> cache = new LateralCache<String, String>( cattr );
175 LateralCacheNoWait<String, String> noWait = new LateralCacheNoWait<String, String>( cache );
176
177
178 boolean result = listener.removeNoWait( noWait );
179
180
181 assertFalse( "Should not have removed the no wait.", result );
182 }
183
184
185
186
187 public void testRemoveNoWait_FacadeInList_NoWaitIs()
188 {
189
190 String cacheName = "testRemoveNoWaitFacade_FacadeInListNoWaitIs";
191
192 @SuppressWarnings("unchecked")
193 LateralCacheNoWait<String, String>[] noWaits = new LateralCacheNoWait[0];
194 ILateralCacheAttributes cattr = new LateralCacheAttributes();
195 cattr.setCacheName( cacheName );
196
197 LateralCacheNoWaitFacade<String, String> facade = new LateralCacheNoWaitFacade<String, String>( null, noWaits, cattr );
198 listener.addNoWaitFacade( cacheName, facade );
199
200 LateralCache<String, String> cache = new LateralCache<String, String>( cattr );
201 LateralCacheNoWait<String, String> noWait = new LateralCacheNoWait<String, String>( cache );
202 listener.addNoWait( noWait );
203
204
205 boolean result = listener.removeNoWait( noWait );
206
207
208 assertTrue( "Should have removed the no wait.", result );
209 }
210
211
212
213
214 public void testAddDiscoveredService_FacadeInList_NoWaitNot()
215 {
216
217 String cacheName = "testAddDiscoveredService_FacadeInList_NoWaitNot";
218
219 ArrayList<String> cacheNames = new ArrayList<String>();
220 cacheNames.add( cacheName );
221
222 DiscoveredService service = new DiscoveredService();
223 service.setCacheNames( cacheNames );
224 service.setServiceAddress( "localhost" );
225 service.setServicePort( 9999 );
226
227
228
229 ITCPLateralCacheAttributes lca = new TCPLateralCacheAttributes();
230 lca.setTransmissionType( LateralCacheAttributes.Type.TCP );
231 lca.setTcpServer( service.getServiceAddress() + ":" + service.getServicePort() );
232 lca.setCacheName(cacheName);
233 LateralCacheNoWait<String, String> noWait = factory.createCacheNoWait(lca, cacheEventLogger, elementSerializer);
234
235 cacheMgr.addAuxiliaryCache(factory.getName(), cacheName, noWait);
236
237 @SuppressWarnings("unchecked")
238 LateralCacheNoWait<String, String>[] noWaits = new LateralCacheNoWait[0];
239 ILateralCacheAttributes cattr = new LateralCacheAttributes();
240 cattr.setCacheName( cacheName );
241 LateralCacheNoWaitFacade<String, String> facade = new LateralCacheNoWaitFacade<String, String>( null, noWaits, cattr );
242 listener.addNoWaitFacade( cacheName, facade );
243
244
245 listener.addDiscoveredService( service );
246
247
248 assertTrue( "Should have no wait.", listener.containsNoWait( cacheName, noWait ) );
249 }
250
251
252
253
254 public void testRemoveDiscoveredService_FacadeInList_NoWaitIs()
255 {
256
257 String cacheName = "testRemoveDiscoveredService_FacadeInList_NoWaitIs";
258
259 ArrayList<String> cacheNames = new ArrayList<String>();
260 cacheNames.add( cacheName );
261
262 DiscoveredService service = new DiscoveredService();
263 service.setCacheNames( cacheNames );
264 service.setServiceAddress( "localhost" );
265 service.setServicePort( 9999 );
266
267
268
269 ITCPLateralCacheAttributes lca = new TCPLateralCacheAttributes();
270 lca.setTransmissionType( LateralCacheAttributes.Type.TCP );
271 lca.setTcpServer( service.getServiceAddress() + ":" + service.getServicePort() );
272 lca.setCacheName(cacheName);
273 LateralCacheNoWait<String, String> noWait = factory.createCacheNoWait(lca, cacheEventLogger, elementSerializer);
274
275 cacheMgr.addAuxiliaryCache(factory.getName(), cacheName, noWait);
276
277 @SuppressWarnings("unchecked")
278 LateralCacheNoWait<String, String>[] noWaits = new LateralCacheNoWait[0];
279 ILateralCacheAttributes cattr = new LateralCacheAttributes();
280 cattr.setCacheName( cacheName );
281 LateralCacheNoWaitFacade<String, String> facade = new LateralCacheNoWaitFacade<String, String>( null, noWaits, cattr );
282 listener.addNoWaitFacade( cacheName, facade );
283 listener.addDiscoveredService( service );
284
285
286 listener.removeDiscoveredService( service );
287
288
289 assertFalse( "Should not have no wait.", listener.containsNoWait( cacheName, noWait ) );
290 }
291 }