1 package org.apache.commons.jcs3.auxiliary.disk.jdbc.hsql;
2
3 import java.util.HashSet;
4 import java.util.Map;
5 import java.util.Set;
6
7 import org.apache.commons.jcs3.JCS;
8 import org.apache.commons.jcs3.access.CacheAccess;
9 import org.apache.commons.jcs3.access.exception.CacheException;
10 import org.apache.commons.jcs3.engine.behavior.ICacheElement;
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 import junit.framework.TestCase;
32
33
34
35
36 public class HSQLDiskCacheUnitTest
37 extends TestCase
38 {
39
40
41
42 @Override
43 public void setUp()
44 {
45 JCS.setConfigFilename( "/TestHSQLDiskCache.ccf" );
46 }
47
48
49
50
51
52
53
54 public void testBasicPutRemove()
55 throws Exception
56 {
57 final int items = 20;
58
59 final String region = "testBasicPutRemove";
60
61 final CacheAccess<String, String> jcs = JCS.getInstance( region );
62
63
64 for ( int i = 0; i <= items; i++ )
65 {
66 jcs.put( i + ":key", region + " data " + i );
67 }
68
69
70 for ( int i = 0; i <= items; i++ )
71 {
72 final String value = jcs.get( i + ":key" );
73 assertEquals( "key = [" + i + ":key] value = [" + value + "]", region + " data " + i, value );
74 }
75
76
77 final Set<String> keys = new HashSet<>();
78 for ( int i = 0; i <= items; i++ )
79 {
80 keys.add( i + ":key" );
81 }
82
83 final Map<String, ICacheElement<String, String>> elements = jcs.getCacheElements( keys );
84 for ( int i = 0; i <= items; i++ )
85 {
86 final ICacheElement<String, String> element = elements.get( i + ":key" );
87 assertNotNull( "element " + i + ":key is missing", element );
88 assertEquals( "value " + i + ":key", region + " data " + i, element.getVal() );
89 }
90
91
92 for ( int i = 0; i <= items; i++ )
93 {
94 jcs.remove( i + ":key" );
95 }
96
97
98 for ( int i = 0; i <= items; i++ )
99 {
100 assertNull( "Removed key should be null: " + i + ":key", jcs.get( i + ":key" ) );
101 }
102 }
103
104
105
106
107
108
109
110 public void testRemoveAll()
111 throws CacheException, InterruptedException
112 {
113 final String region = "removeAllAllowed";
114 final CacheAccess<String, String> jcs = JCS.getInstance( region );
115
116 final int items = 20;
117
118
119 for ( int i = 0; i <= items; i++ )
120 {
121 jcs.put( i + ":key", region + " data " + i );
122 }
123
124
125
126
127
128
129
130
131
132
133 jcs.clear();
134
135 for ( int i = 0; i <= items; i++ )
136 {
137 final String value = jcs.get( i + ":key" );
138 assertNull( "value should be null key = [" + i + ":key] value = [" + value + "]", value );
139 }
140 }
141
142
143
144
145
146
147
148 public void testRemoveAllProhibition()
149 throws CacheException, InterruptedException
150 {
151 final String region = "noRemoveAll";
152 final CacheAccess<String, String> jcs = JCS.getInstance( region );
153
154 final int items = 20;
155
156
157 for ( int i = 0; i <= items; i++ )
158 {
159 jcs.put( i + ":key", region + " data " + i );
160 }
161
162
163
164
165 jcs.clear();
166
167 for ( int i = 0; i <= items; i++ )
168 {
169 final String value = jcs.get( i + ":key" );
170 assertEquals( "key = [" + i + ":key] value = [" + value + "]", region + " data " + i, value );
171 }
172 }
173 }