From 16cdb3cc357d30441ddcb13c8841f9928fdb0adb Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20=E2=80=98Bombe=E2=80=99=20Roden?= Date: Sun, 28 Jul 2019 18:44:21 +0200 Subject: [PATCH] =?utf8?q?=E2=9C=85=20Stabilize=20timing-dependent=20test?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../sone/core/WebOfTrustUpdaterTest.java | 43 +++++++++------------- 1 file changed, 17 insertions(+), 26 deletions(-) diff --git a/src/test/java/net/pterodactylus/sone/core/WebOfTrustUpdaterTest.java b/src/test/java/net/pterodactylus/sone/core/WebOfTrustUpdaterTest.java index 664e4a1..0c923fc 100644 --- a/src/test/java/net/pterodactylus/sone/core/WebOfTrustUpdaterTest.java +++ b/src/test/java/net/pterodactylus/sone/core/WebOfTrustUpdaterTest.java @@ -7,12 +7,7 @@ import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.not; import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.doAnswer; -import static org.mockito.Mockito.doThrow; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.never; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; +import static org.mockito.Mockito.*; import java.util.concurrent.CountDownLatch; @@ -423,28 +418,24 @@ public class WebOfTrustUpdaterTest { @Test public void setTrustRequestsAreCoalesced() throws InterruptedException, PluginException { - final CountDownLatch trustSetTrigger = new CountDownLatch(1); - doAnswer(new Answer() { - @Override - public Void answer(InvocationOnMock invocation) throws Throwable { - trustSetTrigger.countDown(); - return null; - } + final CountDownLatch firstTrigger = new CountDownLatch(1); + doAnswer((Answer) invocation -> { + firstTrigger.countDown(); + return null; }).when(trustee).setTrust(eq(ownIdentity), eq(new Trust(SCORE, null, 0))); - for (int i = 1; i <= 2; i++) { - /* this is so fucking volatile. */ - if (i > 1) { - sleep(200); - } - new Thread(new Runnable() { - public void run() { - webOfTrustUpdater.setTrust(ownIdentity, trustee, SCORE, TRUST_COMMENT); - } - }).start(); - } + Identity secondTrustee = when(mock(Identity.class).getId()).thenReturn("trustee-id2").getMock(); + final CountDownLatch secondTrigger = new CountDownLatch(1); + doAnswer((Answer) invocation -> { + secondTrigger.countDown(); + return null; + }).when(secondTrustee).setTrust(eq(ownIdentity), eq(new Trust(SCORE, null, 0))); + webOfTrustUpdater.setTrust(ownIdentity, trustee, SCORE, TRUST_COMMENT); + webOfTrustUpdater.setTrust(ownIdentity, secondTrustee, SCORE, TRUST_COMMENT); + webOfTrustUpdater.setTrust(ownIdentity, trustee, SCORE, TRUST_COMMENT); webOfTrustUpdater.start(); - assertThat(trustSetTrigger.await(1, SECONDS), is(true)); - verify(trustee).setTrust(eq(ownIdentity), eq(new Trust(SCORE, null, 0))); + assertThat(firstTrigger.await(1, SECONDS), is(true)); + assertThat(secondTrigger.await(1, SECONDS), is(true)); + verify(trustee, times(1)).setTrust(eq(ownIdentity), eq(new Trust(SCORE, null, 0))); verify(webOfTrustConnector).setTrust(eq(ownIdentity), eq(trustee), eq(SCORE), eq(TRUST_COMMENT)); } -- 2.7.4