Skip to content

Commit

Permalink
Fix non-deterministic test writer_readingMultipleTopics_shouldBatchSe…
Browse files Browse the repository at this point in the history
…parate() (#28)

* fix flaky test writer_readingMultipleTopics_shouldBatchSeparate

HashMap iteration order is non-deterministic.

Signed-off-by: Jesse Szwedko <[email protected]>
Co-authored-by: Jesse Szwedko <[email protected]>
  • Loading branch information
chessvivek and jszwedko committed Apr 22, 2024
1 parent 3f5a95a commit f9ca534
Showing 1 changed file with 16 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,10 @@ This product includes software developed at Datadog (https://www.datadoghq.com/)
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class DatadogLogsApiWriterTest {
private Map<String, String> props;
Expand Down Expand Up @@ -92,8 +94,13 @@ public void writer_batchAboveMax_shouldSendSeparate() throws IOException {
RequestInfo request1 = restHelper.getCapturedRequests().get(0);
RequestInfo request2 = restHelper.getCapturedRequests().get(1);

Assert.assertEquals("[{\"message\":\"someValue1\",\"ddsource\":\"kafka-connect\",\"ddtags\":\"topic:someTopic\"}]", request1.getBody());
Assert.assertEquals("[{\"message\":\"someValue2\",\"ddsource\":\"kafka-connect\",\"ddtags\":\"topic:someTopic\"}]", request2.getBody());
Set<String> requestBodySetActual = new HashSet<>();
requestBodySetActual.add(request1.getBody());
requestBodySetActual.add(request2.getBody());
Set<String> requestBodySetExpected = new HashSet<>();
requestBodySetExpected.add("[{\"message\":\"someValue1\",\"ddsource\":\"kafka-connect\",\"ddtags\":\"topic:someTopic\"}]");
requestBodySetExpected.add("[{\"message\":\"someValue2\",\"ddsource\":\"kafka-connect\",\"ddtags\":\"topic:someTopic\"}]");
Assert.assertEquals(requestBodySetExpected, requestBodySetActual);
}

@Test
Expand All @@ -110,8 +117,13 @@ public void writer_readingMultipleTopics_shouldBatchSeparate() throws IOExceptio
RequestInfo request1 = restHelper.getCapturedRequests().get(0);
RequestInfo request2 = restHelper.getCapturedRequests().get(1);

Assert.assertEquals("[{\"message\":\"someValue1\",\"ddsource\":\"kafka-connect\",\"ddtags\":\"topic:someTopic1\"}]", request2.getBody());
Assert.assertEquals("[{\"message\":\"someValue2\",\"ddsource\":\"kafka-connect\",\"ddtags\":\"topic:someTopic2\"}]", request1.getBody());
Set<String> requestBodySetActual = new HashSet<>();
requestBodySetActual.add(request1.getBody());
requestBodySetActual.add(request2.getBody());
Set<String> requestBodySetExpected = new HashSet<>();
requestBodySetExpected.add("[{\"message\":\"someValue1\",\"ddsource\":\"kafka-connect\",\"ddtags\":\"topic:someTopic1\"}]");
requestBodySetExpected.add("[{\"message\":\"someValue2\",\"ddsource\":\"kafka-connect\",\"ddtags\":\"topic:someTopic2\"}]");
Assert.assertEquals(requestBodySetExpected, requestBodySetActual);
}

@Test(expected = IOException.class)
Expand Down

0 comments on commit f9ca534

Please sign in to comment.