diff options
Diffstat (limited to 'core/src/test/java/org/elasticsearch/common/settings')
4 files changed, 80 insertions, 63 deletions
diff --git a/core/src/test/java/org/elasticsearch/common/settings/SettingsTests.java b/core/src/test/java/org/elasticsearch/common/settings/SettingsTests.java index e3f2bc1bb2..eb6cc56816 100644 --- a/core/src/test/java/org/elasticsearch/common/settings/SettingsTests.java +++ b/core/src/test/java/org/elasticsearch/common/settings/SettingsTests.java @@ -201,8 +201,8 @@ public class SettingsTests extends ESTestCase { assertThat(settings.getAsArray("value"), arrayContaining("2", "3")); settings = settingsBuilder() - .put(new YamlSettingsLoader().load("value: 1")) - .put(new YamlSettingsLoader().load("value: [ 2, 3 ]")) + .put(new YamlSettingsLoader(false).load("value: 1")) + .put(new YamlSettingsLoader(false).load("value: [ 2, 3 ]")) .build(); assertThat(settings.getAsArray("value"), arrayContaining("2", "3")); diff --git a/core/src/test/java/org/elasticsearch/common/settings/loader/JsonSettingsLoaderTests.java b/core/src/test/java/org/elasticsearch/common/settings/loader/JsonSettingsLoaderTests.java index d7f10891f2..154ef8ee03 100644 --- a/core/src/test/java/org/elasticsearch/common/settings/loader/JsonSettingsLoaderTests.java +++ b/core/src/test/java/org/elasticsearch/common/settings/loader/JsonSettingsLoaderTests.java @@ -25,15 +25,14 @@ import org.elasticsearch.common.settings.SettingsException; import org.elasticsearch.test.ESTestCase; import static org.elasticsearch.common.settings.Settings.settingsBuilder; +import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.Matchers.equalTo; -/** - * - */ public class JsonSettingsLoaderTests extends ESTestCase { + public void testSimpleJsonSettings() throws Exception { - String json = "/org/elasticsearch/common/settings/loader/test-settings.json"; - Settings settings = settingsBuilder() + final String json = "/org/elasticsearch/common/settings/loader/test-settings.json"; + final Settings settings = settingsBuilder() .loadFromStream(json, getClass().getResourceAsStream(json)) .build(); @@ -50,15 +49,23 @@ public class JsonSettingsLoaderTests extends ESTestCase { } public void testDuplicateKeysThrowsException() { - String json = "{\"foo\":\"bar\",\"foo\":\"baz\"}"; - try { - settingsBuilder() - .loadFromSource(json) - .build(); - fail("expected exception"); - } catch (SettingsException e) { - assertEquals(e.getCause().getClass(), ElasticsearchParseException.class); - assertTrue(e.toString().contains("duplicate settings key [foo] found at line number [1], column number [20], previous value [bar], current value [baz]")); - } + final String json = "{\"foo\":\"bar\",\"foo\":\"baz\"}"; + final SettingsException e = expectThrows(SettingsException.class, () -> settingsBuilder().loadFromSource(json).build()); + assertEquals(e.getCause().getClass(), ElasticsearchParseException.class); + assertThat( + e.toString(), + containsString("duplicate settings key [foo] " + + "found at line number [1], " + + "column number [20], " + + "previous value [bar], " + + "current value [baz]")); } + + public void testNullValuedSettingThrowsException() { + final String json = "{\"foo\":null}"; + final ElasticsearchParseException e = + expectThrows(ElasticsearchParseException.class, () -> new JsonSettingsLoader(false).load(json)); + assertThat(e.toString(), containsString("null-valued setting found for key [foo] found at line number [1], column number [8]")); + } + } diff --git a/core/src/test/java/org/elasticsearch/common/settings/loader/PropertiesSettingsLoaderTests.java b/core/src/test/java/org/elasticsearch/common/settings/loader/PropertiesSettingsLoaderTests.java index 7a1897fbaf..c13ae7cc68 100644 --- a/core/src/test/java/org/elasticsearch/common/settings/loader/PropertiesSettingsLoaderTests.java +++ b/core/src/test/java/org/elasticsearch/common/settings/loader/PropertiesSettingsLoaderTests.java @@ -21,27 +21,37 @@ package org.elasticsearch.common.settings.loader; import org.elasticsearch.ElasticsearchParseException; import org.elasticsearch.test.ESTestCase; +import org.junit.Before; import java.io.IOException; import java.nio.charset.Charset; public class PropertiesSettingsLoaderTests extends ESTestCase { + + private PropertiesSettingsLoader loader; + + @Before + public void setUp() throws Exception { + super.setUp(); + loader = new PropertiesSettingsLoader(); + } + public void testDuplicateKeyFromStringThrowsException() throws IOException { - PropertiesSettingsLoader loader = new PropertiesSettingsLoader(); - try { - loader.load("foo=bar\nfoo=baz"); - fail("expected exception"); - } catch (ElasticsearchParseException e) { - assertEquals(e.getMessage(), "duplicate settings key [foo] found, previous value [bar], current value [baz]"); - } + final ElasticsearchParseException e = expectThrows(ElasticsearchParseException.class, () -> loader.load("foo=bar\nfoo=baz")); + assertEquals(e.getMessage(), "duplicate settings key [foo] found, previous value [bar], current value [baz]"); } public void testDuplicateKeysFromBytesThrowsException() throws IOException { - PropertiesSettingsLoader loader = new PropertiesSettingsLoader(); - try { - loader.load("foo=bar\nfoo=baz".getBytes(Charset.defaultCharset())); - } catch (ElasticsearchParseException e) { - assertEquals(e.getMessage(), "duplicate settings key [foo] found, previous value [bar], current value [baz]"); - } + final ElasticsearchParseException e = expectThrows( + ElasticsearchParseException.class, + () -> loader.load("foo=bar\nfoo=baz".getBytes(Charset.defaultCharset())) + ); + assertEquals(e.getMessage(), "duplicate settings key [foo] found, previous value [bar], current value [baz]"); } + + public void testThatNoDuplicatesPropertiesDoesNotAcceptNullValues() { + final PropertiesSettingsLoader.NoDuplicatesProperties properties = loader.new NoDuplicatesProperties(); + expectThrows(NullPointerException.class, () -> properties.put("key", null)); + } + } diff --git a/core/src/test/java/org/elasticsearch/common/settings/loader/YamlSettingsLoaderTests.java b/core/src/test/java/org/elasticsearch/common/settings/loader/YamlSettingsLoaderTests.java index 48703044ec..2e2a187da0 100644 --- a/core/src/test/java/org/elasticsearch/common/settings/loader/YamlSettingsLoaderTests.java +++ b/core/src/test/java/org/elasticsearch/common/settings/loader/YamlSettingsLoaderTests.java @@ -28,13 +28,11 @@ import static org.elasticsearch.common.settings.Settings.settingsBuilder; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.equalTo; -/** - * - */ public class YamlSettingsLoaderTests extends ESTestCase { + public void testSimpleYamlSettings() throws Exception { - String yaml = "/org/elasticsearch/common/settings/loader/test-settings.yml"; - Settings settings = settingsBuilder() + final String yaml = "/org/elasticsearch/common/settings/loader/test-settings.yml"; + final Settings settings = settingsBuilder() .loadFromStream(yaml, getClass().getResourceAsStream(yaml)) .build(); @@ -51,39 +49,41 @@ public class YamlSettingsLoaderTests extends ESTestCase { } public void testIndentation() { - String yaml = "/org/elasticsearch/common/settings/loader/indentation-settings.yml"; - try { - settingsBuilder() - .loadFromStream(yaml, getClass().getResourceAsStream(yaml)) - .build(); - fail("Expected SettingsException"); - } catch(SettingsException e ) { - assertThat(e.getMessage(), containsString("Failed to load settings")); - } + final String yaml = "/org/elasticsearch/common/settings/loader/indentation-settings.yml"; + final SettingsException e = + expectThrows( + SettingsException.class, + () -> settingsBuilder().loadFromStream(yaml, getClass().getResourceAsStream(yaml)).build()); + assertThat(e.getMessage(), containsString("Failed to load settings")); } public void testIndentationWithExplicitDocumentStart() { - String yaml = "/org/elasticsearch/common/settings/loader/indentation-with-explicit-document-start-settings.yml"; - try { - settingsBuilder() - .loadFromStream(yaml, getClass().getResourceAsStream(yaml)) - .build(); - fail("Expected SettingsException"); - } catch (SettingsException e) { - assertThat(e.getMessage(), containsString("Failed to load settings")); - } + final String yaml = "/org/elasticsearch/common/settings/loader/indentation-with-explicit-document-start-settings.yml"; + final SettingsException e = + expectThrows( + SettingsException.class, + () -> settingsBuilder().loadFromStream(yaml, getClass().getResourceAsStream(yaml)).build()); + assertThat(e.getMessage(), containsString("Failed to load settings")); } public void testDuplicateKeysThrowsException() { - String yaml = "foo: bar\nfoo: baz"; - try { - settingsBuilder() - .loadFromSource(yaml) - .build(); - fail("expected exception"); - } catch (SettingsException e) { - assertEquals(e.getCause().getClass(), ElasticsearchParseException.class); - assertTrue(e.toString().contains("duplicate settings key [foo] found at line number [2], column number [6], previous value [bar], current value [baz]")); - } + final String yaml = "foo: bar\nfoo: baz"; + final SettingsException e = expectThrows(SettingsException.class, () -> settingsBuilder().loadFromSource(yaml).build()); + assertEquals(e.getCause().getClass(), ElasticsearchParseException.class); + assertThat( + e.toString(), + containsString("duplicate settings key [foo] " + + "found at line number [2], " + + "column number [6], " + + "previous value [bar], " + + "current value [baz]")); + } + + public void testNullValuedSettingThrowsException() { + final String yaml = "foo:"; + final ElasticsearchParseException e = + expectThrows(ElasticsearchParseException.class, () -> new YamlSettingsLoader(false).load(yaml)); + assertThat(e.toString(), containsString("null-valued setting found for key [foo] found at line number [1], column number [5]")); } + } |