### Question:
JCacheCachingProvider implements CachingProvider { void shutdown(final JCacheManager jCacheManager) { synchronized (cacheManagers) { final ConcurrentMap<URI, JCacheManager> map = cacheManagers.get(jCacheManager.getClassLoader()); if(map != null && map.remove(jCacheManager.getURI()) != null) { jCacheManager.shutdown(); } } }  @Override CacheManager getCacheManager(); @Override CacheManager getCacheManager(final URI uri, final ClassLoader classLoader); @Override CacheManager getCacheManager(URI uri, ClassLoader classLoader, Properties properties); @Override ClassLoader getDefaultClassLoader(); @Override URI getDefaultURI(); @Override Properties getDefaultProperties(); @Override void close(); @Override void close(final ClassLoader classLoader); @Override void close(final URI uri, final ClassLoader classLoader); @Override boolean isSupported(final OptionalFeature optionalFeature);  }### Answer:
@Test public void testShuttingDownProviderWithManagerNotFoundByClassloader() { JCacheCachingProvider provider = new JCacheCachingProvider(); JCacheManager manager = new JCacheManager(null, new net.sf.ehcache.CacheManager(), null, null); provider.shutdown(manager); }