You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tamaya.apache.org by pl...@apache.org on 2017/03/11 23:31:52 UTC
incubator-tamaya-extensions git commit: [TAMAYA-244] Added the first
tests and made some small improvements to the CombinedConfiguration.
Repository: incubator-tamaya-extensions
Updated Branches:
refs/heads/master fe572c185 -> 2ab6ceedd
[TAMAYA-244] Added the first tests and made some small improvements to the CombinedConfiguration.
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/2ab6ceed
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/tree/2ab6ceed
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/diff/2ab6ceed
Branch: refs/heads/master
Commit: 2ab6ceeddbe1e3d41a10feba89e23adb6d8ef366
Parents: fe572c1
Author: Oliver B. Fischer <pl...@apache.org>
Authored: Sun Mar 12 00:28:10 2017 +0100
Committer: Oliver B. Fischer <pl...@apache.org>
Committed: Sun Mar 12 00:29:06 2017 +0100
----------------------------------------------------------------------
modules/functions/pom.xml | 5 +
.../tamaya/functions/CombinedConfiguration.java | 4 +-
.../functions/CombinedConfigurationTest.java | 117 +++++++++++++++++++
3 files changed, 124 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/2ab6ceed/modules/functions/pom.xml
----------------------------------------------------------------------
diff --git a/modules/functions/pom.xml b/modules/functions/pom.xml
index 3bd96cc..0289465 100644
--- a/modules/functions/pom.xml
+++ b/modules/functions/pom.xml
@@ -56,6 +56,11 @@ under the License.
</dependency>
<dependency>
+ <groupId>org.assertj</groupId>
+ <artifactId>assertj-core</artifactId>
+ </dependency>
+
+ <dependency>
<groupId>org.hamcrest</groupId>
<artifactId>java-hamcrest</artifactId>
</dependency>
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/2ab6ceed/modules/functions/src/main/java/org/apache/tamaya/functions/CombinedConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/functions/src/main/java/org/apache/tamaya/functions/CombinedConfiguration.java b/modules/functions/src/main/java/org/apache/tamaya/functions/CombinedConfiguration.java
index 8a479e9..a268736 100644
--- a/modules/functions/src/main/java/org/apache/tamaya/functions/CombinedConfiguration.java
+++ b/modules/functions/src/main/java/org/apache/tamaya/functions/CombinedConfiguration.java
@@ -43,9 +43,9 @@ class CombinedConfiguration implements Configuration{
* @param configName the name of the new config.
* @param configs the configurations hereby instances with higher indices override results with lower ones.
*/
- public CombinedConfiguration(String configName, Configuration... configs){
+ public CombinedConfiguration(String configName, Configuration... configs) {
this.name = configName;
- this.configurations =configs.clone();
+ this.configurations = configs == null ? new Configuration[0] : configs.clone();
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/2ab6ceed/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
new file mode 100644
index 0000000..1e17d7d
--- /dev/null
+++ b/modules/functions/src/test/java/org/apache/tamaya/functions/CombinedConfigurationTest.java
@@ -0,0 +1,117 @@
+package org.apache.tamaya.functions;
+
+import org.apache.tamaya.ConfigOperator;
+import org.apache.tamaya.ConfigQuery;
+import org.apache.tamaya.Configuration;
+import org.apache.tamaya.TypeLiteral;
+import org.apache.tamaya.spi.ConfigurationContext;
+import org.apache.tamaya.spi.ConfigurationContextBuilder;
+import org.apache.tamaya.spisupport.DefaultConfiguration;
+import org.apache.tamaya.spisupport.DefaultConfigurationContext;
+import org.apache.tamaya.spisupport.DefaultConfigurationContextBuilder;
+import org.apache.tamaya.spisupport.SimplePropertySource;
+import org.junit.Test;
+
+import java.util.Collections;
+import java.util.Map;
+import java.util.TreeMap;
+
+import static java.util.Collections.singletonMap;
+import static org.assertj.core.api.Assertions.assertThat;
+
+
+public class CombinedConfigurationTest {
+ private Configuration configWithA1;
+ private Configuration configWithA2;
+ private Configuration configWithB;
+ private Configuration configWithC;
+ private Configuration configWithoutEntries;
+
+ {
+ SimplePropertySource sourceWithKeyA1 = new SimplePropertySource("A", singletonMap("a", "a1"));
+ SimplePropertySource sourceWithKeyA2 = new SimplePropertySource("A", singletonMap("a", "a2"));
+ SimplePropertySource sourceWithKeyB = new SimplePropertySource("B", singletonMap("b", "b"));
+ SimplePropertySource sourceWithKeyC = new SimplePropertySource("C", singletonMap("c", "c"));
+ SimplePropertySource sourceWithoutKeys = new SimplePropertySource("NONE", Collections.<String, String>emptyMap());
+
+ ConfigurationContext ccWithA1 = new DefaultConfigurationContextBuilder().addPropertySources(sourceWithKeyA1)
+ .build();
+ ConfigurationContext ccWithA2 = new DefaultConfigurationContextBuilder().addPropertySources(sourceWithKeyA2)
+ .build();
+ ConfigurationContext ccWithB = new DefaultConfigurationContextBuilder().addPropertySources(sourceWithKeyB)
+ .build();
+ ConfigurationContext ccWithC = new DefaultConfigurationContextBuilder().addPropertySources(sourceWithKeyC)
+ .build();
+ ConfigurationContext ccWithoutEntries = new DefaultConfigurationContextBuilder().addPropertySources(sourceWithoutKeys)
+ .build();
+
+ configWithA1 = new DefaultConfiguration(ccWithA1);
+ configWithA2 = new DefaultConfiguration(ccWithA2);
+ configWithB = new DefaultConfiguration(ccWithB);
+ configWithC = new DefaultConfiguration(ccWithC);
+ configWithoutEntries = new DefaultConfiguration(ccWithoutEntries);
+ }
+
+ @Test
+ public void createCombinedConfigurationWithNullAsSingleConfiguration() {
+ CombinedConfiguration cc = new CombinedConfiguration("abc", null);
+
+ assertThat(cc.get("nil")).isNull();
+ }
+
+ @Test
+ public void requestedEntryIsntInAnyConfigration() throws Exception {
+
+ CombinedConfiguration cc = new CombinedConfiguration("abc", configWithA1, configWithB, configWithC);
+
+ assertThat(cc.get("key")).isNull();
+ }
+
+ @Test
+ public void requestedEntryIsInTheFirstAndThridConfiguration() {
+ CombinedConfiguration cc = new CombinedConfiguration("abc", configWithA1, configWithB, configWithA2);
+
+ assertThat(cc.get("a")).isEqualTo("a2");
+ }
+
+ @Test
+ public void requestedEntryIsOnlyInOneConfiguration() {
+ CombinedConfiguration cc = new CombinedConfiguration("abc", configWithA1, configWithB, configWithC);
+
+ assertThat(cc.get("b")).isEqualTo("b");
+ }
+
+ // getOrDefault none one three
+
+ // String getOrDefault(String var1, String var2); none one three
+
+ // <T> T getOrDefault(String var1, Class<T> var2, T var3); none one three
+
+ // <T> T get(String var1, Class<T> var2); none one three
+
+ // <T> T get(String var1, TypeLiteral<T> var2); none one three
+
+ // <T> T getOrDefault(String var1, TypeLiteral<T> var2, T var3); none one three
+
+ // Map<String, String> getProperties(); none one three
+
+ // Configuration with(ConfigOperator var1); none one three
+
+ // <T> T query(ConfigQuery<T> var1); none one three
+
+ // 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