• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2011 The Guava Authors
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5  * in compliance with the License. You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software distributed under the License
10  * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11  * or implied. See the License for the specific language governing permissions and limitations under
12  * the License.
13  */
14 
15 package com.google.common.cache;
16 
17 import static java.util.Arrays.asList;
18 
19 import com.google.common.collect.ImmutableList;
20 import com.google.common.collect.ImmutableMap;
21 
22 import junit.framework.TestCase;
23 
24 /**
25  * @author Charles Fry
26  */
27 public class CacheManualTest extends TestCase {
28 
testGetIfPresent()29   public void testGetIfPresent() {
30     Cache<Object, Object> cache = CacheBuilder.newBuilder().build();
31     CacheStats stats = cache.stats();
32     assertEquals(0, stats.missCount());
33     assertEquals(0, stats.loadSuccessCount());
34     assertEquals(0, stats.loadExceptionCount());
35     assertEquals(0, stats.hitCount());
36 
37     Object one = new Object();
38     Object two = new Object();
39 
40     assertNull(cache.getIfPresent(one));
41     stats = cache.stats();
42     assertEquals(1, stats.missCount());
43     assertEquals(0, stats.loadSuccessCount());
44     assertEquals(0, stats.loadExceptionCount());
45     assertEquals(0, stats.hitCount());
46     assertNull(cache.asMap().get(one));
47     assertFalse(cache.asMap().containsKey(one));
48     assertFalse(cache.asMap().containsValue(two));
49 
50     assertNull(cache.getIfPresent(two));
51     stats = cache.stats();
52     assertEquals(2, stats.missCount());
53     assertEquals(0, stats.loadSuccessCount());
54     assertEquals(0, stats.loadExceptionCount());
55     assertEquals(0, stats.hitCount());
56     assertNull(cache.asMap().get(two));
57     assertFalse(cache.asMap().containsKey(two));
58     assertFalse(cache.asMap().containsValue(one));
59 
60     cache.put(one, two);
61 
62     assertSame(two, cache.getIfPresent(one));
63     stats = cache.stats();
64     assertEquals(2, stats.missCount());
65     assertEquals(0, stats.loadSuccessCount());
66     assertEquals(0, stats.loadExceptionCount());
67     assertEquals(1, stats.hitCount());
68     assertSame(two, cache.asMap().get(one));
69     assertTrue(cache.asMap().containsKey(one));
70     assertTrue(cache.asMap().containsValue(two));
71 
72     assertNull(cache.getIfPresent(two));
73     stats = cache.stats();
74     assertEquals(3, stats.missCount());
75     assertEquals(0, stats.loadSuccessCount());
76     assertEquals(0, stats.loadExceptionCount());
77     assertEquals(1, stats.hitCount());
78     assertNull(cache.asMap().get(two));
79     assertFalse(cache.asMap().containsKey(two));
80     assertFalse(cache.asMap().containsValue(one));
81 
82     cache.put(two, one);
83 
84     assertSame(two, cache.getIfPresent(one));
85     stats = cache.stats();
86     assertEquals(3, stats.missCount());
87     assertEquals(0, stats.loadSuccessCount());
88     assertEquals(0, stats.loadExceptionCount());
89     assertEquals(2, stats.hitCount());
90     assertSame(two, cache.asMap().get(one));
91     assertTrue(cache.asMap().containsKey(one));
92     assertTrue(cache.asMap().containsValue(two));
93 
94     assertSame(one, cache.getIfPresent(two));
95     stats = cache.stats();
96     assertEquals(3, stats.missCount());
97     assertEquals(0, stats.loadSuccessCount());
98     assertEquals(0, stats.loadExceptionCount());
99     assertEquals(3, stats.hitCount());
100     assertSame(one, cache.asMap().get(two));
101     assertTrue(cache.asMap().containsKey(two));
102     assertTrue(cache.asMap().containsValue(one));
103   }
104 
testGetAllPresent()105   public void testGetAllPresent() {
106     Cache<Integer, Integer> cache = CacheBuilder.newBuilder().build();
107     CacheStats stats = cache.stats();
108     assertEquals(0, stats.missCount());
109     assertEquals(0, stats.loadSuccessCount());
110     assertEquals(0, stats.loadExceptionCount());
111     assertEquals(0, stats.hitCount());
112 
113     assertEquals(ImmutableMap.of(), cache.getAllPresent(ImmutableList.<Integer>of()));
114     stats = cache.stats();
115     assertEquals(0, stats.missCount());
116     assertEquals(0, stats.loadSuccessCount());
117     assertEquals(0, stats.loadExceptionCount());
118     assertEquals(0, stats.hitCount());
119 
120     assertEquals(ImmutableMap.of(), cache.getAllPresent(asList(1, 2, 3)));
121     stats = cache.stats();
122     assertEquals(3, stats.missCount());
123     assertEquals(0, stats.loadSuccessCount());
124     assertEquals(0, stats.loadExceptionCount());
125     assertEquals(0, stats.hitCount());
126 
127     cache.put(2, 22);
128 
129     assertEquals(ImmutableMap.of(2, 22), cache.getAllPresent(asList(1, 2, 3)));
130     stats = cache.stats();
131     assertEquals(5, stats.missCount());
132     assertEquals(0, stats.loadSuccessCount());
133     assertEquals(0, stats.loadExceptionCount());
134     assertEquals(1, stats.hitCount());
135 
136     cache.put(3, 33);
137 
138     assertEquals(ImmutableMap.of(2, 22, 3, 33), cache.getAllPresent(asList(1, 2, 3)));
139     stats = cache.stats();
140     assertEquals(6, stats.missCount());
141     assertEquals(0, stats.loadSuccessCount());
142     assertEquals(0, stats.loadExceptionCount());
143     assertEquals(3, stats.hitCount());
144 
145     cache.put(1, 11);
146 
147     assertEquals(ImmutableMap.of(1, 11, 2, 22, 3, 33), cache.getAllPresent(asList(1, 2, 3)));
148     stats = cache.stats();
149     assertEquals(6, stats.missCount());
150     assertEquals(0, stats.loadSuccessCount());
151     assertEquals(0, stats.loadExceptionCount());
152     assertEquals(6, stats.hitCount());
153   }
154 
155 }
156