InMemoryAttributeCache extends AbstractAttributeCache { @Override public void flushAll() { this.attributeCache.clear(); } 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();  }
@SuppressWarnings("unchecked") @Test public void testFlushAll() { InMemoryAttributeCache inMemoryAttributeCache = new InMemoryAttributeCache(5, TEST_ZONE, AbstractAttributeCache::subjectKey); Set<Attribute> attributes = Collections.singleton(new Attribute("https: CachedAttributes cachedAttributes = new CachedAttributes(attributes); Map<String, CachedAttributes> cachedAttributesMap = new HashMap<>(); String cacheKey = AbstractAttributeCache.subjectKey(TEST_ZONE, TEST_KEY); cachedAttributesMap.put(cacheKey, cachedAttributes); ReflectionTestUtils.setField(inMemoryAttributeCache, "attributeCache", cachedAttributesMap); Assert.assertEquals(inMemoryAttributeCache.get(TEST_KEY), cachedAttributes); inMemoryAttributeCache.flushAll(); Assert.assertTrue( ((Map<String, CachedAttributes>) ReflectionTestUtils.getField(inMemoryAttributeCache, "attributeCache")) .isEmpty()); }