@Override
   public SpringCache getCache(final String name) {
      return springCaches.computeIfAbsent(name, n -> {
         final Cache<Object, Object> nativeCache = this.nativeCacheManager.getCache(n);

         return new SpringCache(nativeCache, reactive);
      });
   }
@Test
   public final void getCacheShouldReturnDifferentInstancesForDifferentNames() {
      withCacheManager(new CacheManagerCallable(TestCacheManagerFactory.createCacheManager()) {
         @Override
         public void call() {
            // Given
            cm.defineConfiguration("thisCache", new ConfigurationBuilder().build());
            cm.defineConfiguration("thatCache", new ConfigurationBuilder().build());
            final SpringEmbeddedCacheManager objectUnderTest = new SpringEmbeddedCacheManager(cm);
            final String firstCacheName = "thisCache";
            final String secondCacheName = "thatCache";

            // When
            final SpringCache firstObtainedSpringCache = objectUnderTest.getCache(firstCacheName);
            final SpringCache secondObtainedSpringCache = objectUnderTest.getCache(secondCacheName);

            // Then
            assertNotSame(
                    "getCache() should have returned different SpringCache instances for different names",
                    firstObtainedSpringCache, secondObtainedSpringCache);
         }
      });
   }