Repository: incubator-tamaya-extensions
Updated Branches:
  refs/heads/master 13e43a49e -> 1aa999966


TAMAYA-300 Added additional tests, fixed absolute key issue.


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/1aa99996
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/tree/1aa99996
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/diff/1aa99996

Branch: refs/heads/master
Commit: 1aa9999662a1de891c08ac3efdb1b854482a60af
Parents: 13e43a4
Author: Anatole Tresch <[email protected]>
Authored: Wed Nov 15 00:58:22 2017 +0100
Committer: Anatole Tresch <[email protected]>
Committed: Wed Nov 15 00:58:22 2017 +0100

----------------------------------------------------------------------
 .../tamaya/inject/spi/InjectionUtils.java       |  2 +-
 .../tamaya/inject/spi/InjectionUtilsTest.java   | 79 +++++++++++++++++++-
 2 files changed, 79 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/1aa99996/modules/injection/injection-api/src/main/java/org/apache/tamaya/inject/spi/InjectionUtils.java
----------------------------------------------------------------------
diff --git 
a/modules/injection/injection-api/src/main/java/org/apache/tamaya/inject/spi/InjectionUtils.java
 
b/modules/injection/injection-api/src/main/java/org/apache/tamaya/inject/spi/InjectionUtils.java
index f0f5d63..d5ab2ef 100644
--- 
a/modules/injection/injection-api/src/main/java/org/apache/tamaya/inject/spi/InjectionUtils.java
+++ 
b/modules/injection/injection-api/src/main/java/org/apache/tamaya/inject/spi/InjectionUtils.java
@@ -104,7 +104,7 @@ public final class InjectionUtils {
         for(String memberKey:memberKeys){
             if (memberKey.startsWith("[") && memberKey.endsWith("]")) {
                 // absolute key, strip away brackets, take key as is
-                result.add(memberKey);
+                result.add(memberKey.substring(1, memberKey.length()-1));
             }else{
                 for(String areaKey:areaKeys) {
                     result.add(areaKey + '.' + memberKey);

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-extensions/blob/1aa99996/modules/injection/injection-api/src/test/java/org/apache/tamaya/inject/spi/InjectionUtilsTest.java
----------------------------------------------------------------------
diff --git 
a/modules/injection/injection-api/src/test/java/org/apache/tamaya/inject/spi/InjectionUtilsTest.java
 
b/modules/injection/injection-api/src/test/java/org/apache/tamaya/inject/spi/InjectionUtilsTest.java
index 5164209..fee1a58 100644
--- 
a/modules/injection/injection-api/src/test/java/org/apache/tamaya/inject/spi/InjectionUtilsTest.java
+++ 
b/modules/injection/injection-api/src/test/java/org/apache/tamaya/inject/spi/InjectionUtilsTest.java
@@ -18,9 +18,12 @@
  */
 package org.apache.tamaya.inject.spi;
 
+import org.apache.tamaya.inject.api.Config;
+import org.apache.tamaya.inject.api.ConfigDefaultSections;
 import org.junit.Test;
 
 import java.lang.reflect.Field;
+import java.lang.reflect.Method;
 import java.util.List;
 
 import static org.assertj.core.api.Assertions.assertThat;
@@ -28,6 +31,27 @@ import static org.assertj.core.api.Assertions.assertThat;
 public class InjectionUtilsTest {
 
     @Test
+    public void getKeysMethod() {
+        class Klazz {
+            @Config({"val", "val2", "[vvv]"})
+            public void setValue(String field){}
+        }
+
+        Method method = Klazz.class.getMethods()[0];
+
+        List<String> foundKeys = InjectionUtils.getKeys(method);
+
+        assertThat(foundKeys).isNotNull()
+                
.contains("org.apache.tamaya.inject.spi.InjectionUtilsTest$1Klazz.val",
+                        
"org.apache.tamaya.inject.spi.InjectionUtilsTest$1Klazz.val2",
+                        "Klazz.val",
+                        "Klazz.val2",
+                        "val",
+                        "val2",
+                        "vvv");
+    }
+
+    @Test
     public void getKeysReturnsEmptyListForNonAnnotatedField() {
         class Klazz {
             public String field;
@@ -40,9 +64,62 @@ public class InjectionUtilsTest {
         List<String> foundKeys = InjectionUtils.getKeys(field);
 
         assertThat(foundKeys).isNotNull()
-                             
.contains("org.apache.tamaya.inject.spi.InjectionUtilsTest$1Klazz.field",
+                             
.contains("org.apache.tamaya.inject.spi.InjectionUtilsTest$2Klazz.field",
                                        "Klazz.field",
                                        "field");
     }
 
+    @Test
+    public void evaluateKeysWithSection() {
+        @ConfigDefaultSections("basic")
+        class Klazz {
+            public String field;
+            protected String protectedField;
+            private String privateField;
+        }
+
+        Field field = Klazz.class.getFields()[0];
+
+        List<String> foundKeys = InjectionUtils.evaluateKeys(field, 
Klazz.class.getAnnotation(ConfigDefaultSections.class));
+        assertThat(foundKeys).isNotNull()
+                .contains("basic.field",
+                        "field");
+    }
+
+    @Test
+    public void evaluateKeysWithSectionAndMemberAnnotation() {
+        @ConfigDefaultSections("basic")
+        class Klazz {
+            @Config({"val", "[absoluteVal]"})
+            public String field;
+            protected String protectedField;
+            private String privateField;
+        }
+
+        Field field = Klazz.class.getFields()[0];
+
+        List<String> foundKeys = InjectionUtils.evaluateKeys(field, 
Klazz.class.getAnnotation(ConfigDefaultSections.class),
+                field.getAnnotation(Config.class));
+        assertThat(foundKeys).isNotNull()
+                .contains("basic.val", "val",
+                        "absoluteVal");
+    }
+
+    @Test
+    public void evaluateKeysWithMemberAnnotation() {
+        class Klazz {
+            @Config({"val", "[absoluteVal]"})
+            public String field;
+            protected String protectedField;
+            private String privateField;
+        }
+
+        Field field = Klazz.class.getFields()[0];
+
+        List<String> foundKeys = InjectionUtils.evaluateKeys(field, null,
+                field.getAnnotation(Config.class));
+        assertThat(foundKeys).isNotNull()
+                .contains("Klazz.val", "val",
+                        "absoluteVal");
+    }
 }
\ No newline at end of file

Reply via email to