add metalist test

This commit is contained in:
dfsek
2021-07-20 21:58:43 -07:00
parent 90e60ca6aa
commit f27e732b39
3 changed files with 50 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
import com.dfsek.tectonic.annotations.Value;
import com.dfsek.tectonic.config.ConfigTemplate;
import com.dfsek.tectonic.config.Configuration;
import com.dfsek.tectonic.loading.ConfigLoader;
import com.dfsek.tectonic.yaml.YamlConfiguration;
import com.dfsek.terra.api.config.meta.Meta;
import com.dfsek.terra.config.preprocessor.MetaValuePreprocessor;
import org.junit.jupiter.api.Test;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MetaTest {
@Test
public void testMetaList() {
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.load(new ConfigTest(), meta).list.forEach(System.out::println);
}
private static final class ConfigTest implements ConfigTemplate {
@Value("list")
private @Meta List<@Meta String> list;
}
}

View File

@@ -0,0 +1,9 @@
list:
- ONE
- "<< metaTarget.yml:list"
- FOUR
- FIVE
- SIX
- "<< metaTarget.yml:list2"
- NINE
- TEN

View File

@@ -0,0 +1,6 @@
list:
- TWO
- THREE
list2:
- SEVEN
- EIGHT