1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 package org.apache.http.impl.client.cache.ehcache;
28
29 import net.sf.ehcache.CacheManager;
30 import net.sf.ehcache.config.CacheConfiguration;
31 import net.sf.ehcache.config.Configuration;
32 import net.sf.ehcache.store.MemoryStoreEvictionPolicy;
33
34 import org.apache.http.client.cache.HttpCacheStorage;
35 import org.apache.http.impl.client.cache.CacheConfig;
36 import org.apache.http.impl.client.cache.CachingExec;
37 import org.apache.http.impl.client.cache.HeapResourceFactory;
38 import org.apache.http.impl.client.cache.TestProtocolRequirements;
39 import org.apache.http.impl.execchain.ClientExecChain;
40 import org.easymock.EasyMock;
41 import org.junit.After;
42 import org.junit.AfterClass;
43 import org.junit.Before;
44 import org.junit.BeforeClass;
45
46 public class TestEhcacheProtocolRequirements extends TestProtocolRequirements{
47
48 protected final String TEST_EHCACHE_NAME = "TestEhcacheProtocolRequirements-cache";
49
50 protected static CacheManager CACHE_MANAGER;
51
52 @BeforeClass
53 public static void setUpGlobal() {
54 final Configuration config = new Configuration();
55 config.addDefaultCache(
56 new CacheConfiguration("default", Integer.MAX_VALUE)
57 .memoryStoreEvictionPolicy(MemoryStoreEvictionPolicy.LFU)
58 .overflowToDisk(false));
59 CACHE_MANAGER = CacheManager.create(config);
60 }
61
62 @Override
63 @Before
64 public void setUp() {
65 super.setUp();
66 config = CacheConfig.custom().setMaxObjectSize(MAX_BYTES).build();
67
68 if (CACHE_MANAGER.cacheExists(TEST_EHCACHE_NAME)){
69 CACHE_MANAGER.removeCache(TEST_EHCACHE_NAME);
70 }
71 CACHE_MANAGER.addCache(TEST_EHCACHE_NAME);
72 final HttpCacheStorage storage = new EhcacheHttpCacheStorage(CACHE_MANAGER.getCache(TEST_EHCACHE_NAME));
73 mockBackend = EasyMock.createNiceMock(ClientExecChain.class);
74
75 impl = new CachingExec(mockBackend, new HeapResourceFactory(), storage, config);
76 }
77
78 @After
79 public void tearDown(){
80 CACHE_MANAGER.removeCache(TEST_EHCACHE_NAME);
81 }
82
83 @AfterClass
84 public static void tearDownGlobal(){
85 CACHE_MANAGER.shutdown();
86 }
87
88 }