From a82e1091e43ecc08b79158387a35e9e8b0f4b990 Mon Sep 17 00:00:00 2001 From: Sergii Kabashniuk <skabashnyuk@users.noreply.github.com> Date: Fri, 25 Oct 2019 08:26:35 +0200 Subject: [PATCH] Do not use spy in ServerCheckerTest (#14975) Signed-off-by: Sergii Kabashniuk <skabashniuk@redhat.com> --- .../server/hc/ServerCheckerTest.java | 63 ++++++++++--------- 1 file changed, 35 insertions(+), 28 deletions(-) diff --git a/wsmaster/che-core-api-workspace/src/test/java/org/eclipse/che/api/workspace/server/hc/ServerCheckerTest.java b/wsmaster/che-core-api-workspace/src/test/java/org/eclipse/che/api/workspace/server/hc/ServerCheckerTest.java index c257030a6b..66fbb65e9e 100644 --- a/wsmaster/che-core-api-workspace/src/test/java/org/eclipse/che/api/workspace/server/hc/ServerCheckerTest.java +++ b/wsmaster/che-core-api-workspace/src/test/java/org/eclipse/che/api/workspace/server/hc/ServerCheckerTest.java @@ -12,11 +12,7 @@ package org.eclipse.che.api.workspace.server.hc; import static java.lang.String.format; -import static org.mockito.Mockito.atLeast; -import static org.mockito.Mockito.spy; import static org.mockito.Mockito.timeout; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertTrue; @@ -24,6 +20,7 @@ import static org.testng.Assert.fail; import java.util.Timer; import java.util.concurrent.CompletableFuture; +import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import org.eclipse.che.api.workspace.server.spi.InfrastructureException; @@ -56,49 +53,47 @@ public class ServerCheckerTest { @Test(timeOut = TEST_TIMEOUT_MS) public void successfulCheckTest() throws Exception { checker = - spy( - new TestServerChecker( - MACHINE_NAME, - SERVER_REF, - PERIOD_MS, - CHECKER_TIMEOUT_MS, - SUCCESS_THRESHOLD, - TimeUnit.MILLISECONDS, - timer)); + new TestServerChecker( + MACHINE_NAME, + SERVER_REF, + PERIOD_MS, + CHECKER_TIMEOUT_MS, + SUCCESS_THRESHOLD, + TimeUnit.MILLISECONDS, + timer); CompletableFuture<String> reportCompFuture = checker.getReportCompFuture(); // not considered as available before start assertFalse(reportCompFuture.isDone()); // ensure server not available before start - when(checker.isAvailable()).thenReturn(false); + CountDownLatch isAvailableCountDownLatch = checker.setAvailable(false); checker.start(); - verify(checker, timeout((int) (PERIOD_MS * 2)).atLeastOnce()).isAvailable(); + isAvailableCountDownLatch.await(PERIOD_MS * 2, TimeUnit.MILLISECONDS); // not considered as available after check assertFalse(reportCompFuture.isDone()); // make server available - when(checker.isAvailable()).thenReturn(true); + isAvailableCountDownLatch = checker.setAvailable(true); assertEquals(reportCompFuture.get(), SERVER_REF); - verify(checker, atLeast(2)).isAvailable(); + isAvailableCountDownLatch.await(PERIOD_MS * 2, TimeUnit.MILLISECONDS); } @Test(timeOut = TEST_TIMEOUT_MS) public void checkTimeoutTest() throws Exception { checker = - spy( - new TestServerChecker( - MACHINE_NAME, - SERVER_REF, - PERIOD_MS, - PERIOD_MS * 2, - SUCCESS_THRESHOLD, - TimeUnit.MILLISECONDS, - timer)); + new TestServerChecker( + MACHINE_NAME, + SERVER_REF, + PERIOD_MS, + PERIOD_MS * 2, + SUCCESS_THRESHOLD, + TimeUnit.MILLISECONDS, + timer); // ensure server not available before start - when(checker.isAvailable()).thenReturn(false); + checker.setAvailable(false); checker.start(); CompletableFuture<String> reportCompFuture = checker.getReportCompFuture(); @@ -119,6 +114,11 @@ public class ServerCheckerTest { } private static class TestServerChecker extends ServerChecker { + + private boolean isAvailable; + + private CountDownLatch isAvailableCountDownLatch = new CountDownLatch(1); + protected TestServerChecker( String machineName, String serverRef, @@ -132,7 +132,14 @@ public class ServerCheckerTest { @Override public boolean isAvailable() { - return false; + isAvailableCountDownLatch.countDown(); + return isAvailable; + } + + public CountDownLatch setAvailable(boolean isAvailable) { + this.isAvailable = isAvailable; + this.isAvailableCountDownLatch = new CountDownLatch(1); + return isAvailableCountDownLatch; } } } -- GitLab