// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.config.application; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.InstanceName; import com.yahoo.config.provision.RegionName; import com.yahoo.config.provision.Tags; import org.junit.Test; import org.w3c.dom.Document; import java.io.File; import java.io.StringReader; /** * @author hmusum */ public class XmlPreprocessorTest { private static final File appDir = new File("src/test/resources/multienvapp"); private static final File services = new File(appDir, "services.xml"); @Test public void testPreProcessing() throws Exception { String expectedDev = """ 1 """; TestBase.assertDocument(expectedDev, new XmlPreProcessor(appDir, services, InstanceName.defaultName(), Environment.dev, RegionName.defaultName(), Tags.empty()).run()); // Difference from dev: node1 // Difference from dev: no TestBar String expectedStaging = """ 1 """; TestBase.assertDocument(expectedStaging, new XmlPreProcessor(appDir, services, InstanceName.defaultName(), Environment.staging, RegionName.defaultName(), Tags.empty()).run()); String expectedPerfUsWest = """ 1 """; TestBase.assertDocument(expectedPerfUsWest, new XmlPreProcessor(appDir, services, InstanceName.defaultName(), Environment.perf, RegionName.from("us-west"), Tags.empty()).run()); String expectedPerfUsEastAndCentral = """ 1 """; TestBase.assertDocument(expectedPerfUsEastAndCentral, new XmlPreProcessor(appDir, services, InstanceName.defaultName(), Environment.perf, RegionName.from("us-east"), Tags.empty()).run()); TestBase.assertDocument(expectedPerfUsEastAndCentral, new XmlPreProcessor(appDir, services, InstanceName.defaultName(), Environment.perf, RegionName.from("us-central"), Tags.empty()).run()); String expectedProdUsWest = """ 1 """; TestBase.assertDocument(expectedProdUsWest, new XmlPreProcessor(appDir, services, InstanceName.defaultName(), Environment.prod, RegionName.from("us-west"), Tags.empty()).run()); String expectedProdUsEastAndCentral = """ 1 """; TestBase.assertDocument(expectedProdUsEastAndCentral, new XmlPreProcessor(appDir, services, InstanceName.defaultName(), Environment.prod, RegionName.from("us-east"), Tags.empty()).run()); TestBase.assertDocument(expectedProdUsEastAndCentral, new XmlPreProcessor(appDir, services, InstanceName.defaultName(), Environment.prod, RegionName.from("us-central"), Tags.empty()).run()); } @Test public void testPropertiesWithOverlappingNames() throws Exception { String input = """ gamma-usnc1.dht.yahoo.com 4080 3600 36000 50000 50000000 0.01 0.91 ${lidspacecompaction_interval} ${lidspacecompaction_allowedlidbloat} ${lidspacecompaction_allowedlidbloatfactor} ${sherpa.host} ${sherpa.port} """; String expectedProd = """ 36000 50000000 0.91 gamma-usnc1.dht.yahoo.com 4080 """; Document docDev = (new XmlPreProcessor(appDir, new StringReader(input), InstanceName.defaultName(), Environment.prod, RegionName.defaultName(), Tags.empty()).run()); TestBase.assertDocument(expectedProd, docDev); } }