InMemoryAttributeCache extends AbstractAttributeCache { @Override public CachedAttributes get(final String key) { return this.attributeCache.get(this.getKey.apply(this.zoneName, key)); } InMemoryAttributeCache(final long maxCachedIntervalMinutes, final String zoneName,
            final BiFunction<String, String, String> getKey); @Override void set(final String key, final CachedAttributes value); @Override CachedAttributes get(final String key); @Override void flushAll();  }
@Test public void testGetCachedAttributes() { InMemoryAttributeCache inMemoryAttributeCache = new InMemoryAttributeCache(5, TEST_ZONE, AbstractAttributeCache::resourceKey); Set<Attribute> attributes = Collections.singleton(new Attribute("https: CachedAttributes cachedAttributes = new CachedAttributes(attributes); Map<String, CachedAttributes> cachedAttributesMap = new HashMap<>(); String cacheKey = AbstractAttributeCache.resourceKey(TEST_ZONE, TEST_KEY); cachedAttributesMap.put(cacheKey, cachedAttributes); ReflectionTestUtils.setField(inMemoryAttributeCache, "attributeCache", cachedAttributesMap); Assert.assertEquals(inMemoryAttributeCache.get(TEST_KEY), cachedAttributes); }