summaryrefslogtreecommitdiffstats
path: root/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/TenantRoleMaintainerTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/TenantRoleMaintainerTest.java')
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/TenantRoleMaintainerTest.java37
1 files changed, 37 insertions, 0 deletions
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/TenantRoleMaintainerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/TenantRoleMaintainerTest.java
index 97656583d04..2f36287df45 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/TenantRoleMaintainerTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/TenantRoleMaintainerTest.java
@@ -9,12 +9,16 @@ import com.yahoo.vespa.hosted.controller.application.pkg.ApplicationPackage;
import com.yahoo.vespa.hosted.controller.deployment.ApplicationPackageBuilder;
import com.yahoo.vespa.hosted.controller.deployment.DeploymentContext;
import com.yahoo.vespa.hosted.controller.deployment.DeploymentTester;
+import com.yahoo.vespa.hosted.controller.tenant.Tenant;
import org.junit.jupiter.api.Test;
import java.time.Duration;
+import java.time.Instant;
import java.util.List;
+import java.util.stream.Collectors;
import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
/**
@@ -56,6 +60,39 @@ public class TenantRoleMaintainerTest {
assertTrue(tenantNames.containsAll(List.of(prodAppTenant2.application().id().tenant(), perfAppTenant1.application().id().tenant())));
}
+ @Test
+ void maintain_batch() {
+ var tenants = List.of(
+ tester.newDeploymentContext("tenant1", "app1", "default"),
+ tester.newDeploymentContext("tenant2", "app1", "default"),
+ tester.newDeploymentContext("tenant3", "app1", "default"),
+ tester.newDeploymentContext("tenant4", "app1", "default"),
+ tester.newDeploymentContext("tenant5", "app1", "default"),
+ tester.newDeploymentContext("tenant6", "app1", "default"));
+
+ var maintainer = new TenantRoleMaintainer(tester.controller(), Duration.ofDays(1));
+ maintainer.maintain();
+
+ var maintainedTenants = tester.controller().tenants().asList().stream()
+ .filter(t -> t.tenantRolesLastMaintained() != Instant.EPOCH)
+ .toList();
+
+ var unmaintainedTenants = tester.controller().tenants().asList().stream()
+ .filter(t -> t.tenantRolesLastMaintained() == Instant.EPOCH)
+ .toList();
+
+ assertEquals(5, maintainedTenants.size());
+ assertEquals(1, unmaintainedTenants.size());
+
+ tester.clock().advance(Duration.ofDays(1));
+
+ maintainer.maintain();
+ var result = tester.controller().tenants().asList().stream()
+ .collect(Collectors.groupingBy(Tenant::tenantRolesLastMaintained));
+
+ assertFalse(result.containsKey(Instant.EPOCH));
+ }
+
private long permanentDeployments(Instance instance) {
return tester.controller().applications().requireInstance(instance.id()).deployments().values().stream()
.filter(deployment -> !deployment.zone().environment().isTest())