private void verifyDBOptionsMethodCall(final Method method) throws Exception {
        final DBOptions mockedDbOptions = mock(DBOptions.class);
        final RocksDBGenericOptionsToDbOptionsColumnFamilyOptionsAdapter optionsFacadeDbOptions
            = new RocksDBGenericOptionsToDbOptionsColumnFamilyOptionsAdapter(mockedDbOptions, new ColumnFamilyOptions());

        final Object[] parameters = getDBOptionsParameters(method.getParameterTypes());

        try {
            method.invoke(optionsFacadeDbOptions, parameters);
            final Collection<Invocation> invocations = mockingDetails(mockedDbOptions).getInvocations();
            final Set<String> invokedMethodNames = invocations.stream().map(invocation -> invocation.getMethod().getName()).collect(Collectors.toSet());
            assertTrue(invokedMethodNames.contains(method.getName()), "Should have called DBOptions." + method.getName() + "()");
        } catch (final InvocationTargetException undeclaredMockMethodCall) {
            assertThat(undeclaredMockMethodCall.getCause(), instanceOf(AssertionError.class));
            assertThat(undeclaredMockMethodCall.getCause().getMessage().trim(),
                matchesPattern("Unexpected method call DBOptions\\." + method.getName() + "((.*\n*)*):"));
        } finally {
            optionsFacadeDbOptions.close();
        }
    }
The purpose of this test is, to catch interface changes if we upgrade {@link RocksDB}.
Using reflections, we make sure the {@link RocksDBGenericOptionsToDbOptionsColumnFamilyOptionsAdapter} maps all
methods from {@link DBOptions} and {@link ColumnFamilyOptions} to/from {@link Options} correctly.
streams/src/test/java/org/apache/kafka/streams/state/internals/RocksDBGenericOptionsToDbOptionsColumnFamilyOptionsAdapterTest.java