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
24 import org.apache.commons.jcs.auxiliary.remote.behavior.IRemoteCacheAttributes;
25 import org.apache.commons.jcs.engine.CacheElementSerialized;
26 import org.apache.commons.jcs.engine.ElementAttributes;
27 import org.apache.commons.jcs.engine.behavior.ICache;
28 import org.apache.commons.jcs.engine.behavior.ICacheElement;
29 import org.apache.commons.jcs.engine.behavior.ICacheElementSerialized;
30 import org.apache.commons.jcs.engine.behavior.ICompositeCacheManager;
31 import org.apache.commons.jcs.engine.behavior.IElementAttributes;
32 import org.apache.commons.jcs.engine.behavior.IElementSerializer;
33 import org.apache.commons.jcs.engine.control.MockCompositeCacheManager;
34 import org.apache.commons.jcs.utils.serialization.StandardSerializer;
35
36
37
38
39
40
41 public class RemoteCacheListenerUnitTest
42 extends TestCase
43 {
44
45
46
47
48
49
50
51 public void testUpdate_PutOnPut()
52 throws Exception
53 {
54
55 IRemoteCacheAttributes irca = new RemoteCacheAttributes();
56 irca.setRemoveUponRemotePut( false );
57 ICompositeCacheManager cacheMgr = new MockCompositeCacheManager();
58 RemoteCacheListener<String, String> listener = new RemoteCacheListener<String, String>( irca, cacheMgr, new StandardSerializer() );
59
60 String cacheName = "testName";
61 String key = "key";
62 String value = "value fdsadf dsafdsa fdsaf dsafdsaf dsafdsaf dsaf dsaf dsaf dsafa dsaf dsaf dsafdsaf";
63 IElementAttributes attr = new ElementAttributes();
64 attr.setMaxLife(34);
65
66 IElementSerializer elementSerializer = new StandardSerializer();
67
68 ICacheElementSerialized<String, String> element =
69 new CacheElementSerialized<String, String>( cacheName, key, elementSerializer
70 .serialize( value ), attr );
71
72
73 listener.handlePut( element );
74
75
76 ICache<String, String> cache = cacheMgr.getCache( cacheName );
77 ICacheElement<String, String> after = cache.get( key );
78
79 assertNotNull( "Should have a deserialized object.", after );
80 assertEquals( "Values should be the same.", value, after.getVal() );
81 assertEquals( "Attributes should be the same.", attr.getMaxLife(), after
82 .getElementAttributes().getMaxLife() );
83 assertEquals( "Keys should be the same.", key, after.getKey() );
84 assertEquals( "Cache name should be the same.", cacheName, after.getCacheName() );
85 }
86
87
88
89
90
91
92
93
94 public void testUpdate_RemoveOnPut()
95 throws Exception
96 {
97
98 IRemoteCacheAttributes irca = new RemoteCacheAttributes();
99 irca.setRemoveUponRemotePut( true );
100 ICompositeCacheManager cacheMgr = new MockCompositeCacheManager();
101 RemoteCacheListener<String, String> listener = new RemoteCacheListener<String, String>( irca, cacheMgr, new StandardSerializer() );
102
103 String cacheName = "testName";
104 String key = "key";
105 String value = "value fdsadf dsafdsa fdsaf dsafdsaf dsafdsaf dsaf dsaf dsaf dsafa dsaf dsaf dsafdsaf";
106 IElementAttributes attr = new ElementAttributes();
107 attr.setMaxLife(34);
108
109 IElementSerializer elementSerializer = new StandardSerializer();
110
111 ICacheElementSerialized<String, String> element =
112 new CacheElementSerialized<String, String>( cacheName, key, elementSerializer
113 .serialize( value ), attr );
114
115
116 listener.handlePut( element );
117
118
119 ICache<String, String> cache = cacheMgr.getCache( cacheName );
120 ICacheElement<String, String> after = cache.get( key );
121
122 assertNull( "Should not have a deserialized object since remove on put is true.", after );
123 }
124 }