aboutsummaryrefslogtreecommitdiffstats
path: root/config-application-package
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@oath.com>2018-11-18 22:53:10 +0100
committerJon Bratseth <bratseth@oath.com>2018-11-18 22:53:10 +0100
commita3af55762932f6e7dc4100bcb2490f25a8e84555 (patch)
tree670df46fffe708475809613d839e7fc3974f34df /config-application-package
parent31a7f27dcf8626f3b8e93b38d810591dd56bfc8e (diff)
Add a test
Diffstat (limited to 'config-application-package')
-rw-r--r--config-application-package/src/main/java/com/yahoo/config/application/XmlPreProcessor.java2
-rw-r--r--config-application-package/src/test/java/com/yahoo/config/application/MultiOverrideProcessorTest.java84
-rw-r--r--config-application-package/src/test/java/com/yahoo/config/application/OverrideProcessorTest.java3
3 files changed, 87 insertions, 2 deletions
diff --git a/config-application-package/src/main/java/com/yahoo/config/application/XmlPreProcessor.java b/config-application-package/src/main/java/com/yahoo/config/application/XmlPreProcessor.java
index 0bb160319c0..261a684353b 100644
--- a/config-application-package/src/main/java/com/yahoo/config/application/XmlPreProcessor.java
+++ b/config-application-package/src/main/java/com/yahoo/config/application/XmlPreProcessor.java
@@ -61,7 +61,7 @@ public class XmlPreProcessor {
return input;
}
- private List<PreProcessor> setupChain() throws IOException {
+ private List<PreProcessor> setupChain() {
List<PreProcessor> chain = new ArrayList<>();
chain.add(new IncludeProcessor(applicationDir));
chain.add(new OverrideProcessor(environment, region));
diff --git a/config-application-package/src/test/java/com/yahoo/config/application/MultiOverrideProcessorTest.java b/config-application-package/src/test/java/com/yahoo/config/application/MultiOverrideProcessorTest.java
new file mode 100644
index 00000000000..67f49aae082
--- /dev/null
+++ b/config-application-package/src/test/java/com/yahoo/config/application/MultiOverrideProcessorTest.java
@@ -0,0 +1,84 @@
+// Copyright 2017 Yahoo Holdings. 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.RegionName;
+import org.custommonkey.xmlunit.XMLUnit;
+import org.junit.Test;
+import org.w3c.dom.Document;
+
+import javax.xml.transform.TransformerException;
+import java.io.StringReader;
+
+/**
+ * @author bratseth
+ */
+public class MultiOverrideProcessorTest {
+
+ static {
+ XMLUnit.setIgnoreWhitespace(true);
+ }
+
+ private static final String input =
+ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
+ "<services version=\"1.0\" xmlns:deploy=\"vespa\">\n" +
+ " <container id='qrserver' version='1.0'>\n" +
+ " <component id=\"comp-B\" class=\"com.yahoo.ls.MyComponent\" bundle=\"lsbe-hv\">\n" +
+ " <config name=\"ls.config.resource-pool\">\n" +
+ " <resource>\n" +
+ " <item>\n" +
+ " <id>comp-B-item-0</id>\n" +
+ " <type></type>\n" +
+ " </item>\n" +
+ " <item deploy:environment=\"dev perf test staging prod\" deploy:region=\"us-west-1 us-east-3\">\n" +
+ " <id>comp-B-item-1</id>\n" +
+ " <type></type>\n" +
+ " </item>\n" +
+ " <item>\n" +
+ " <id>comp-B-item-2</id>\n" +
+ " <type></type>\n" +
+ " </item>\n" +
+ " </resource>\n" +
+ " </config>\n" +
+ " </component>\n" +
+ " <nodes deploy:environment=\"dev\" count=\"1\"/>\n" +
+ " </container>\n" +
+ "</services>\n";
+
+ @Test
+ public void testParsingDev() throws TransformerException {
+ String expected =
+ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
+ "<services version=\"1.0\" xmlns:deploy=\"vespa\">\n" +
+ " <container id='qrserver' version='1.0'>\n" +
+ " <component id=\"comp-B\" class=\"com.yahoo.ls.MyComponent\" bundle=\"lsbe-hv\">\n" +
+ " <config name=\"ls.config.resource-pool\">\n" +
+ " <resource>\n" +
+ " <item>\n" +
+ " <id>comp-B-item-0</id>\n" +
+ " <type></type>\n" +
+ " </item>\n" +
+ " <item>\n" +
+ " <id>comp-B-item-1</id>\n" +
+ " <type></type>\n" +
+ " </item>\n" +
+ " <item>\n" +
+ " <id>comp-B-item-2</id>\n" +
+ " <type></type>\n" +
+ " </item>\n" +
+ " </resource>\n" +
+ " </config>\n" +
+ " </component>\n" +
+ " <nodes count=\"1\"/>\n" +
+ " </container>\n" +
+ "</services>";
+ assertOverride(Environment.dev, RegionName.defaultName(), expected);
+ }
+
+ private void assertOverride(Environment environment, RegionName region, String expected) throws TransformerException {
+ Document inputDoc = Xml.getDocument(new StringReader(input));
+ Document newDoc = new OverrideProcessor(environment, region).process(inputDoc);
+ TestBase.assertDocument(expected, newDoc);
+ }
+
+}
diff --git a/config-application-package/src/test/java/com/yahoo/config/application/OverrideProcessorTest.java b/config-application-package/src/test/java/com/yahoo/config/application/OverrideProcessorTest.java
index 62e6671120b..e4690418847 100644
--- a/config-application-package/src/test/java/com/yahoo/config/application/OverrideProcessorTest.java
+++ b/config-application-package/src/test/java/com/yahoo/config/application/OverrideProcessorTest.java
@@ -38,7 +38,7 @@ public class OverrideProcessorTest {
" <document mode='index' type='music'/>\n" +
" <document type='music2' mode='index' />\n" +
" <document deploy:environment='prod' deploy:region='us-east-3' mode='index' type='music'/>\n" +
- " <document deploy:environment='prod' deploy:region='us-east-3' mode='index' type='music2'/>\n" +
+ " <document deploy:environment='staging prod' deploy:region='us-east-3' mode='index' type='music2'/>\n" +
" <document deploy:environment='prod' mode='index' type='music3'/>\n" +
" <document deploy:environment='prod' deploy:region='us-west' mode='index' type='music4'/>\n" +
" </documents>" +
@@ -272,6 +272,7 @@ public class OverrideProcessorTest {
" <redundancy>1</redundancy>" +
" <documents>" +
" <document mode='index' type='music'/>\n" +
+ " <document mode='index' type='music2'/>\n" +
" <document type='music2' mode='index' />\n" +
" </documents>" +
" <nodes>" +