summaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorandreer <andreer@verizonmedia.com>2020-10-25 21:39:16 +0100
committerandreer <andreer@verizonmedia.com>2020-10-25 21:39:16 +0100
commitc36b1bd081047f0e95c27cd38afac69ae880b158 (patch)
tree666630c1b21e5ff3caf15b96a2453909fe6cb9bd /controller-server
parentc2cc2823c7397c30934b40cedafe2d9d34829c4a (diff)
basic unit test
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/application/DeploymentQuotaCalculatorTest.java51
1 files changed, 51 insertions, 0 deletions
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/application/DeploymentQuotaCalculatorTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/application/DeploymentQuotaCalculatorTest.java
new file mode 100644
index 00000000000..675cb2f3f76
--- /dev/null
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/application/DeploymentQuotaCalculatorTest.java
@@ -0,0 +1,51 @@
+package com.yahoo.vespa.hosted.controller.application;
+
+import com.yahoo.config.application.api.DeploymentSpec;
+import com.yahoo.config.provision.ApplicationId;
+import com.yahoo.config.provision.zone.ZoneId;
+import com.yahoo.vespa.hosted.controller.api.integration.billing.Quota;
+import org.junit.Test;
+
+import java.util.List;
+
+import static org.junit.Assert.*;
+
+public class DeploymentQuotaCalculatorTest {
+
+ @Test
+ public void quota_is_divided_among_prod_instances() {
+ Quota calculated = DeploymentQuotaCalculator.calculate(Quota.unlimited().withBudget(10), List.of(), ApplicationId.defaultId(), ZoneId.defaultId(),
+ DeploymentSpec.fromXml(
+ "<deployment version='1.0'>\n" +
+ " <instance id='instance1'> \n" +
+ " <test />\n" +
+ " <staging />\n" +
+ " <prod>\n" +
+ " <region active=\"true\">us-east-1</region>\n" +
+ " <region active=\"false\">us-west-1</region>\n" +
+ " </prod>\n" +
+ " </instance>\n" +
+ " <instance id='instance2'>\n" +
+ " <perf/>\n" +
+ " <dev/>\n" +
+ " <prod>\n" +
+ " <region active=\"true\">us-north-1</region>\n" +
+ " </prod>\n" +
+ " </instance>\n" +
+ "</deployment>"));
+ assertEquals(10d/3, calculated.budget().get().doubleValue(), 1e-5);
+ }
+
+ @Test
+ public void unlimited_quota_remains_unlimited() {
+ Quota calculated = DeploymentQuotaCalculator.calculate(Quota.unlimited(), List.of(), ApplicationId.defaultId(), ZoneId.defaultId(), DeploymentSpec.empty);
+ assertTrue(calculated.isUnlimited());
+ }
+
+ @Test
+ public void zero_quota_remains_zero() {
+ Quota calculated = DeploymentQuotaCalculator.calculate(Quota.zero(), List.of(), ApplicationId.defaultId(), ZoneId.defaultId(), DeploymentSpec.empty);
+ assertEquals(calculated.budget().get().doubleValue(), 0, 1e-5);
+ }
+
+} \ No newline at end of file