From 4520a4f1bd005f24cff2f731aa05548a5cba1bd7 Mon Sep 17 00:00:00 2001 From: David Roden Date: Mon, 27 Jan 2025 21:37:11 +0100 Subject: [PATCH] =?utf8?q?=E2=9C=85=20Improve=20test=20by=20adding=20wait-?= =?utf8?q?for-scan=20method?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- server/src/main/java/de/qsheltier/msta/Server.java | 9 +++++++++ server/src/test/java/de/qsheltier/msta/ServerTest.java | 10 +++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/server/src/main/java/de/qsheltier/msta/Server.java b/server/src/main/java/de/qsheltier/msta/Server.java index f64c852..9cb7cb7 100644 --- a/server/src/main/java/de/qsheltier/msta/Server.java +++ b/server/src/main/java/de/qsheltier/msta/Server.java @@ -129,6 +129,12 @@ public class Server implements Closeable { return serverSocket.getLocalPort(); } + public void waitForNextScan() throws InterruptedException { + synchronized (this) { + wait(); + } + } + private void scanForWindows() { while (!closed.get()) { var currentlyOpenWindows = stream(Window.getWindows()).filter(Component::isVisible).toList(); @@ -140,6 +146,9 @@ public class Server implements Closeable { windows.put(newWindow.getName(), newWindow); }); Thread.yield(); + synchronized (this) { + notifyAll(); + } } } diff --git a/server/src/test/java/de/qsheltier/msta/ServerTest.java b/server/src/test/java/de/qsheltier/msta/ServerTest.java index cfc8776..780826f 100644 --- a/server/src/test/java/de/qsheltier/msta/ServerTest.java +++ b/server/src/test/java/de/qsheltier/msta/ServerTest.java @@ -88,9 +88,13 @@ public class ServerTest { var window = new Window(null); window.setVisible(true); try { - connectToServer(verifyConnectedEvent((reader, ready, writer) -> { - assertTimeout(ready, Duration.of(1, ChronoUnit.SECONDS)); - })); + try (var server = new Server()) { + server.start(); + server.waitForNextScan(); + createConnection(server, verifyConnectedEvent((reader, ready, writer) -> { + assertTimeout(ready, Duration.of(1, ChronoUnit.SECONDS)); + })); + } } finally { window.setVisible(false); } -- 2.7.4