private void recordFlushed(final K key, final V value) {
        if (value == null) {
            // This is a removal ...
            flushedRemovals.add(key);
            flushedEntries.remove(key);
        } else {
            // This is a normal add
            flushedEntries.put(key, value);
            flushedRemovals.remove(key);
        }
    }
Create a driver object that will have a {@link #context()} that records messages
{@link ProcessorContext#forward(Object, Object) forwarded} by the store and that provides the specified serializers and
deserializers. This can be used when store is created to rely upon the ProcessorContext's default key and value serializers
and deserializers.

@param keySerializer     the key serializer for the {@link ProcessorContext}; may not be null
@param keyDeserializer   the key deserializer for the {@link ProcessorContext}; may not be null
@param valueSerializer   the value serializer for the {@link ProcessorContext}; may not be null
@param valueDeserializer the value deserializer for the {@link ProcessorContext}; may not be null
@return the test driver; never null
streams/src/test/java/org/apache/kafka/streams/state/KeyValueStoreTestDriver.java