From e70ceeeacd752d7a3676bbd075c52a98126e07b6 Mon Sep 17 00:00:00 2001 From: Vojtech Juranek Date: Thu, 28 Jul 2022 14:04:46 +0200 Subject: [PATCH] DBZ-5307 Fix adding events from WireMock In existing test we added all events in the loop which can lead into adding one event multiple times and therefore failing the tests. When test run alone, this probably never happen or it was very rare. Now, when test runs with Debezium server already running, it fails more often. Fix it by removing already added events from WireMock. --- .../src/test/java/io/debezium/server/http/HttpIT.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/debezium-server/debezium-server-http/src/test/java/io/debezium/server/http/HttpIT.java b/debezium-server/debezium-server-http/src/test/java/io/debezium/server/http/HttpIT.java index 880318559..ce42129a7 100644 --- a/debezium-server/debezium-server-http/src/test/java/io/debezium/server/http/HttpIT.java +++ b/debezium-server/debezium-server-http/src/test/java/io/debezium/server/http/HttpIT.java @@ -10,6 +10,7 @@ import static com.github.tomakehurst.wiremock.client.WireMock.configureFor; import static com.github.tomakehurst.wiremock.client.WireMock.getAllServeEvents; import static com.github.tomakehurst.wiremock.client.WireMock.post; +import static com.github.tomakehurst.wiremock.client.WireMock.removeServeEvent; import static com.github.tomakehurst.wiremock.client.WireMock.stubFor; import java.io.IOException; @@ -118,7 +119,13 @@ public void testHttpServer() { stubFor(post("/").willReturn(aResponse().withStatus(200))); Awaitility.await().atMost(Duration.ofSeconds(60)).until(() -> { - events.addAll(getAllServeEvents()); + List currentEvents = getAllServeEvents(); + events.addAll(currentEvents); + // Remove already added events, if e.g. 3 out of 4 events are added, in next attempt all 4 events + // are added again and test fails. + for (ServeEvent e : currentEvents) { + removeServeEvent(e.getId()); + } return events.size() == MESSAGE_COUNT; });