create test for metastring

This commit is contained in:
dfsek
2021-07-21 14:31:21 -07:00
parent 73fd1c9edd
commit 57658d2268
3 changed files with 32 additions and 2 deletions

View File

@@ -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<String, Configuration> 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;
}
}

View File

@@ -13,3 +13,4 @@ map:
- metaTarget.yml:map2
one: ONE
two: TWO
string: "one-${metaTarget.yml:string.two}-${metaTarget.yml:string.three}-four-five-${metaTarget.yml:string.six}"

View File

@@ -10,3 +10,7 @@ map1:
five: FIVE
map2:
six: SIX
string:
two: two
three: three
six: six