@Test public void customKeyGeneratorAndCacheResolver() { CacheResultOperation operation = getCacheOperation(CacheResultOperation.class, CustomServiceWithDefaults.class, name.getMethodName(), Long.class); assertJCacheResolver(operation.getCacheResolver(), TestableCacheResolver.class); assertJCacheResolver(operation.getExceptionCacheResolver(), null); assertCacheKeyGenerator(operation.getKeyGenerator(), TestableCacheKeyGenerator.class); }
@Test public void customCacheResolver() { CacheResultOperation operation = getCacheOperation(CacheResultOperation.class, CustomService.class, name.getMethodName(), Long.class); assertJCacheResolver(operation.getCacheResolver(), TestableCacheResolver.class); assertJCacheResolver(operation.getExceptionCacheResolver(), null); assertEquals(KeyGeneratorAdapter.class, operation.getKeyGenerator().getClass()); assertEquals(defaultKeyGenerator, ((KeyGeneratorAdapter) operation.getKeyGenerator()).getTarget()); }
@Test public void customKeyGenerator() { CacheResultOperation operation = getCacheOperation(CacheResultOperation.class, CustomService.class, name.getMethodName(), Long.class); assertEquals(defaultCacheResolver, operation.getCacheResolver()); assertNull(operation.getExceptionCacheResolver()); assertCacheKeyGenerator(operation.getKeyGenerator(), TestableCacheKeyGenerator.class); }
@Test public void customKeyGeneratorAndCacheResolverWithExceptionName() { CacheResultOperation operation = getCacheOperation(CacheResultOperation.class, CustomServiceWithDefaults.class, name.getMethodName(), Long.class); assertJCacheResolver(operation.getCacheResolver(), TestableCacheResolver.class); assertJCacheResolver(operation.getExceptionCacheResolver(), TestableCacheResolver.class); assertCacheKeyGenerator(operation.getKeyGenerator(), TestableCacheKeyGenerator.class); }
@Test public void customKeyGeneratorSpringBean() { TestableCacheKeyGenerator bean = new TestableCacheKeyGenerator(); beanFactory.registerSingleton("fooBar", bean); CacheResultOperation operation = getCacheOperation(CacheResultOperation.class, CustomService.class, name.getMethodName(), Long.class); assertEquals(defaultCacheResolver, operation.getCacheResolver()); assertNull(operation.getExceptionCacheResolver()); KeyGeneratorAdapter adapter = (KeyGeneratorAdapter) operation.getKeyGenerator(); assertSame(bean, adapter.getTarget()); // take bean from context }