[TAMAYA-244] Method MappedCofiguration#getOrDefault(String, String) is now compliant with its JavaDoc.
Project: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/commit/fabf4a4b Tree: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/tree/fabf4a4b Diff: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/diff/fabf4a4b Branch: refs/heads/master Commit: fabf4a4b86762153103da375b293e8c03d301f26 Parents: 78415bc Author: Oliver B. Fischer <[email protected]> Authored: Fri Mar 17 20:32:03 2017 +0100 Committer: Oliver B. Fischer <[email protected]> Committed: Fri Mar 17 20:32:03 2017 +0100 ---------------------------------------------------------------------- modules/functions/pom.xml | 5 +++ .../tamaya/functions/MappedConfiguration.java | 3 ++ .../functions/CombinedConfigurationTest.java | 20 ++++------ .../tamaya/functions/InMemoryConfiguration.java | 17 +++++++++ .../functions/MappedConfigurationTest.java | 40 ++++++++++++++++++++ 5 files changed, 72 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/fabf4a4b/modules/functions/pom.xml ---------------------------------------------------------------------- diff --git a/modules/functions/pom.xml b/modules/functions/pom.xml index 0289465..b9f8bd1 100644 --- a/modules/functions/pom.xml +++ b/modules/functions/pom.xml @@ -69,6 +69,11 @@ under the License. <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> + + <dependency> + <groupId>org.mockito</groupId> + <artifactId>mockito-core</artifactId> + </dependency> </dependencies> </project> http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/fabf4a4b/modules/functions/src/main/java/org/apache/tamaya/functions/MappedConfiguration.java ---------------------------------------------------------------------- diff --git a/modules/functions/src/main/java/org/apache/tamaya/functions/MappedConfiguration.java b/modules/functions/src/main/java/org/apache/tamaya/functions/MappedConfiguration.java index b93b9ca..dd2547f 100644 --- a/modules/functions/src/main/java/org/apache/tamaya/functions/MappedConfiguration.java +++ b/modules/functions/src/main/java/org/apache/tamaya/functions/MappedConfiguration.java @@ -53,7 +53,10 @@ class MappedConfiguration implements Configuration { @Override public String getOrDefault(String key, String defaultValue) { + Objects.requireNonNull(key, "Key must be given"); + Objects.requireNonNull(defaultValue, "DefaultValue must be given."); String val = get(key); + if(val==null){ return defaultValue; } http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/fabf4a4b/modules/functions/src/test/java/org/apache/tamaya/functions/CombinedConfigurationTest.java ---------------------------------------------------------------------- diff --git a/modules/functions/src/test/java/org/apache/tamaya/functions/CombinedConfigurationTest.java b/modules/functions/src/test/java/org/apache/tamaya/functions/CombinedConfigurationTest.java index e56c0cc..497adf1 100644 --- a/modules/functions/src/test/java/org/apache/tamaya/functions/CombinedConfigurationTest.java +++ b/modules/functions/src/test/java/org/apache/tamaya/functions/CombinedConfigurationTest.java @@ -106,6 +106,13 @@ public class CombinedConfigurationTest { assertThat(cc.get("b")).isEqualTo("b"); } + /* + * Tests for getOrDefault(String, String) + */ + + // null, null + // a, b + // a, null // getOrDefault none one three // String getOrDefault(String var1, String var2); none one three @@ -126,17 +133,4 @@ public class CombinedConfigurationTest { // ConfigurationContext getContext(); none one three - - private static class InMemoryConfiguration extends DefaultConfiguration { - public InMemoryConfiguration(ConfigurationContext configurationContext) { - super(configurationContext); - } - // private Map<String, String> entries = new TreeMap<>(); - -// public InMemoryConfiguration addEntry(String key, String value) { -// entries.put(key, value); -// -// return this; -// } - } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/fabf4a4b/modules/functions/src/test/java/org/apache/tamaya/functions/InMemoryConfiguration.java ---------------------------------------------------------------------- diff --git a/modules/functions/src/test/java/org/apache/tamaya/functions/InMemoryConfiguration.java b/modules/functions/src/test/java/org/apache/tamaya/functions/InMemoryConfiguration.java new file mode 100644 index 0000000..5884b27 --- /dev/null +++ b/modules/functions/src/test/java/org/apache/tamaya/functions/InMemoryConfiguration.java @@ -0,0 +1,17 @@ +package org.apache.tamaya.functions; + +import org.apache.tamaya.spi.ConfigurationContext; +import org.apache.tamaya.spisupport.DefaultConfiguration; + +class InMemoryConfiguration extends DefaultConfiguration { + public InMemoryConfiguration(ConfigurationContext configurationContext) { + super(configurationContext); + } + // private Map<String, String> entries = new TreeMap<>(); + +// public InMemoryConfiguration addEntry(String key, String value) { +// entries.put(key, value); +// +// return this; +// } +} http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/fabf4a4b/modules/functions/src/test/java/org/apache/tamaya/functions/MappedConfigurationTest.java ---------------------------------------------------------------------- diff --git a/modules/functions/src/test/java/org/apache/tamaya/functions/MappedConfigurationTest.java b/modules/functions/src/test/java/org/apache/tamaya/functions/MappedConfigurationTest.java new file mode 100644 index 0000000..0dbba07 --- /dev/null +++ b/modules/functions/src/test/java/org/apache/tamaya/functions/MappedConfigurationTest.java @@ -0,0 +1,40 @@ +package org.apache.tamaya.functions; + +import org.apache.tamaya.Configuration; +import org.apache.tamaya.spi.ConfigurationContext; +import org.apache.tamaya.spisupport.DefaultConfigurationContext; +import org.junit.Test; +import org.mockito.Matchers; +import org.mockito.Mockito; +import org.mockito.internal.matchers.Null; + +import static org.junit.Assert.*; +import static org.mockito.Matchers.anyString; +import static org.mockito.Matchers.eq; +import static org.mockito.Mockito.doCallRealMethod; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; + +public class MappedConfigurationTest { + /* + * Tests for getOrDefault(String, String) + */ + + @Test(expected = NullPointerException.class) + public void getOrDefaultWithTwoStringParametersThrowsNPEIfValueIsNull() throws Exception { + MappedConfiguration mc = mock(MappedConfiguration.class); + doReturn("z").when(mc).get(eq("a)")); + doCallRealMethod().when(mc).getOrDefault(anyString(), anyString()); + + mc.getOrDefault("a", (String)null); + } + + @Test(expected = NullPointerException.class) + public void getOrDefaultWithTwoStringParametersThrowsNPEIfKeyIsNull() throws Exception { + MappedConfiguration mc = mock(MappedConfiguration.class); + doCallRealMethod().when(mc).getOrDefault(anyString(), anyString()); + + mc.getOrDefault(null, "z"); + } + +} \ No newline at end of file
