diff options
Diffstat (limited to 'config-application-package/src/test/java/com/yahoo/config/application/HostedOverrideProcessorComplexTest.java')
-rw-r--r-- | config-application-package/src/test/java/com/yahoo/config/application/HostedOverrideProcessorComplexTest.java | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/config-application-package/src/test/java/com/yahoo/config/application/HostedOverrideProcessorComplexTest.java b/config-application-package/src/test/java/com/yahoo/config/application/HostedOverrideProcessorComplexTest.java new file mode 100644 index 00000000000..902b4126a29 --- /dev/null +++ b/config-application-package/src/test/java/com/yahoo/config/application/HostedOverrideProcessorComplexTest.java @@ -0,0 +1,119 @@ +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 com.yahoo.io.IOUtils; +import org.custommonkey.xmlunit.XMLUnit; +import org.junit.Test; +import org.w3c.dom.Document; + +import javax.xml.transform.TransformerException; +import java.io.IOException; + +import static org.junit.Assert.assertEquals; + +public class HostedOverrideProcessorComplexTest { + + private static final String servicesFile = "src/test/resources/complex-app/services.xml"; + + static { + XMLUnit.setIgnoreWhitespace(true); + } + + @Test + public void testProdBetaUsWest2a() throws TransformerException, IOException { + String expected = + """ + <?xml version="1.0" encoding="UTF-8" standalone="no"?> + <services xmlns:deploy="vespa" xmlns:preprocess="properties" version="1.0"> + <container id="docsgateway" version="1.0"> + <nodes count="3"> + <resources disk="1800Gb" disk-speed="fast" memory="96Gb" storage-type="local" vcpu="48"/> + </nodes> + </container> + <container id="qrs" version="1.0"> + <nodes count="3" required="true"> + <resources disk="64Gb" memory="32Gb" vcpu="16"/> + </nodes> + <search/> + </container> + <container id="visitor" version="1.0"> + <nodes count="2"> + <resources disk="32Gb" memory="16Gb" vcpu="8"/> + </nodes> + <search/> + </container> + <content id="all" version="1.0"> + <nodes count="3" groups="3" required="true"> + <resources disk="1800Gb" disk-speed="fast" memory="96Gb" storage-type="local" vcpu="48"/> + </nodes> + <redundancy>1</redundancy> + </content> + <content id="filedocument" version="1.0"> + <nodes count="2" groups="2"> + <resources disk="32Gb" memory="8Gb" vcpu="4"/> + </nodes> + <redundancy>1</redundancy> + </content> + </services> + """; + assertOverride(InstanceName.from("beta1"), + Environment.prod, + RegionName.from("aws-us-west-2a"), + Tags.fromString("beta beta-prod beta-prod-cd"), + expected); + } + + @Test + public void testProdBetaUsEast1b() throws TransformerException, IOException { + String expected = + """ + <?xml version="1.0" encoding="UTF-8" standalone="no"?> + <services xmlns:deploy="vespa" xmlns:preprocess="properties" version="1.0"> + <container id="docsgateway" version="1.0"> + <nodes count="3"> + <resources disk="1800Gb" disk-speed="fast" memory="96Gb" storage-type="local" vcpu="48"/> + </nodes> + </container> + <container id="qrs" version="1.0"> + <nodes count="5" required="true"> + <resources disk="64Gb" memory="32Gb" vcpu="16"/> + </nodes> + <search/> + </container> + <container id="visitor" version="1.0"> + <nodes count="2"> + <resources disk="32Gb" memory="16Gb" vcpu="8"/> + </nodes> + <search/> + </container> + <content id="all" version="1.0"> + <nodes count="10" groups="10" required="true"> + <resources disk="1800Gb" disk-speed="fast" memory="96Gb" storage-type="local" vcpu="48"/> + </nodes> + <redundancy>1</redundancy> + </content> + <content id="filedocument" version="1.0"> + <nodes count="2" groups="2"> + <resources disk="32Gb" memory="8Gb" vcpu="4"/> + </nodes> + <redundancy>1</redundancy> + </content> + </services> + """; + assertOverride(InstanceName.from("beta1"), + Environment.prod, + RegionName.from("aws-us-east-1b"), + Tags.fromString("beta beta-prod beta-prod-cd"), + expected); + } + + private void assertOverride(InstanceName instance, Environment environment, RegionName region, Tags tags, String expected) throws TransformerException, IOException { + Document inputDoc = Xml.getDocument(IOUtils.createReader(servicesFile)); + Document newDoc = new OverrideProcessor(instance, environment, region, tags).process(inputDoc); + assertEquals(expected, Xml.documentAsString(newDoc, true)); + } + +} |