1 package org.apache.commons.jcs3.auxiliary.remote.http.server;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.Serializable;
23 import java.util.Collections;
24 import java.util.Set;
25
26 import junit.framework.TestCase;
27
28 import org.apache.commons.jcs3.auxiliary.remote.MockRemoteCacheService;
29 import org.apache.commons.jcs3.auxiliary.remote.util.RemoteCacheRequestFactory;
30 import org.apache.commons.jcs3.auxiliary.remote.value.RemoteCacheRequest;
31 import org.apache.commons.jcs3.auxiliary.remote.value.RemoteCacheResponse;
32 import org.apache.commons.jcs3.engine.CacheElement;
33
34
35 public class RemoteHttpCacheServletUnitTest
36 extends TestCase
37 {
38 private RemoteHttpCacheServlet servlet;
39 private MockRemoteCacheService<Serializable, Serializable> remoteHttpCacheService;
40
41
42
43
44 @Override
45 protected void setUp() throws Exception
46 {
47 super.setUp();
48 servlet = new RemoteHttpCacheServlet();
49 servlet.init(null);
50
51 remoteHttpCacheService = new MockRemoteCacheService<>();
52 servlet.setRemoteCacheService( remoteHttpCacheService );
53 }
54
55
56
57
58 @Override
59 protected void tearDown() throws Exception
60 {
61 servlet.destroy();
62 super.tearDown();
63 }
64
65
66 public void testProcessRequest_null()
67 {
68 final RemoteCacheRequest<Serializable, Serializable> request = null;
69
70
71 final RemoteCacheResponse<Object> result = servlet.processRequest( request );
72
73
74 assertNotNull( "Should have a result.", result );
75 assertTrue( "Should have 'The request is null' in the errorMessage", result.getErrorMessage().indexOf( "The request is null" ) != -1 );
76 assertTrue( "Should have 'The request is null' in the toString", result.toString().indexOf( "The request is null" ) != -1 );
77 }
78
79
80 public void testProcessRequest_Get()
81 {
82 final String cacheName = "test";
83 final Serializable key = "key";
84 final long requesterId = 2;
85 final RemoteCacheRequest<Serializable, Serializable> request = RemoteCacheRequestFactory.createGetRequest( cacheName, key, requesterId );
86
87
88 final RemoteCacheResponse<Object> result = servlet.processRequest( request );
89
90
91 assertNotNull( "Should have a result.", result );
92 assertEquals( "Wrong key.", key, remoteHttpCacheService.lastGetKey );
93 }
94
95
96 public void testProcessRequest_GetMatching()
97 {
98 final String cacheName = "test";
99 final String pattern = "pattern";
100 final long requesterId = 2;
101 final RemoteCacheRequest<Serializable, Serializable> request = RemoteCacheRequestFactory.createGetMatchingRequest( cacheName, pattern,
102 requesterId );
103
104
105 final RemoteCacheResponse<Object> result = servlet.processRequest( request );
106
107
108 assertNotNull( "Should have a result.", result );
109 assertEquals( "Wrong pattern.", pattern, remoteHttpCacheService.lastGetMatchingPattern );
110 }
111
112
113 public void testProcessRequest_GetMultiple()
114 {
115 final String cacheName = "test";
116 final Set<Serializable> keys = Collections.emptySet();
117 final long requesterId = 2;
118 final RemoteCacheRequest<Serializable, Serializable> request = RemoteCacheRequestFactory.createGetMultipleRequest( cacheName, keys,
119 requesterId );
120
121
122 final RemoteCacheResponse<Object> result = servlet.processRequest( request );
123
124
125 assertNotNull( "Should have a result.", result );
126 assertEquals( "Wrong keys.", keys, remoteHttpCacheService.lastGetMultipleKeys );
127
128 }
129
130
131 public void testProcessRequest_Update()
132 {
133 final String cacheName = "test";
134 final String key = "key";
135 final long requesterId = 2;
136 final CacheElement<Serializable, Serializable> element = new CacheElement<>( cacheName, key, null );
137 final RemoteCacheRequest<Serializable, Serializable> request = RemoteCacheRequestFactory.createUpdateRequest( element, requesterId );
138
139
140 final RemoteCacheResponse<Object> result = servlet.processRequest( request );
141
142
143 assertNotNull( "Should have a result.", result );
144 assertEquals( "Wrong object.", element, remoteHttpCacheService.lastUpdate );
145 }
146
147
148 public void testProcessRequest_Remove()
149 {
150 final String cacheName = "test";
151 final Serializable key = "key";
152 final long requesterId = 2;
153 final RemoteCacheRequest<Serializable, Serializable> request = RemoteCacheRequestFactory.createRemoveRequest( cacheName, key, requesterId );
154
155
156 final RemoteCacheResponse<Object> result = servlet.processRequest( request );
157
158
159 assertNotNull( "Should have a result.", result );
160 assertEquals( "Wrong key.", key, remoteHttpCacheService.lastRemoveKey );
161 }
162
163
164 public void testProcessRequest_RemoveAll()
165 {
166 final String cacheName = "testRemoveALl";
167 final long requesterId = 2;
168 final RemoteCacheRequest<Serializable, Serializable> request = RemoteCacheRequestFactory.createRemoveAllRequest( cacheName, requesterId );
169
170
171 final RemoteCacheResponse<Object> result = servlet.processRequest( request );
172
173
174 assertNotNull( "Should have a result.", result );
175 assertEquals( "Wrong cacheName.", cacheName, remoteHttpCacheService.lastRemoveAllCacheName );
176 }
177 }