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.hc.client5.http.cache;
28
29
30 import static org.junit.jupiter.api.Assertions.assertEquals;
31 import static org.junit.jupiter.api.Assertions.assertFalse;
32 import static org.junit.jupiter.api.Assertions.assertThrows;
33 import static org.junit.jupiter.api.Assertions.assertTrue;
34
35 import org.apache.hc.client5.http.impl.cache.CacheConfig;
36 import org.apache.hc.client5.http.impl.cache.HttpTestUtils;
37 import org.apache.hc.client5.http.impl.cache.ManagedHttpCacheStorage;
38 import org.apache.hc.core5.http.HttpStatus;
39 import org.junit.jupiter.api.Test;
40
41 class ManagedHttpCacheStorageTest {
42
43 @Test
44 void putEntry() throws ResourceIOException {
45
46 final CacheConfig cacheConfig = getCacheConfig();
47 final ManagedHttpCacheStorage cacheStorage = new ManagedHttpCacheStorage(cacheConfig);
48 final String key = "foo";
49 final HttpCacheEntry value = HttpTestUtils.makeCacheEntry();
50 cacheStorage.putEntry(key, value);
51 assertEquals(HttpStatus.SC_OK, cacheStorage.getEntry(key).getStatus());
52 }
53
54 @Test
55 void isActive() throws ResourceIOException {
56
57 final CacheConfig cacheConfig = getCacheConfig();
58 final ManagedHttpCacheStorage cacheStorage = new ManagedHttpCacheStorage(cacheConfig);
59 final String key = "foo";
60 final HttpCacheEntry value = HttpTestUtils.makeCacheEntry();
61 cacheStorage.putEntry(key, value);
62 assertTrue(cacheStorage.isActive());
63 cacheStorage.close();
64 assertFalse(cacheStorage.isActive());
65 }
66
67 @Test
68 void cacheDisableThrowsIllegalStateException() {
69 final CacheConfig cacheConfig = getCacheConfig();
70 final ManagedHttpCacheStorage cacheStorage = new ManagedHttpCacheStorage(cacheConfig);
71 final String key = "foo";
72 final HttpCacheEntry value = HttpTestUtils.makeCacheEntry();
73 cacheStorage.close();
74 assertFalse(cacheStorage.isActive());
75 assertThrows(IllegalStateException.class, () -> cacheStorage.putEntry(key, value));
76 }
77
78 private CacheConfig getCacheConfig() {
79 return CacheConfig.custom()
80 .setSharedCache(true)
81 .setMaxObjectSize(262144)
82 .build();
83 }
84 }