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 try (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
55 @Test
56 void isActive() throws ResourceIOException {
57
58 final CacheConfig cacheConfig = getCacheConfig();
59 final ManagedHttpCacheStorage cacheStorage = new ManagedHttpCacheStorage(cacheConfig);
60 final String key = "foo";
61 final HttpCacheEntry value = HttpTestUtils.makeCacheEntry();
62 cacheStorage.putEntry(key, value);
63 assertTrue(cacheStorage.isActive());
64 cacheStorage.close();
65 assertFalse(cacheStorage.isActive());
66 }
67
68 @Test
69 void cacheDisableThrowsIllegalStateException() {
70 final CacheConfig cacheConfig = getCacheConfig();
71 final ManagedHttpCacheStorage cacheStorage = new ManagedHttpCacheStorage(cacheConfig);
72 final String key = "foo";
73 final HttpCacheEntry value = HttpTestUtils.makeCacheEntry();
74 cacheStorage.close();
75 assertFalse(cacheStorage.isActive());
76 assertThrows(IllegalStateException.class, () -> cacheStorage.putEntry(key, value));
77 }
78
79 private CacheConfig getCacheConfig() {
80 return CacheConfig.custom()
81 .setSharedCache(true)
82 .setMaxObjectSize(262144)
83 .build();
84 }
85 }