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
