### Question:
KeyValueCacheKey extends AbstractCacheKey implements CacheKey, Serializable { Map<String, String[]> getAllowedKeyValues() { return allowedKeyValues; } KeyValueCacheKey(final SlingHttpServletRequest request, final HttpCacheConfig cacheConfig,
                            final String cacheKeyId, final Map<String, String[]> allowedKeyValues, Map<String, String> actualKeyValues);  KeyValueCacheKey(final String uri, final HttpCacheConfig cacheConfig, final String cacheKeyId,
                            final Map<String, String[]> allowedKeyValues); @Override boolean equals(Object o); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void test_serialization(){ KeyValueCacheKey cacheKey = new KeyValueCacheKey("/content/acs-commons/en/homepage.html", cacheConfig, "synthetic", TESTMAP); byte[] serializedByteArray = SerializationUtils.serialize(cacheKey); KeyValueCacheKey unserialized = SerializationUtils.deserialize(serializedByteArray); assertEquals(cacheKey, unserialized); Map<String, String[]> unserializedMap = unserialized.getAllowedKeyValues(); assertTrue(unserializedMap.containsKey("SomeValue")); assertTrue(unserializedMap.containsKey("SomeOtherValue")); assertArrayEquals(TESTMAP.get("SomeValue"), unserializedMap.get("SomeValue")); assertArrayEquals(TESTMAP.get("SomeOtherValue"), unserializedMap.get("SomeOtherValue")); }