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