@Override
    public Set<String> keySet() {
        if (this.prefix.isEmpty()) {
            return this.backingConfig.keySet();
        }

        final HashSet<String> set = new HashSet<>();
        int prefixLen = this.prefix.length();

        for (String key : this.backingConfig.keySet()) {
            if (key.startsWith(prefix)) {
                set.add(key.substring(prefixLen));
            }
        }

        return set;
    }
@Test
    void testDelegationConfigurationWithNullOrEmptyPrefix() {
        Configuration backingConf = new Configuration();
        backingConf.setValueInternal("test-key", "value", false);

        assertThatThrownBy(() -> new DelegatingConfiguration(backingConf, null))
                .isInstanceOf(NullPointerException.class);

        DelegatingConfiguration configuration = new DelegatingConfiguration(backingConf, "");
        assertThat(backingConf.keySet()).isEqualTo(configuration.keySet());
    }