diff options
Diffstat (limited to 'clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/MaintenanceWhenPendingGlobalMergesTest.java')
-rw-r--r-- | clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/MaintenanceWhenPendingGlobalMergesTest.java | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/MaintenanceWhenPendingGlobalMergesTest.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/MaintenanceWhenPendingGlobalMergesTest.java index a2e661aa161..3b052a1bcb2 100644 --- a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/MaintenanceWhenPendingGlobalMergesTest.java +++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/MaintenanceWhenPendingGlobalMergesTest.java @@ -19,8 +19,13 @@ import static org.mockito.Mockito.when; public class MaintenanceWhenPendingGlobalMergesTest { private static class Fixture { - public MergePendingChecker mockPendingChecker = mock(MergePendingChecker.class); - public MaintenanceWhenPendingGlobalMerges deriver = new MaintenanceWhenPendingGlobalMerges(mockPendingChecker); + MergePendingChecker mockPendingChecker = mock(MergePendingChecker.class); + MaintenanceTransitionConstraint mockEligibilityChecker = mock(MaintenanceTransitionConstraint.class); + MaintenanceWhenPendingGlobalMerges deriver = new MaintenanceWhenPendingGlobalMerges(mockPendingChecker, mockEligibilityChecker); + + Fixture() { + when(mockEligibilityChecker.maintenanceTransitionAllowed(anyInt())).thenReturn(true); + } } private static String defaultSpace() { @@ -102,4 +107,14 @@ public class MaintenanceWhenPendingGlobalMergesTest { .reason(NODE_TOO_UNSTABLE, 2).build())); } + @Test + public void node_with_pending_merges_only_set_to_maintenance_if_eligible() { + Fixture f = new Fixture(); + Arrays.asList(1, 2, 3).forEach(idx -> when(f.mockPendingChecker.mayHaveMergesPending(globalSpace(), idx)).thenReturn(true)); + Arrays.asList(1, 2, 4).forEach(idx -> when(f.mockEligibilityChecker.maintenanceTransitionAllowed(idx)).thenReturn(false)); + AnnotatedClusterState derived = f.deriver.derivedFrom(stateFromString("distributor:5 storage:5"), defaultSpace()); + assertThat(derived, equalTo(AnnotatedClusterStateBuilder.ofState("distributor:5 storage:5 .3.s:m") + .reason(MAY_HAVE_MERGES_PENDING, 3).build())); + } + } |