@Test
    public void shouldLogWarningWhenSettingWalOptions() throws Exception {

        try (final LogCaptureAppender appender = LogCaptureAppender.createAndRegister(RocksDBGenericOptionsToDbOptionsColumnFamilyOptionsAdapter.class)) {

            try (RocksDBGenericOptionsToDbOptionsColumnFamilyOptionsAdapter adapter =
                     new RocksDBGenericOptionsToDbOptionsColumnFamilyOptionsAdapter(new DBOptions(), new ColumnFamilyOptions())) {
                for (final Method method : RocksDBGenericOptionsToDbOptionsColumnFamilyOptionsAdapter.class.getDeclaredMethods()) {
                    if (walRelatedMethods.contains(method.getName())) {
                        method.invoke(adapter, getDBOptionsParameters(method.getParameterTypes()));
                    }
                }

                final List<String> walOptions = Arrays.asList("walDir", "walFilter", "walRecoveryMode", "walBytesPerSync", "walSizeLimitMB", "manualWalFlush", "maxTotalWalSize", "walTtlSeconds");

                final Set<String> logMessages = appender.getEvents().stream()
                    .filter(e -> e.getLevel().equals("WARN"))
                    .map(LogCaptureAppender.Event::getMessage)
                    .collect(Collectors.toSet());

                walOptions.forEach(option -> assertThat(logMessages, hasItem(String.format("WAL is explicitly disabled by Streams in RocksDB. Setting option '%s' will be ignored", option))));
            }
        }
    }
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