@Test(dataProvider = "caches")
@CacheSpec(initialCapacity = {InitialCapacity.DEFAULT, InitialCapacity.FULL},
population = Population.EMPTY, compute = Compute.SYNC, writer = Writer.DISABLED,
removalListener = Listener.DEFAULT, implementation = Implementation.Caffeine)
public void specifications(CacheContext context) {
CaffeineSpec spec = toSpec(context);
Caffeine<Object, Object> builder = Caffeine.from(spec);
checkInitialCapacity(spec, context, builder);
checkMaximumWeight(spec, context, builder);
checkMaximumSize(spec, context, builder);
checkWeakKeys(spec, context, builder);
checkValueStrength(spec, context, builder);
checkExpireAfterAccess(spec, context, builder);
checkExpireAfterWrite(spec, context, builder);
checkRefreshAfterWrite(spec, context, builder);
assertThat(spec, is(equalTo(CaffeineSpec.parse(spec.toParsableString()))));
}