/*
* Copyright 2015 Ben Manes. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.github.benmanes.caffeine.cache;
import com.github.benmanes.caffeine.guava.CaffeinatedGuava;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
/**
* Guava testlib map tests for the {@link Cache#asMap()} view.
*
* @author ben.manes@gmail.com (Ben Manes)
*/
public final class CaffeineMapTests extends TestCase {
public static Test suite() throws Exception {
TestSuite suite = new TestSuite();
addGuavaViewTests(suite);
addUnboundedTests(suite);
addBoundedTests(suite);
return suite;
}
private static void addUnboundedTests(TestSuite suite) throws Exception {
suite.addTest(MapTestFactory.suite("UnboundedCache", () -> {
Cache<String, String> cache = Caffeine.newBuilder().build();
return cache.asMap();
}));
suite.addTest(MapTestFactory.suite("UnboundedAsyncCache", () -> {
AsyncLoadingCache<String, String> cache = Caffeine.newBuilder().buildAsync(key -> null);
return cache.synchronous().asMap();
}));
}
private static void addBoundedTests(TestSuite suite) throws Exception {
suite.addTest(MapTestFactory.suite("BoundedCache", () -> {
Cache<String, String> cache = Caffeine.newBuilder().maximumSize(Long.MAX_VALUE).build();
return cache.asMap();
}));
suite.addTest(MapTestFactory.suite("BoundedAsyncCache", () -> {
AsyncLoadingCache<String, String> cache = Caffeine.newBuilder()
.maximumSize(Long.MAX_VALUE)
.buildAsync(key -> null);
return cache.synchronous().asMap();
}));
}
private static void addGuavaViewTests(TestSuite suite) throws Exception {
suite.addTest(MapTestFactory.suite("GuavaView", () -> {
com.google.common.cache.Cache<String, String> cache = CaffeinatedGuava.build(
Caffeine.newBuilder().maximumSize(Long.MAX_VALUE));
return cache.asMap();
}));
suite.addTest(MapTestFactory.suite("GuavaLoadingView", () -> {
com.google.common.cache.Cache<String, String> cache = CaffeinatedGuava.build(
Caffeine.newBuilder().maximumSize(Long.MAX_VALUE), key -> null);
return cache.asMap();
}));
}
}