X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Ffcp%2Fquelaton%2FDefaultFcpClientTest.java;h=c37b5e0a33f29d0fc0eaac84c5c98dacb26d14e8;hb=0baa2578d55abb039b5fc2eea39b811c9d01d402;hp=dae4111321223ae37e617debd1c73981108418a5;hpb=40912425cfa63fea9dcb669fb0c31837e5c8a2e4;p=jFCPlib.git diff --git a/src/test/java/net/pterodactylus/fcp/quelaton/DefaultFcpClientTest.java b/src/test/java/net/pterodactylus/fcp/quelaton/DefaultFcpClientTest.java index dae4111..c37b5e0 100644 --- a/src/test/java/net/pterodactylus/fcp/quelaton/DefaultFcpClientTest.java +++ b/src/test/java/net/pterodactylus/fcp/quelaton/DefaultFcpClientTest.java @@ -2310,6 +2310,24 @@ public class DefaultFcpClientTest { assertThat(edition.get(), is(24)); } + @Test + public void subscriptionUpdatesMultipleTimes() throws InterruptedException, ExecutionException, IOException { + Future> uskSubscription = fcpClient.subscribeUsk().uri(URI).execute(); + connectAndAssert(() -> matchesFcpMessage("SubscribeUSK", "URI=" + URI, "EndMessage")); + replyWithSubscribed(); + assertThat(uskSubscription.get().get().getUri(), is(URI)); + AtomicInteger edition = new AtomicInteger(); + CountDownLatch updated = new CountDownLatch(2); + uskSubscription.get().get().onUpdate(e -> { + edition.set(e); + updated.countDown(); + }); + uskSubscription.get().get().onUpdate(e -> updated.countDown()); + sendUpdateNotification(23); + assertThat("updated in time", updated.await(5, TimeUnit.SECONDS), is(true)); + assertThat(edition.get(), is(23)); + } + private void replyWithSubscribed() throws IOException { fcpServer.writeLine( "SubscribedUSK",