summaryrefslogtreecommitdiffstats
path: root/config-application-package/src/test/java
diff options
context:
space:
mode:
Diffstat (limited to 'config-application-package/src/test/java')
-rw-r--r--config-application-package/src/test/java/com/yahoo/config/application/HostedOverrideProcessorTagsTest.java124
-rw-r--r--config-application-package/src/test/java/com/yahoo/config/application/HostedOverrideProcessorTest.java86
-rw-r--r--config-application-package/src/test/java/com/yahoo/config/application/MultiOverrideProcessorTest.java5
-rw-r--r--config-application-package/src/test/java/com/yahoo/config/application/OverrideProcessorTest.java13
-rw-r--r--config-application-package/src/test/java/com/yahoo/config/application/XmlPreprocessorTest.java47
5 files changed, 248 insertions, 27 deletions
diff --git a/config-application-package/src/test/java/com/yahoo/config/application/HostedOverrideProcessorTagsTest.java b/config-application-package/src/test/java/com/yahoo/config/application/HostedOverrideProcessorTagsTest.java
new file mode 100644
index 00000000000..8d7431d33b6
--- /dev/null
+++ b/config-application-package/src/test/java/com/yahoo/config/application/HostedOverrideProcessorTagsTest.java
@@ -0,0 +1,124 @@
+// 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.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 HostedOverrideProcessorTagsTest {
+
+ static {
+ XMLUnit.setIgnoreWhitespace(true);
+ }
+
+ private static final String input =
+ "<?xml version='1.0' encoding='UTF-8' standalone='no'?>" +
+ "<services xmlns:deploy='vespa' xmlns:preprocess='?' version='1.0'>" +
+ " <container id='foo' version='1.0'>" +
+ " <nodes count='5' deploy:tags='a' deploy:environment='perf'/>" +
+ " <nodes count='10' deploy:tags='a b'/>" +
+ " <nodes count='20' deploy:tags='c'/>" +
+ " <search deploy:tags='b'/>" +
+ " <document-api deploy:tags='d'/>" +
+ " </container>" +
+ "</services>";
+
+ @Test
+ public void testParsingTagAPerf() throws TransformerException {
+ String expected =
+ "<?xml version='1.0' encoding='UTF-8' standalone='no'?>" +
+ "<services xmlns:deploy='vespa' xmlns:preprocess='?' version='1.0'>" +
+ " <container id='foo' version='1.0'>" +
+ " <nodes count='5' required='true'/>" +
+ " </container>" +
+ "</services>";
+ assertOverride(InstanceName.defaultName(),
+ Environment.perf,
+ RegionName.defaultName(),
+ Tags.fromString("a"),
+ expected);
+ }
+
+ @Test
+ public void testParsingTagAProd() throws TransformerException {
+ String expected =
+ "<?xml version='1.0' encoding='UTF-8' standalone='no'?>" +
+ "<services xmlns:deploy='vespa' xmlns:preprocess='?' version='1.0'>" +
+ " <container id='foo' version='1.0'>" +
+ " <nodes count='10' required='true'/>" +
+ " </container>" +
+ "</services>";
+ assertOverride(InstanceName.defaultName(),
+ Environment.prod,
+ RegionName.defaultName(),
+ Tags.fromString("a"),
+ expected);
+ }
+
+ @Test
+ public void testParsingTagB() throws TransformerException {
+ String expected =
+ "<?xml version='1.0' encoding='UTF-8' standalone='no'?>" +
+ "<services xmlns:deploy='vespa' xmlns:preprocess='?' version='1.0'>" +
+ " <container id='foo' version='1.0'>" +
+ " <nodes count='10' required='true'/>" +
+ " <search/>" +
+ " </container>" +
+ "</services>";
+ assertOverride(InstanceName.defaultName(),
+ Environment.prod,
+ RegionName.defaultName(),
+ Tags.fromString("b"),
+ expected);
+ }
+
+ @Test
+ public void testParsingTagC() throws TransformerException {
+ String expected =
+ "<?xml version='1.0' encoding='UTF-8' standalone='no'?>" +
+ "<services xmlns:deploy='vespa' xmlns:preprocess='?' version='1.0'>" +
+ " <container id='foo' version='1.0'>" +
+ " <nodes count='20' required='true'/>" +
+ " </container>" +
+ "</services>";
+ assertOverride(InstanceName.defaultName(),
+ Environment.prod,
+ RegionName.defaultName(),
+ Tags.fromString("c"),
+ expected);
+ }
+
+ @Test
+ public void testParsingTagCAndD() throws TransformerException {
+ String expected =
+ "<?xml version='1.0' encoding='UTF-8' standalone='no'?>" +
+ "<services xmlns:deploy='vespa' xmlns:preprocess='?' version='1.0'>" +
+ " <container id='foo' version='1.0'>" +
+ " <nodes count='20' required='true'/>" +
+ " <document-api/>" +
+ " </container>" +
+ "</services>";
+ assertOverride(InstanceName.defaultName(),
+ Environment.prod,
+ RegionName.defaultName(),
+ Tags.fromString("c d"),
+ expected);
+ }
+
+ private void assertOverride(InstanceName instance, Environment environment, RegionName region, Tags tags, String expected) throws TransformerException {
+ Document inputDoc = Xml.getDocument(new StringReader(input));
+ Document newDoc = new OverrideProcessor(instance, environment, region, tags).process(inputDoc);
+ TestBase.assertDocument(expected, newDoc);
+ }
+
+}
diff --git a/config-application-package/src/test/java/com/yahoo/config/application/HostedOverrideProcessorTest.java b/config-application-package/src/test/java/com/yahoo/config/application/HostedOverrideProcessorTest.java
index 1a4dab01930..451c7a3c217 100644
--- a/config-application-package/src/test/java/com/yahoo/config/application/HostedOverrideProcessorTest.java
+++ b/config-application-package/src/test/java/com/yahoo/config/application/HostedOverrideProcessorTest.java
@@ -4,6 +4,7 @@ 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.custommonkey.xmlunit.XMLUnit;
import org.junit.Test;
import org.w3c.dom.Document;
@@ -14,6 +15,7 @@ import javax.xml.stream.XMLStreamException;
import javax.xml.transform.TransformerException;
import java.io.IOException;
import java.io.StringReader;
+import java.util.List;
/**
* @author bratseth
@@ -48,7 +50,11 @@ public class HostedOverrideProcessorTest {
" <nodes count='1'/>" +
" </container>" +
"</services>";
- assertOverride(Environment.test, RegionName.defaultName(), expected);
+ assertOverride(InstanceName.defaultName(),
+ Environment.test,
+ RegionName.defaultName(),
+ Tags.empty(),
+ expected);
}
@Test
@@ -60,7 +66,27 @@ public class HostedOverrideProcessorTest {
" <nodes count='4' required='true'/>" +
" </container>" +
"</services>";
- assertOverride(Environment.from("prod"), RegionName.from("us-west"), expected);
+ assertOverride(InstanceName.defaultName(),
+ Environment.from("prod"),
+ RegionName.from("us-west"),
+ Tags.empty(),
+ expected);
+ }
+
+ @Test
+ public void testParsingSpecificTag() throws TransformerException {
+ String expected =
+ "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>" +
+ "<services xmlns:deploy=\"vespa\" xmlns:preprocess=\"?\" version=\"1.0\">" +
+ " <container id=\"foo\" version=\"1.0\">" +
+ " <nodes count='4' required='true'/>" +
+ " </container>" +
+ "</services>";
+ assertOverride(InstanceName.defaultName(),
+ Environment.from("prod"),
+ RegionName.from("us-west"),
+ Tags.empty(),
+ expected);
}
@Test
@@ -72,7 +98,11 @@ public class HostedOverrideProcessorTest {
" <nodes count='1' required='true'/>" +
" </container>" +
"</services>";
- assertOverride(InstanceName.from("myinstance"), Environment.from("prod"), RegionName.from("us-west"), expected);
+ assertOverride(InstanceName.from("myinstance"),
+ Environment.from("prod"),
+ RegionName.from("us-west"),
+ Tags.empty(),
+ expected);
}
@Test
@@ -84,7 +114,11 @@ public class HostedOverrideProcessorTest {
" <nodes count='5' flavor='v-8-8-100' required='true'/>" +
" </container>" +
"</services>";
- assertOverride(Environment.from("prod"), RegionName.from("us-east-3"), expected);
+ assertOverride(InstanceName.defaultName(),
+ Environment.from("prod"),
+ RegionName.from("us-east-3"),
+ Tags.empty(),
+ expected);
}
@Test
@@ -96,7 +130,11 @@ public class HostedOverrideProcessorTest {
" <nodes count='3' required='true'/>" +
" </container>" +
"</services>";
- assertOverride(Environment.from("perf"), RegionName.from("us-east-3"), expected);
+ assertOverride(InstanceName.defaultName(),
+ Environment.from("perf"),
+ RegionName.from("us-east-3"),
+ Tags.empty(),
+ expected);
}
@Test
@@ -108,7 +146,11 @@ public class HostedOverrideProcessorTest {
" <nodes count='3' flavor='v-4-8-100' required='true'/>" +
" </container>" +
"</services>";
- assertOverride(Environment.valueOf("prod"), RegionName.from("unknown"), expected);
+ assertOverride(InstanceName.defaultName(),
+ Environment.valueOf("prod"),
+ RegionName.from("unknown"),
+ Tags.empty(),
+ expected);
}
@Test
@@ -120,7 +162,11 @@ public class HostedOverrideProcessorTest {
" <nodes count='3' flavor='v-4-8-100' required='true'/>" +
" </container>" +
"</services>";
- assertOverride(Environment.from("prod"), RegionName.defaultName(), expected);
+ assertOverride(InstanceName.defaultName(),
+ Environment.from("prod"),
+ RegionName.defaultName(),
+ Tags.empty(),
+ expected);
}
@Test
@@ -132,7 +178,11 @@ public class HostedOverrideProcessorTest {
" <nodes count='1'/>" +
" </container>" +
"</services>";
- assertOverride(Environment.from("dev"), RegionName.defaultName(), expected);
+ assertOverride(InstanceName.defaultName(),
+ Environment.from("dev"),
+ RegionName.defaultName(),
+ Tags.empty(),
+ expected);
}
@Test
@@ -144,7 +194,11 @@ public class HostedOverrideProcessorTest {
" <nodes count='1'/>" +
" </container>" +
"</services>";
- assertOverride(Environment.from("test"), RegionName.from("us-west"), expected);
+ assertOverride(InstanceName.defaultName(),
+ Environment.from("test"),
+ RegionName.from("us-west"),
+ Tags.empty(),
+ expected);
}
@Test
@@ -156,16 +210,16 @@ public class HostedOverrideProcessorTest {
" <nodes count='2' required='true'/>" +
" </container>" +
"</services>";
- assertOverride(Environment.from("staging"), RegionName.from("us-west"), expected);
- }
-
- private void assertOverride(Environment environment, RegionName region, String expected) throws TransformerException {
- assertOverride(InstanceName.from("default"), environment, region, expected);
+ assertOverride(InstanceName.defaultName(),
+ Environment.from("staging"),
+ RegionName.from("us-west"),
+ Tags.empty(),
+ expected);
}
- private void assertOverride(InstanceName instance, Environment environment, RegionName region, String expected) throws TransformerException {
+ private void assertOverride(InstanceName instance, Environment environment, RegionName region, Tags tags, String expected) throws TransformerException {
Document inputDoc = Xml.getDocument(new StringReader(input));
- Document newDoc = new OverrideProcessor(instance, environment, region).process(inputDoc);
+ Document newDoc = new OverrideProcessor(instance, environment, region, tags).process(inputDoc);
TestBase.assertDocument(expected, newDoc);
}
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
index 44bcb12957a..debde6c1438 100644
--- 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
@@ -4,6 +4,7 @@ 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.custommonkey.xmlunit.XMLUnit;
import org.junit.Test;
import org.w3c.dom.Document;
@@ -124,13 +125,13 @@ public class MultiOverrideProcessorTest {
private void assertOverride(Environment environment, RegionName region, String expected) throws TransformerException {
Document inputDoc = Xml.getDocument(new StringReader(input));
- Document newDoc = new OverrideProcessor(InstanceName.from("default"), environment, region).process(inputDoc);
+ Document newDoc = new OverrideProcessor(InstanceName.from("default"), environment, region, Tags.empty()).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(InstanceName.from("default"), environment, region).process(inputDoc);
+ Document newDoc = new OverrideProcessor(InstanceName.from("default"), environment, region, Tags.empty()).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 e9ee7c97876..150999390d8 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
@@ -4,6 +4,7 @@ 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.custommonkey.xmlunit.XMLUnit;
import org.junit.Test;
import org.w3c.dom.Document;
@@ -332,7 +333,10 @@ public class OverrideProcessorTest {
" </admin>" +
"</services>";
Document inputDoc = Xml.getDocument(new StringReader(in));
- new OverrideProcessor(InstanceName.from("default"), Environment.from("prod"), RegionName.from("us-west")).process(inputDoc);
+ new OverrideProcessor(InstanceName.from("default"),
+ Environment.from("prod"),
+ RegionName.from("us-west"),
+ Tags.empty()).process(inputDoc);
}
@Test(expected = IllegalArgumentException.class)
@@ -344,7 +348,10 @@ public class OverrideProcessorTest {
" </admin>" +
"</services>";
Document inputDoc = Xml.getDocument(new StringReader(in));
- new OverrideProcessor(InstanceName.from("default"), Environment.defaultEnvironment(), RegionName.from("us-west")).process(inputDoc);
+ new OverrideProcessor(InstanceName.from("default"),
+ Environment.defaultEnvironment(),
+ RegionName.from("us-west"),
+ Tags.empty()).process(inputDoc);
}
@Test
@@ -399,7 +406,7 @@ public class OverrideProcessorTest {
private void assertOverride(String input, Environment environment, RegionName region, String expected) throws TransformerException {
Document inputDoc = Xml.getDocument(new StringReader(input));
- Document newDoc = new OverrideProcessor(InstanceName.from("default"), environment, region).process(inputDoc);
+ Document newDoc = new OverrideProcessor(InstanceName.from("default"), environment, region, Tags.empty()).process(inputDoc);
TestBase.assertDocument(expected, newDoc);
}
diff --git a/config-application-package/src/test/java/com/yahoo/config/application/XmlPreprocessorTest.java b/config-application-package/src/test/java/com/yahoo/config/application/XmlPreprocessorTest.java
index 92c2c2a820f..0da94b69e58 100644
--- a/config-application-package/src/test/java/com/yahoo/config/application/XmlPreprocessorTest.java
+++ b/config-application-package/src/test/java/com/yahoo/config/application/XmlPreprocessorTest.java
@@ -4,11 +4,13 @@ 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;
+import java.util.Set;
/**
* @author hmusum
@@ -44,7 +46,13 @@ public class XmlPreprocessorTest {
" </nodes>\n" +
" </container>\n" +
"</services>";
- TestBase.assertDocument(expectedDev, new XmlPreProcessor(appDir, services, InstanceName.defaultName(), Environment.dev, RegionName.defaultName()).run());
+ TestBase.assertDocument(expectedDev,
+ new XmlPreProcessor(appDir,
+ services,
+ InstanceName.defaultName(),
+ Environment.dev,
+ RegionName.defaultName(),
+ Tags.empty()).run());
String expectedStaging =
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>" +
@@ -70,7 +78,13 @@ public class XmlPreprocessorTest {
" </nodes>\n" +
" </container>\n" +
"</services>";
- TestBase.assertDocument(expectedStaging, new XmlPreProcessor(appDir, services, InstanceName.defaultName(), Environment.staging, RegionName.defaultName()).run());
+ TestBase.assertDocument(expectedStaging,
+ new XmlPreProcessor(appDir,
+ services,
+ InstanceName.defaultName(),
+ Environment.staging,
+ RegionName.defaultName(),
+ Tags.empty()).run());
String expectedUsWest =
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>" +
@@ -104,7 +118,13 @@ public class XmlPreprocessorTest {
" </nodes>\n" +
" </container>\n" +
"</services>";
- TestBase.assertDocument(expectedUsWest, new XmlPreProcessor(appDir, services, InstanceName.defaultName(), Environment.prod, RegionName.from("us-west")).run());
+ TestBase.assertDocument(expectedUsWest,
+ new XmlPreProcessor(appDir,
+ services,
+ InstanceName.defaultName(),
+ Environment.prod,
+ RegionName.from("us-west"),
+ Tags.empty()).run());
String expectedUsEastAndCentral =
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>" +
@@ -138,9 +158,19 @@ public class XmlPreprocessorTest {
" </container>\n" +
"</services>";
TestBase.assertDocument(expectedUsEastAndCentral,
- new XmlPreProcessor(appDir, services, InstanceName.defaultName(), Environment.prod, RegionName.from("us-east")).run());
+ new XmlPreProcessor(appDir,
+ services,
+ InstanceName.defaultName(),
+ Environment.prod,
+ RegionName.from("us-east"),
+ Tags.empty()).run());
TestBase.assertDocument(expectedUsEastAndCentral,
- new XmlPreProcessor(appDir, services, InstanceName.defaultName(), Environment.prod, RegionName.from("us-central")).run());
+ new XmlPreProcessor(appDir,
+ services,
+ InstanceName.defaultName(),
+ Environment.prod,
+ RegionName.from("us-central"),
+ Tags.empty()).run());
}
@Test
@@ -184,7 +214,12 @@ public class XmlPreprocessorTest {
" <adminserver hostalias=\"node0\"/>" +
" </admin>" +
"</services>";
- Document docDev = (new XmlPreProcessor(appDir, new StringReader(input), InstanceName.defaultName(), Environment.prod, RegionName.defaultName()).run());
+ Document docDev = (new XmlPreProcessor(appDir,
+ new StringReader(input),
+ InstanceName.defaultName(),
+ Environment.prod,
+ RegionName.defaultName(),
+ Tags.empty()).run());
TestBase.assertDocument(expectedProd, docDev);
}