summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@oath.com>2018-11-23 12:07:48 +0100
committerGitHub <noreply@github.com>2018-11-23 12:07:48 +0100
commit5b66c8178f76bca3bef778190a4bfdf61f7bffaa (patch)
treec75296ab65b193aa3585d609aca32a0a4408857d
parent561a1530da89f48dbe01a4a1757cbdb5fcd8c3a8 (diff)
parentb6b3f49adcd9868e6e8bc0f2eb633b8802370ca5 (diff)
Merge pull request #7687 from vespa-engine/bratseth/add-a-test
Add a test
-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.java136
-rw-r--r--config-application-package/src/test/java/com/yahoo/config/application/OverrideProcessorTest.java3
-rw-r--r--container-search/src/main/java/com/yahoo/search/pagetemplates/result/PageTemplatesXmlRenderer.java1
4 files changed, 139 insertions, 3 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..c450e478c85
--- /dev/null
+++ b/config-application-package/src/test/java/com/yahoo/config/application/MultiOverrideProcessorTest.java
@@ -0,0 +1,136 @@
+// 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;
+
+/**
+ * Demonstrates that only the most specific match is retained and that this can be overridden by using ids.
+ *
+ * @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" +
+ " </container>\n" +
+ "</services>\n";
+
+ private static final String inputWithIds =
+ "<?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 id='1'>\n" +
+ " <id>comp-B-item-0</id>\n" +
+ " <type></type>\n" +
+ " </item>\n" +
+ " <item id='2' 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 id='3'>\n" +
+ " <id>comp-B-item-2</id>\n" +
+ " <type></type>\n" +
+ " </item>\n" +
+ " </resource>\n" +
+ " </config>\n" +
+ " </component>\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-1</id>\n" +
+ " <type></type>\n" +
+ " </item>\n" +
+ " </resource>\n" +
+ " </config>\n" +
+ " </component>\n" +
+ " </container>\n" +
+ "</services>";
+ assertOverride(Environment.dev, RegionName.defaultName(), expected);
+ }
+
+ @Test
+ public void testParsingDevWithIds() 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 id='1'>\n" +
+ " <id>comp-B-item-0</id>\n" +
+ " <type></type>\n" +
+ " </item>\n" +
+ " <item id='2'>\n" +
+ " <id>comp-B-item-1</id>\n" +
+ " <type></type>\n" +
+ " </item>\n" +
+ " <item id='3'>\n" +
+ " <id>comp-B-item-2</id>\n" +
+ " <type></type>\n" +
+ " </item>\n" +
+ " </resource>\n" +
+ " </config>\n" +
+ " </component>\n" +
+ " </container>\n" +
+ "</services>";
+ assertOverrideWithIds(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);
+ }
+
+ private void assertOverrideWithIds(Environment environment, RegionName region, String expected) throws TransformerException {
+ Document inputDoc = Xml.getDocument(new StringReader(inputWithIds));
+ 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>" +
diff --git a/container-search/src/main/java/com/yahoo/search/pagetemplates/result/PageTemplatesXmlRenderer.java b/container-search/src/main/java/com/yahoo/search/pagetemplates/result/PageTemplatesXmlRenderer.java
index b7d7188e77e..92e4bb7e5b8 100644
--- a/container-search/src/main/java/com/yahoo/search/pagetemplates/result/PageTemplatesXmlRenderer.java
+++ b/container-search/src/main/java/com/yahoo/search/pagetemplates/result/PageTemplatesXmlRenderer.java
@@ -179,7 +179,6 @@ public class PageTemplatesXmlRenderer extends AsynchronousSectionedRenderer<Resu
private void renderHitGroup(XMLWriter writer, HitGroup hit) {
if (hit.types().contains("section")) {
-
renderSection(writer, hit); // Renders /result/section
}
else if (hit.types().contains("meta")) {