1 package org.apache.commons.jcs.auxiliary.remote;
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.engine.CacheElement;
24 import org.apache.commons.jcs.engine.ZombieCacheServiceNonLocal;
25 import org.apache.commons.jcs.engine.behavior.ICacheElement;
26
27
28
29
30 public class ZombieRemoteCacheServiceUnitTest
31 extends TestCase
32 {
33
34
35
36
37
38 public void testUpdateThenWalk()
39 throws Exception
40 {
41
42 MockRemoteCacheService<String, String> service = new MockRemoteCacheService<String, String>();
43
44 ZombieCacheServiceNonLocal<String, String> zombie = new ZombieCacheServiceNonLocal<String, String>( 10 );
45
46 String cacheName = "testUpdate";
47
48
49 ICacheElement<String, String> element = new CacheElement<String, String>( cacheName, "key", "value" );
50 zombie.update( element, 123l );
51 zombie.propagateEvents( service );
52
53
54 assertEquals( "Updated element is not as expected.", element, service.lastUpdate );
55 }
56
57
58
59
60
61
62 public void testUpdateThenWalk_zeroSize()
63 throws Exception
64 {
65
66 MockRemoteCacheService<String, String> service = new MockRemoteCacheService<String, String>();
67
68 ZombieCacheServiceNonLocal<String, String> zombie = new ZombieCacheServiceNonLocal<String, String>( 0 );
69
70 String cacheName = "testUpdate";
71
72
73 ICacheElement<String, String> element = new CacheElement<String, String>( cacheName, "key", "value" );
74 zombie.update( element, 123l );
75 zombie.propagateEvents( service );
76
77
78 assertNull( "Nothing should have been put to the service.", service.lastUpdate );
79 }
80
81
82
83
84
85
86 public void testRemoveThenWalk()
87 throws Exception
88 {
89
90 MockRemoteCacheService<String, String> service = new MockRemoteCacheService<String, String>();
91
92 ZombieCacheServiceNonLocal<String, String> zombie = new ZombieCacheServiceNonLocal<String, String>( 10 );
93
94 String cacheName = "testRemoveThenWalk";
95 String key = "myKey";
96
97
98 zombie.remove( cacheName, key, 123l );
99 zombie.propagateEvents( service );
100
101
102 assertEquals( "Updated element is not as expected.", key, service.lastRemoveKey );
103 }
104
105
106
107
108
109
110 public void testRemoveAllThenWalk()
111 throws Exception
112 {
113
114 MockRemoteCacheService<String, String> service = new MockRemoteCacheService<String, String>();
115
116 ZombieCacheServiceNonLocal<String, String> zombie = new ZombieCacheServiceNonLocal<String, String>( 10 );
117
118 String cacheName = "testRemoveThenWalk";
119
120
121 zombie.removeAll( cacheName, 123l );
122 zombie.propagateEvents( service );
123
124
125 assertEquals( "Updated element is not as expected.", cacheName, service.lastRemoveAllCacheName);
126 }
127 }