summaryrefslogtreecommitdiffstats
path: root/config-application-package/src/test/java/com/yahoo/config/application/HostedOverrideProcessorComplexTest.java
diff options
context:
space:
mode:
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.java119
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));
+ }
+
+}