You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tamaya.apache.org by an...@apache.org on 2016/12/18 22:54:36 UTC
[2/2] incubator-tamaya-extensions git commit: Added tests for mutable
config.
Added tests for mutable config.
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/ad8dfd8a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/tree/ad8dfd8a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/diff/ad8dfd8a
Branch: refs/heads/master
Commit: ad8dfd8aaa9e502dc4d8efd2fd5229bf4f7b9562
Parents: 8b94067
Author: anatole <an...@apache.org>
Authored: Sun Dec 18 14:12:05 2016 +0100
Committer: anatole <an...@apache.org>
Committed: Sun Dec 18 23:54:31 2016 +0100
----------------------------------------------------------------------
.../LazyRefreshablePropertySourceTest.java | 162 +++++++++++++++++++
.../src/test/resources/test.properties | 21 +++
.../src/test/resources/test2.properties | 21 +++
3 files changed, 204 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/ad8dfd8a/modules/mutable-config/src/test/java/org/apache/tamaya/mutableconfig/propertysources/LazyRefreshablePropertySourceTest.java
----------------------------------------------------------------------
diff --git a/modules/mutable-config/src/test/java/org/apache/tamaya/mutableconfig/propertysources/LazyRefreshablePropertySourceTest.java b/modules/mutable-config/src/test/java/org/apache/tamaya/mutableconfig/propertysources/LazyRefreshablePropertySourceTest.java
new file mode 100644
index 0000000..e67ca59
--- /dev/null
+++ b/modules/mutable-config/src/test/java/org/apache/tamaya/mutableconfig/propertysources/LazyRefreshablePropertySourceTest.java
@@ -0,0 +1,162 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tamaya.mutableconfig.propertysources;
+
+import org.apache.tamaya.functions.Supplier;
+import org.apache.tamaya.spi.PropertySource;
+import org.apache.tamaya.spisupport.SimplePropertySource;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+/**
+ * Tests for {@link LazyRefreshablePropertySource}. Created by atsticks on 11.11.16.
+ */
+public class LazyRefreshablePropertySourceTest {
+
+ private SimplePropertySource simplePropertySource = new SimplePropertySource(
+ getClass().getClassLoader().getResource("test.properties")
+ );
+ private SimplePropertySource simplePropertySource2 = new SimplePropertySource(
+ getClass().getClassLoader().getResource("test2.properties")
+ );
+ private volatile boolean selectFirst;
+
+ @Test
+ public void of() throws Exception {
+ assertNotNull(LazyRefreshablePropertySource.of(
+ new Supplier<PropertySource>() {
+ @Override
+ public PropertySource get() {
+ return simplePropertySource;
+ }
+ }
+ ));
+ }
+
+ @Test
+ public void of_WithDefaultOrdinal() throws Exception {
+ assertNotNull(LazyRefreshablePropertySource.of(
+ new Supplier<PropertySource>() {
+ @Override
+ public PropertySource get() {
+ return simplePropertySource;
+ }
+ }, 100
+ ));
+ }
+
+ @Test
+ public void get() throws Exception {
+ LazyRefreshablePropertySource ps = LazyRefreshablePropertySource.of(
+ new Supplier<PropertySource>() {
+ @Override
+ public PropertySource get() {
+ return simplePropertySource;
+ }
+ }
+ );
+ assertEquals(ps.get("test1").getValue(), "test1");
+ assertEquals(ps.get("test2").getValue(), "test2");
+ assertNull(ps.get("test3"));
+ }
+
+ @Test
+ public void getName() throws Exception {
+ LazyRefreshablePropertySource ps = LazyRefreshablePropertySource.of(
+ new Supplier<PropertySource>() {
+ @Override
+ public PropertySource get() {
+ return simplePropertySource;
+ }
+ }
+ );
+ assertEquals(ps.getName(), simplePropertySource.getName());
+ }
+
+ @Test
+ public void getProperties() throws Exception {
+ LazyRefreshablePropertySource ps = LazyRefreshablePropertySource.of(
+ new Supplier<PropertySource>() {
+ @Override
+ public PropertySource get() {
+ return simplePropertySource;
+ }
+ }
+ );
+ assertEquals(ps.getProperties(), simplePropertySource.getProperties());
+ }
+
+ @Test
+ public void refresh() throws Exception {
+ LazyRefreshablePropertySource ps1 = LazyRefreshablePropertySource.of(
+ new Supplier<PropertySource>() {
+ @Override
+ public PropertySource get() {
+ try {
+ if (selectFirst) {
+ return simplePropertySource;
+ } else {
+ return simplePropertySource2;
+ }
+ }finally{
+ selectFirst = !selectFirst;
+ }
+ }
+ }
+ );
+ // Simulate a refresh with the switching provider created above...
+ ps1.setUpdateInterval(1L);
+ if(ps1.get("test3")!=null){
+ Thread.sleep(5L); // NOSONAR
+ assertEquals("test4", ps1.get("test4").getValue());
+ }else{
+ Thread.sleep(5L); // NOSONAR
+ assertNull("test3", ps1.get("test3"));
+ }
+ }
+
+ @Test
+ public void testEqualsAndHashCode() throws Exception {
+ LazyRefreshablePropertySource ps1 = LazyRefreshablePropertySource.of(
+ new Supplier<PropertySource>() {
+ @Override
+ public PropertySource get() {
+ return simplePropertySource;
+ }
+ }
+ );
+ LazyRefreshablePropertySource ps2 = LazyRefreshablePropertySource.of(
+ new Supplier<PropertySource>() {
+ @Override
+ public PropertySource get() {
+ return simplePropertySource;
+ }
+ }
+ );
+ assertEquals(ps1, ps2);
+ assertEquals(ps1.hashCode(), ps2.hashCode());
+ }
+
+ @Test
+ public void testToString() throws Exception {
+
+ }
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/ad8dfd8a/modules/mutable-config/src/test/resources/test.properties
----------------------------------------------------------------------
diff --git a/modules/mutable-config/src/test/resources/test.properties b/modules/mutable-config/src/test/resources/test.properties
new file mode 100644
index 0000000..da1cb4a
--- /dev/null
+++ b/modules/mutable-config/src/test/resources/test.properties
@@ -0,0 +1,21 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+test1=test1
+test2=test2
+test4=test4
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/ad8dfd8a/modules/mutable-config/src/test/resources/test2.properties
----------------------------------------------------------------------
diff --git a/modules/mutable-config/src/test/resources/test2.properties b/modules/mutable-config/src/test/resources/test2.properties
new file mode 100644
index 0000000..d08e4e2
--- /dev/null
+++ b/modules/mutable-config/src/test/resources/test2.properties
@@ -0,0 +1,21 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+test1=test1
+test2=test2
+test5=test3
\ No newline at end of file