From 57658d226856dcd324aaef0e7b8f3a3e6e8c781b Mon Sep 17 00:00:00 2001 From: dfsek Date: Wed, 21 Jul 2021 14:31:21 -0700 Subject: [PATCH] create test for metastring --- .../src/test/java/MetaTest.java | 25 +++++++++++++++++++ .../src/test/resources/meta.yml | 3 ++- .../src/test/resources/metaTarget.yml | 6 ++++- 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/common/implementation/src/test/java/MetaTest.java b/common/implementation/src/test/java/MetaTest.java index 2d00657be..84ca5443d 100644 --- a/common/implementation/src/test/java/MetaTest.java +++ b/common/implementation/src/test/java/MetaTest.java @@ -6,6 +6,7 @@ import com.dfsek.tectonic.yaml.YamlConfiguration; import com.dfsek.terra.api.config.meta.Meta; import com.dfsek.terra.config.preprocessor.MetaListLikePreprocessor; import com.dfsek.terra.config.preprocessor.MetaMapPreprocessor; +import com.dfsek.terra.config.preprocessor.MetaStringPreprocessor; import com.dfsek.terra.config.preprocessor.MetaValuePreprocessor; import org.junit.jupiter.api.Test; @@ -59,4 +60,28 @@ public class MetaTest { @Value("map") private @Meta Map<@Meta String, @Meta String> map; } + + @Test + public void testMetaString() { + Configuration meta = new YamlConfiguration(MetaTest.class.getResourceAsStream("/meta.yml"), "meta.yml"); + Configuration metaTarget = new YamlConfiguration(MetaTest.class.getResourceAsStream("/metaTarget.yml"), "metaTarget.yml"); + + Map configurationMap = new HashMap<>(); + + configurationMap.put(meta.getName(), meta); + configurationMap.put(metaTarget.getName(), metaTarget); + + ConfigLoader loader = new ConfigLoader(); + loader.registerPreprocessor(Meta.class, new MetaValuePreprocessor(configurationMap)); + loader.registerPreprocessor(Meta.class, new MetaListLikePreprocessor(configurationMap)); + loader.registerPreprocessor(Meta.class, new MetaMapPreprocessor(configurationMap)); + loader.registerPreprocessor(Meta.class, new MetaStringPreprocessor(configurationMap)); + + System.out.println(loader.load(new MetaStringConfig(), meta).string); + } + + private static final class MetaStringConfig implements ConfigTemplate { + @Value("string") + private @Meta String string; + } } diff --git a/common/implementation/src/test/resources/meta.yml b/common/implementation/src/test/resources/meta.yml index e07ed2631..8a629da42 100644 --- a/common/implementation/src/test/resources/meta.yml +++ b/common/implementation/src/test/resources/meta.yml @@ -12,4 +12,5 @@ map: - metaTarget.yml:map1 - metaTarget.yml:map2 one: ONE - two: TWO \ No newline at end of file + two: TWO +string: "one-${metaTarget.yml:string.two}-${metaTarget.yml:string.three}-four-five-${metaTarget.yml:string.six}" \ No newline at end of file diff --git a/common/implementation/src/test/resources/metaTarget.yml b/common/implementation/src/test/resources/metaTarget.yml index 50bf4d807..74429a5c3 100644 --- a/common/implementation/src/test/resources/metaTarget.yml +++ b/common/implementation/src/test/resources/metaTarget.yml @@ -9,4 +9,8 @@ map1: four: FOUR five: FIVE map2: - six: SIX \ No newline at end of file + six: SIX +string: + two: two + three: three + six: six \ No newline at end of file