@@ -49,7 +49,7 @@ public class AnnotationCacheOperationSourceTests {
4949 @ Rule
5050 public final ExpectedException exception = ExpectedException .none ();
5151
52- private AnnotationCacheOperationSource source = new AnnotationCacheOperationSource ();
52+ private final AnnotationCacheOperationSource source = new AnnotationCacheOperationSource ();
5353
5454
5555 private Collection <CacheOperation > getOps (Class <?> target , String name , int expectedNumberOfOperations ) {
@@ -85,6 +85,11 @@ public void caching() throws Exception {
8585 assertTrue (it .next () instanceof CacheEvictOperation );
8686 }
8787
88+ @ Test
89+ public void emptyCaching () throws Exception {
90+ Collection <CacheOperation > ops = getOps (AnnotatedClass .class , "emptyCaching" , 0 );
91+ }
92+
8893 @ Test
8994 public void singularStereotype () throws Exception {
9095 Collection <CacheOperation > ops = getOps (AnnotatedClass .class , "singleStereotype" , 1 );
@@ -272,17 +277,20 @@ public void partialClassLevelWithNoCustomization() {
272277 assertSharedConfig (cacheOperation , "classKeyGenerator" , "classCacheManager" , "" , "classCacheName" );
273278 }
274279
280+
275281 private void assertSharedConfig (CacheOperation actual , String keyGenerator , String cacheManager ,
276- String cacheResolver , String ... cacheNames ) {
282+ String cacheResolver , String ... cacheNames ) {
283+
277284 assertEquals ("Wrong key manager" , keyGenerator , actual .getKeyGenerator ());
278285 assertEquals ("Wrong cache manager" , cacheManager , actual .getCacheManager ());
279286 assertEquals ("Wrong cache resolver" , cacheResolver , actual .getCacheResolver ());
280287 assertEquals ("Wrong number of cache names" , cacheNames .length , actual .getCacheNames ().size ());
281288 Arrays .stream (cacheNames ).forEach (
282- cacheName -> assertTrue ("Cache '" + cacheName + "' not found in " + actual .getCacheNames (),
283- actual .getCacheNames ().contains (cacheName )));
289+ cacheName -> assertTrue ("Cache '" + cacheName + "' not found in " + actual .getCacheNames (),
290+ actual .getCacheNames ().contains (cacheName )));
284291 }
285292
293+
286294 private static class AnnotatedClass {
287295
288296 @ Cacheable ("test" )
@@ -298,6 +306,10 @@ public void multiple() {
298306 public void caching () {
299307 }
300308
309+ @ Caching
310+ public void emptyCaching () {
311+ }
312+
301313 @ Cacheable (cacheNames = "test" , keyGenerator = "custom" )
302314 public void customKeyGenerator () {
303315 }
@@ -361,6 +373,7 @@ public void noCacheNameSpecified() {
361373 }
362374 }
363375
376+
364377 @ CacheConfig (cacheNames = "classCacheName" ,
365378 keyGenerator = "classKeyGenerator" ,
366379 cacheManager = "classCacheManager" , cacheResolver = "classCacheResolver" )
@@ -383,6 +396,7 @@ public void methodLevelCacheResolver() {
383396 }
384397 }
385398
399+
386400 @ CacheConfigFoo
387401 private static class AnnotatedClassWithCustomDefault {
388402
@@ -391,6 +405,7 @@ public void methodLevelCacheName() {
391405 }
392406 }
393407
408+
394409 @ CacheConfig (cacheNames = "classCacheName" ,
395410 keyGenerator = "classKeyGenerator" ,
396411 cacheManager = "classCacheManager" )
@@ -409,6 +424,7 @@ public void noCustomization() {
409424 }
410425 }
411426
427+
412428 @ CacheConfigFoo
413429 @ CacheConfig (cacheNames = "myCache" ) // multiple sources
414430 private static class MultipleCacheConfig {
@@ -418,48 +434,58 @@ public void multipleCacheConfig() {
418434 }
419435 }
420436
437+
421438 @ Retention (RetentionPolicy .RUNTIME )
422439 @ Target (ElementType .METHOD )
423440 @ Cacheable ("foo" )
424441 public @interface CacheableFoo {
425442 }
426443
444+
427445 @ Retention (RetentionPolicy .RUNTIME )
428446 @ Target (ElementType .METHOD )
429447 @ Cacheable (cacheNames = "foo" , keyGenerator = "custom" )
430448 public @interface CacheableFooCustomKeyGenerator {
431449 }
432450
451+
433452 @ Retention (RetentionPolicy .RUNTIME )
434453 @ Target (ElementType .METHOD )
435454 @ Cacheable (cacheNames = "foo" , cacheManager = "custom" )
436455 public @interface CacheableFooCustomCacheManager {
437456 }
438457
458+
439459 @ Retention (RetentionPolicy .RUNTIME )
440460 @ Target (ElementType .METHOD )
441461 @ Cacheable (cacheNames = "foo" , cacheResolver = "custom" )
442462 public @interface CacheableFooCustomCacheResolver {
443463 }
444464
465+
445466 @ Retention (RetentionPolicy .RUNTIME )
446467 @ Target (ElementType .METHOD )
447468 @ CacheEvict ("foo" )
448469 public @interface EvictFoo {
449470 }
450471
472+
451473 @ Retention (RetentionPolicy .RUNTIME )
452474 @ Target (ElementType .METHOD )
453475 @ CacheEvict ("bar" )
454476 public @interface EvictBar {
455477 }
456478
479+
457480 @ Retention (RetentionPolicy .RUNTIME )
458481 @ Target (ElementType .TYPE )
459- @ CacheConfig (keyGenerator = "classKeyGenerator" , cacheManager = "classCacheManager" , cacheResolver = "classCacheResolver" )
482+ @ CacheConfig (keyGenerator = "classKeyGenerator" ,
483+ cacheManager = "classCacheManager" ,
484+ cacheResolver = "classCacheResolver" )
460485 public @interface CacheConfigFoo {
461486 }
462487
488+
463489 @ Retention (RetentionPolicy .RUNTIME )
464490 @ Target ({ ElementType .METHOD , ElementType .TYPE })
465491 @ Cacheable (cacheNames = "shadowed cache name" , key = "shadowed key" )
@@ -475,6 +501,7 @@ public void multipleCacheConfig() {
475501 String key () default "" ;
476502 }
477503
504+
478505 @ Retention (RetentionPolicy .RUNTIME )
479506 @ Target ({ ElementType .METHOD , ElementType .TYPE })
480507 @ CacheEvict (cacheNames = "shadowed cache name" , key = "shadowed key" )
@@ -490,4 +517,4 @@ public void multipleCacheConfig() {
490517 String key () default "" ;
491518 }
492519
493- }
520+ }
0 commit comments