diff options
author | Jon Bratseth <bratseth@yahoo-inc.com> | 2017-04-25 15:57:57 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@yahoo-inc.com> | 2017-04-25 15:57:57 +0200 |
commit | 702d14e605c1c3ceb1803fd542020e1562309bba (patch) | |
tree | 003196581f223670e832b227c60b47a7b9b47967 /node-repository/src | |
parent | 21f7714f182f24f4ed3c6314dc30689d5cc5baf9 (diff) |
Test JobControl integration
Diffstat (limited to 'node-repository/src')
-rw-r--r-- | node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/JobControlTest.java | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/JobControlTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/JobControlTest.java index 28d810bff43..a7877025b19 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/JobControlTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/JobControlTest.java @@ -1,8 +1,11 @@ package com.yahoo.vespa.hosted.provision.maintenance; +import com.yahoo.vespa.hosted.provision.NodeRepository; import com.yahoo.vespa.hosted.provision.NodeRepositoryTester; import org.junit.Test; +import java.time.Duration; + import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; @@ -48,4 +51,41 @@ public class JobControlTest { assertTrue(jobControl.isActive(job2)); } + @Test + public void testJobControlMayDeactivateJobs() { + NodeRepositoryTester tester = new NodeRepositoryTester(); + JobControl jobControl = new JobControl(tester.nodeRepository().database()); + MockMaintainer mockMaintainer = new MockMaintainer(tester.nodeRepository(), jobControl); + + assertTrue(jobControl.jobs().contains("MockMaintainer")); + + assertEquals(0, mockMaintainer.maintenanceInvocations); + + mockMaintainer.run(); + assertEquals(1, mockMaintainer.maintenanceInvocations); + + jobControl.setActive("MockMaintainer", false); + mockMaintainer.run(); + assertEquals(1, mockMaintainer.maintenanceInvocations); + + jobControl.setActive("MockMaintainer", true); + mockMaintainer.run(); + assertEquals(2, mockMaintainer.maintenanceInvocations); + } + + private static class MockMaintainer extends Maintainer { + + int maintenanceInvocations = 0; + + public MockMaintainer(NodeRepository nodeRepository, JobControl jobControl) { + super(nodeRepository, Duration.ofHours(1), jobControl); + } + + @Override + protected void maintain() { + maintenanceInvocations++; + } + + } + } |