diff options
Diffstat (limited to 'config-model-api/src/test/java')
2 files changed, 50 insertions, 0 deletions
diff --git a/config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecTest.java b/config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecTest.java index 5073c6b9fb2..dfe8b324d1c 100644 --- a/config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecTest.java +++ b/config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecTest.java @@ -3,6 +3,7 @@ package com.yahoo.config.application.api; import com.google.common.collect.ImmutableSet; import com.yahoo.config.application.api.xml.DeploymentSpecXmlReader; +import com.yahoo.config.provision.CloudAccount; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.InstanceName; import com.yahoo.config.provision.RegionName; @@ -1509,6 +1510,27 @@ public class DeploymentSpecTest { "</deployment>").deployableHashCode()); } + @Test + public void cloudAccount() { + StringReader r = new StringReader( + "<deployment version='1.0'>" + + " <instance id='beta'>" + + " <prod cloud-account='219876543210'>" + + " <region>us-west-1</region>" + + " </prod>" + + " </instance>" + + " <instance id='main'>" + + " <prod cloud-account='012345678912'>" + + " <region>us-east-1</region>" + + " </prod>" + + " </instance>" + + "</deployment>" + ); + DeploymentSpec spec = DeploymentSpec.fromXml(r); + assertEquals(Optional.of(new CloudAccount("219876543210")), spec.requireInstance("beta").cloudAccount(Environment.prod, RegionName.from("us-east-1"))); + assertEquals(Optional.of(new CloudAccount("012345678912")), spec.requireInstance("main").cloudAccount(Environment.prod, RegionName.from("us-west-1"))); + } + private static void assertInvalid(String deploymentSpec, String errorMessagePart) { assertInvalid(deploymentSpec, errorMessagePart, new ManualClock()); } diff --git a/config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecWithoutInstanceTest.java b/config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecWithoutInstanceTest.java index efed8ecc06c..8baeeb79441 100644 --- a/config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecWithoutInstanceTest.java +++ b/config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecWithoutInstanceTest.java @@ -2,6 +2,7 @@ package com.yahoo.config.application.api; import com.google.common.collect.ImmutableSet; +import com.yahoo.config.provision.CloudAccount; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.RegionName; import org.junit.Test; @@ -702,6 +703,33 @@ public class DeploymentSpecWithoutInstanceTest { assertEquals(Set.of("us-east", "us-west"), endpointRegions("default", spec)); } + @Test + public void productionSpecWithCloudAccount() { + StringReader r = new StringReader( + "<deployment version='1.0'>" + + " <prod cloud-account='012345678912'>" + + " <region cloud-account='219876543210'>us-east-1</region>" + + " <region>us-west-1</region>" + + " </prod>" + + "</deployment>" + ); + DeploymentSpec spec = DeploymentSpec.fromXml(r); + assertEquals(Optional.of(new CloudAccount("219876543210")), spec.requireInstance("default").cloudAccount(Environment.prod, RegionName.from("us-east-1"))); + assertEquals(Optional.of(new CloudAccount("012345678912")), spec.requireInstance("default").cloudAccount(Environment.prod, RegionName.from("us-west-1"))); + + r = new StringReader( + "<deployment version='1.0'>" + + " <prod>" + + " <region cloud-account='219876543210'>us-east-1</region>" + + " <region>us-west-1</region>" + + " </prod>" + + "</deployment>" + ); + spec = DeploymentSpec.fromXml(r); + assertEquals(Optional.of(new CloudAccount("219876543210")), spec.requireInstance("default").cloudAccount(Environment.prod, RegionName.from("us-east-1"))); + assertEquals(Optional.empty(), spec.requireInstance("default").cloudAccount(Environment.prod, RegionName.from("us-west-1"))); + } + private static Set<String> endpointRegions(String endpointId, DeploymentSpec spec) { return spec.requireInstance("default").endpoints().stream() .filter(endpoint -> endpoint.endpointId().equals(endpointId)) |