// 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.junit.Test;
import org.w3c.dom.Document;
import javax.xml.transform.TransformerException;
import java.io.StringReader;
/**
* @author bratseth
*/
public class HostedOverrideProcessorTest {
private static final String input =
"""
""";
@Test
public void testParsingDefault() throws TransformerException {
String expected =
"""
""";
assertOverride(InstanceName.defaultName(),
Environment.test,
RegionName.defaultName(),
Tags.empty(),
expected);
}
@Test
public void testParsingEnvironmentAndRegion() throws TransformerException {
String expected =
"""
""";
assertOverride(InstanceName.defaultName(),
Environment.from("prod"),
RegionName.from("us-west"),
Tags.empty(),
expected);
}
@Test
public void testParsingSpecificTag() throws TransformerException {
String expected =
"" +
"" +
" " +
" " +
" " +
"";
assertOverride(InstanceName.defaultName(),
Environment.from("prod"),
RegionName.from("us-west"),
Tags.empty(),
expected);
}
@Test
public void testParsingInstance() throws TransformerException {
String expected =
"" +
"" +
" " +
" " +
" " +
"";
assertOverride(InstanceName.from("myinstance"),
Environment.from("prod"),
RegionName.from("us-west"),
Tags.empty(),
expected);
}
@Test
public void testParsingEnvironmentAndRegion2() throws TransformerException {
String expected =
"" +
"" +
" " +
" " +
" " +
"";
assertOverride(InstanceName.defaultName(),
Environment.from("prod"),
RegionName.from("us-east-3"),
Tags.empty(),
expected);
}
@Test
public void testParsingEnvironmentAndRegion3() throws TransformerException {
String expected =
"" +
"" +
" " +
" " +
" " +
"";
assertOverride(InstanceName.defaultName(),
Environment.from("perf"),
RegionName.from("us-east-3"),
Tags.empty(),
expected);
}
@Test
public void testParsingEnvironmentUnknownRegion() throws TransformerException {
String expected =
"" +
"" +
" " +
" " +
" " +
"";
assertOverride(InstanceName.defaultName(),
Environment.valueOf("prod"),
RegionName.from("unknown"),
Tags.empty(),
expected);
}
@Test
public void testParsingEnvironmentNoRegion() throws TransformerException {
String expected =
"" +
"" +
" " +
" " +
" " +
"";
assertOverride(InstanceName.defaultName(),
Environment.from("prod"),
RegionName.defaultName(),
Tags.empty(),
expected);
}
@Test
public void testParsingUnknownEnvironment() throws TransformerException {
String expected =
"" +
"" +
" " +
" " +
" " +
"";
assertOverride(InstanceName.defaultName(),
Environment.from("dev"),
RegionName.defaultName(),
Tags.empty(),
expected);
}
@Test
public void testParsingUnknownEnvironmentUnknownRegion() throws TransformerException {
String expected =
"" +
"" +
" " +
" " +
" " +
"";
assertOverride(InstanceName.defaultName(),
Environment.from("test"),
RegionName.from("us-west"),
Tags.empty(),
expected);
}
@Test
public void testParsingInheritEnvironment() throws TransformerException {
String expected =
"" +
"" +
" " +
" " +
" " +
"";
assertOverride(InstanceName.defaultName(),
Environment.from("staging"),
RegionName.from("us-west"),
Tags.empty(),
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);
}
}