### Question:
TomlBackedConfiguration implements Configuration { @Override public Set<String> keySet() { Set<String> keys = new HashSet<>(); keys.addAll(toml.dottedKeySet()); keys.addAll(schema.defaultsKeySet()); return keys; } TomlBackedConfiguration(TomlParseResult toml, @Nullable Schema schema);   TomlBackedConfiguration(TomlTable toml, @Nullable Schema schema); @Override List<ConfigurationError> errors(); @Override void toToml(Appendable appendable); @Override Set<String> keySet(); @Override Set<String> keySet(String prefix); @Override Configuration getConfigurationSection(String name); @Override Set<String> sections(String prefix); @Override boolean contains(String key); @Nullable @Override Object get(String key); @Nullable @Override DocumentPosition inputPositionOf(String key); @Override String getString(String key); @Override int getInteger(String key); @Override long getLong(String key); @Override double getDouble(String key); @Override boolean getBoolean(String key); @Override Map<String, Object> getMap(String key); @Override List<Object> getList(String key); @Override List<String> getListOfString(String key); @Override List<Integer> getListOfInteger(String key); @Override List<Long> getListOfLong(String key); @Override List<Double> getListOfDouble(String key); @Override List<Boolean> getListOfBoolean(String key); @Override List<Map<String, Object>> getListOfMap(String key);  }### Answer:
@Test void keysContainSchemaKeys() throws Exception { SchemaBuilder builder = SchemaBuilder.create(); builder.addString("foo", "bar", null, null); builder.addString("foo.bar", "buz", null, null); Schema schema = builder.toSchema(); Configuration config = Configuration.fromToml("foobar = 'hello'", schema); assertEquals(new HashSet<>(Arrays.asList("foo", "foo.bar", "foobar")), config.keySet()); }