### Question:
CacheManager implements CacheManagerBean { final SharedCache sharedCache() { if (_SHARED_CACHE == null) { synchronized (this) { if (_SHARED_CACHE == null) { resolvedMaxCacheSize = resolveDefaultMaxSize(); setMaximumSize(resolvedMaxCacheSize); } } } return _SHARED_CACHE; } @VisibleForTesting  CacheManager(); void setEncoder(@NonNull RevObjectSerializer encoder); ObjectCache acquire(final @NonNull String uniqueCacheIdentifier); void release(ObjectCache cache); @Override long getSize(); @Override long getSizeBytes(); @Override double getSizeMB(); @Override void clear(); @Override long getHitCount(); @Override double getHitRate(); @Override long getMissCount(); @Override double getMissRate(); @Override long getEvictionCount(); @Override void setMaximumSizePercent(double percent); @Override void setMaximumSizeMB(double maxSizeMB); long getMaximumSize(); @Override double getMaximumSizeMB(); @Override void setMaximumSize(long maxSizeBytes); @Override double getMaximumSizePercent(); @Override double getDefaultSizeMB(); @Override double getAbsoluteMaximumSizeMB(); @Nullable @Override String getMaximumSizeSystemProperty(); @Nullable @Override String getMaximumSizeEnvVariable(); @Nullable @Override String getCacheImplementationName(); static final CacheManager INSTANCE; static final String ENV_VAR; }### Answer:
public @Test void sharedCacheLazilyCreated() { assertNull(cacheManager._SHARED_CACHE); SharedCache sc = cacheManager.sharedCache(); assertNotNull(sc); assertNotNull(cacheManager._SHARED_CACHE); assertSame(sc, cacheManager._SHARED_CACHE); assertSame(sc, cacheManager.sharedCache()); }