public static <K, V> VersionedKeyQuery<K, V> withKey(final K key) {
        Objects.requireNonNull(key, "key cannot be null.");
        return new VersionedKeyQuery<>(key, Optional.empty());
    }
@Test
    public void shouldThrowNPEWithNullKey() {
        final Exception exception = assertThrows(NullPointerException.class, () -> VersionedKeyQuery.withKey(null));
        assertEquals("key cannot be null.", exception.getMessage());
    }