diff options
Diffstat (limited to 'vespajlib/src/test/java/com/yahoo/concurrent/maintenance/JobControlTest.java')
-rw-r--r-- | vespajlib/src/test/java/com/yahoo/concurrent/maintenance/JobControlTest.java | 85 |
1 files changed, 15 insertions, 70 deletions
diff --git a/vespajlib/src/test/java/com/yahoo/concurrent/maintenance/JobControlTest.java b/vespajlib/src/test/java/com/yahoo/concurrent/maintenance/JobControlTest.java index 0640ab2835a..a0ca9b529c5 100644 --- a/vespajlib/src/test/java/com/yahoo/concurrent/maintenance/JobControlTest.java +++ b/vespajlib/src/test/java/com/yahoo/concurrent/maintenance/JobControlTest.java @@ -1,15 +1,8 @@ // Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.concurrent.maintenance; -import com.yahoo.transaction.Mutex; import org.junit.Test; -import java.time.Duration; -import java.time.Instant; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; @@ -21,18 +14,13 @@ public class JobControlTest { @Test public void testJobControl() { - MockJobControlState state = new MockJobControlState(); + JobControlStateMock state = new JobControlStateMock(); JobControl jobControl = new JobControl(state); - MockMaintainer maintainer1 = new MockMaintainer(); - MockMaintainer maintainer2 = new MockMaintainer(); - assertTrue(jobControl.jobs().isEmpty()); - String job1 = "Job1"; String job2 = "Job2"; - - jobControl.started(job1, maintainer1); - jobControl.started(job2, maintainer2); + TestMaintainer maintainer1 = new TestMaintainer(job1, jobControl); + TestMaintainer maintainer2 = new TestMaintainer(job2, jobControl); assertEquals(2, jobControl.jobs().size()); assertTrue(jobControl.jobs().contains(job1)); assertTrue(jobControl.jobs().contains(job2)); @@ -59,79 +47,36 @@ public class JobControlTest { // Run jobs on-demand jobControl.run(job1); jobControl.run(job1); - assertEquals(2, maintainer1.maintenanceInvocations); + assertEquals(2, maintainer1.totalRuns()); jobControl.run(job2); - assertEquals(1, maintainer2.maintenanceInvocations); + assertEquals(1, maintainer2.totalRuns()); // Running jobs on-demand ignores inactive flag state.setActive(job1, false); jobControl.run(job1); - assertEquals(3, maintainer1.maintenanceInvocations); + assertEquals(3, maintainer1.totalRuns()); } @Test public void testJobControlMayDeactivateJobs() { - MockJobControlState state = new MockJobControlState(); + JobControlStateMock state = new JobControlStateMock(); JobControl jobControl = new JobControl(state); - MockMaintainer mockMaintainer = new MockMaintainer(jobControl); + TestMaintainer mockMaintainer = new TestMaintainer(null, jobControl); - assertTrue(jobControl.jobs().contains("MockMaintainer")); + assertTrue(jobControl.jobs().contains("TestMaintainer")); - assertEquals(0, mockMaintainer.maintenanceInvocations); + assertEquals(0, mockMaintainer.totalRuns()); mockMaintainer.run(); - assertEquals(1, mockMaintainer.maintenanceInvocations); + assertEquals(1, mockMaintainer.totalRuns()); - state.setActive("MockMaintainer", false); + state.setActive("TestMaintainer", false); mockMaintainer.run(); - assertEquals(1, mockMaintainer.maintenanceInvocations); + assertEquals(1, mockMaintainer.totalRuns()); - state.setActive("MockMaintainer", true); + state.setActive("TestMaintainer", true); mockMaintainer.run(); - assertEquals(2, mockMaintainer.maintenanceInvocations); - } - - private static class MockJobControlState implements JobControlState { - - private final Set<String> inactiveJobs = new HashSet<>(); - - @Override - public Set<String> readInactiveJobs() { - return new HashSet<>(inactiveJobs); - } - - @Override - public Mutex lockMaintenanceJob(String job) { - return () -> {}; - } - - public void setActive(String job, boolean active) { - if (active) { - inactiveJobs.remove(job); - } else { - inactiveJobs.add(job); - } - } - - } - - private static class MockMaintainer extends Maintainer { - - int maintenanceInvocations = 0; - - private MockMaintainer(JobControl jobControl) { - super(null, Duration.ofHours(1), Instant.now(), jobControl, List.of()); - } - - private MockMaintainer() { - this(new JobControl(new MockJobControlState())); - } - - @Override - protected void maintain() { - maintenanceInvocations++; - } - + assertEquals(2, mockMaintainer.totalRuns()); } } |