New cache system.
Caching itself is tested. Implemented into classes (untested).
This commit is contained in:
@@ -13,7 +13,7 @@ import org.junit.jupiter.api.TestInstance.Lifecycle;
|
||||
|
||||
@TestInstance(Lifecycle.PER_CLASS)
|
||||
public class CacheTest {
|
||||
Cache<Integer> integerCache;
|
||||
Cache<Integer, String> integerCache;
|
||||
|
||||
@BeforeAll
|
||||
public void setUp() {
|
||||
@@ -27,37 +27,35 @@ public class CacheTest {
|
||||
|
||||
@Test
|
||||
public void testBasicCaching() {
|
||||
CoordinateIdentifier coordsA = new CoordinateIdentifier(3, 0);
|
||||
CoordinateIdentifier coordsB = new CoordinateIdentifier(4, 0);
|
||||
String val = integerCache.getValue(0);
|
||||
assertTrue(val == null);
|
||||
val = "first";
|
||||
integerCache.setValue(0, val);
|
||||
assertTrue(integerCache.hasValue(0));
|
||||
assertSame(val, integerCache.getValue(0));
|
||||
|
||||
CacheValue<Integer> val = integerCache.retrieveCache(coordsA);
|
||||
assertTrue(val.isEmpty());
|
||||
val.setValue(0);
|
||||
assertFalse(val.isEmpty());
|
||||
assertSame(val, integerCache.retrieveCache(coordsA));
|
||||
|
||||
val = integerCache.retrieveCache(coordsB);
|
||||
assertTrue(val.isEmpty());
|
||||
val.setValue(1);
|
||||
assertFalse(val.isEmpty());
|
||||
assertSame(val, integerCache.retrieveCache(coordsB));
|
||||
val = integerCache.getValue(1);
|
||||
assertTrue(val == null);
|
||||
val = "second";
|
||||
integerCache.setValue(1, val);
|
||||
assertTrue(integerCache.hasValue(1));
|
||||
assertSame(val, integerCache.getValue(1));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUsageBasedClean() {
|
||||
integerCache.retrieveCache(new CoordinateIdentifier(1, 0)).setValue(1);
|
||||
integerCache.retrieveCache(new CoordinateIdentifier(2, 0)).setValue(2);
|
||||
integerCache.retrieveCache(new CoordinateIdentifier(3, 0)).setValue(3);
|
||||
integerCache.setValue(0, "first");
|
||||
integerCache.setValue(1, "second");
|
||||
integerCache.setValue(2, "third");
|
||||
|
||||
integerCache.retrieveCache(new CoordinateIdentifier(1, 0)).getValue();
|
||||
assertEquals("first", integerCache.getValue(0));
|
||||
|
||||
integerCache.retrieveCache(new CoordinateIdentifier(4, 0)).setValue(4);
|
||||
integerCache.setValue(3, "fourth");
|
||||
|
||||
assertEquals(1, integerCache.retrieveCache(new CoordinateIdentifier(1, 0)).getValue());
|
||||
assertEquals("first", integerCache.getValue(0));
|
||||
assertTrue(integerCache.hasValue(1));
|
||||
|
||||
assertFalse(integerCache.retrieveCache(new CoordinateIdentifier(1, 0)).isEmpty());
|
||||
|
||||
integerCache.retrieveCache(new CoordinateIdentifier(5, 0)).setValue(5);
|
||||
assertFalse(integerCache.retrieveCache(new CoordinateIdentifier(1, 0)).isEmpty());
|
||||
integerCache.setValue(5, "sixth");
|
||||
assertFalse(integerCache.hasValue(2));
|
||||
}
|
||||
}
|
@@ -1,32 +0,0 @@
|
||||
package ca.recrown.islandsurvivalcraft.caching;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.TestInstance;
|
||||
import org.junit.jupiter.api.TestInstance.Lifecycle;
|
||||
|
||||
@TestInstance(Lifecycle.PER_CLASS)
|
||||
public class CoordinateIdentifierTest {
|
||||
Cache<Integer> integerCache;
|
||||
|
||||
@BeforeAll
|
||||
public void setUp() {
|
||||
integerCache = new Cache<>(4);
|
||||
}
|
||||
|
||||
@AfterEach
|
||||
public void cleanUp() {
|
||||
integerCache.clearCache();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIdentityChecking() {
|
||||
integerCache.retrieveCache(new CoordinateIdentifier(1, 2)).setValue(8);
|
||||
integerCache.retrieveCache(new CoordinateIdentifier(1, 2)).setValue(4);
|
||||
|
||||
assertEquals(4, integerCache.retrieveCache(new CoordinateIdentifier(1, 2)).getValue());
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user