diff --git a/driver-core/src/test/resources/unified-test-format/command-logging/unacknowledged-write.json b/driver-core/src/test/resources/unified-test-format/command-logging/unacknowledged-write.json index ed49c79ce4f..dad0c0a36a0 100644 --- a/driver-core/src/test/resources/unified-test-format/command-logging/unacknowledged-write.json +++ b/driver-core/src/test/resources/unified-test-format/command-logging/unacknowledged-write.json @@ -1,6 +1,6 @@ { - "description": "command-logging", - "schemaVersion": "1.13", + "description": "unacknowledged-write", + "schemaVersion": "1.16", "createEntities": [ { "client": { @@ -53,11 +53,27 @@ "_id": 2 } } + }, + { + "name": "find", + "object": "collection", + "arguments": { + "filter": {} + }, + "expectResult": [ + { + "_id": 1 + }, + { + "_id": 2 + } + ] } ], "expectLogMessages": [ { "client": "client", + "ignoreExtraMessages": true, "messages": [ { "level": "debug", @@ -132,5 +148,3 @@ } ] } - - diff --git a/driver-core/src/test/resources/unified-test-format/command-monitoring/unacknowledgedBulkWrite.json b/driver-core/src/test/resources/unified-test-format/command-monitoring/unacknowledgedBulkWrite.json index 4c16d6df115..782cb84a5bf 100644 --- a/driver-core/src/test/resources/unified-test-format/command-monitoring/unacknowledgedBulkWrite.json +++ b/driver-core/src/test/resources/unified-test-format/command-monitoring/unacknowledgedBulkWrite.json @@ -1,6 +1,6 @@ { "description": "unacknowledgedBulkWrite", - "schemaVersion": "1.0", + "schemaVersion": "1.7", "createEntities": [ { "client": { @@ -64,11 +64,29 @@ ], "ordered": false } + }, + { + "name": "find", + "object": "collection", + "arguments": { + "filter": {} + }, + "expectResult": [ + { + "_id": 1, + "x": 11 + }, + { + "_id": "unorderedBulkWriteInsertW0", + "x": 44 + } + ] } ], "expectEvents": [ { "client": "client", + "ignoreExtraEvents": true, "events": [ { "commandStartedEvent": { diff --git a/driver-sync/src/test/functional/com/mongodb/client/unified/LogMatcher.java b/driver-sync/src/test/functional/com/mongodb/client/unified/LogMatcher.java index 8d73e328bec..a4410262b79 100644 --- a/driver-sync/src/test/functional/com/mongodb/client/unified/LogMatcher.java +++ b/driver-sync/src/test/functional/com/mongodb/client/unified/LogMatcher.java @@ -35,6 +35,7 @@ import java.util.List; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; final class LogMatcher { private final ValueMatcher valueMatcher; @@ -46,11 +47,16 @@ final class LogMatcher { this.context = context; } - void assertLogMessageEquality(final String client, final BsonArray expectedMessages, final List actualMessages, - final Iterable tweaks) { + void assertLogMessageEquality(final String client, final boolean ignoreExtraMessages, final BsonArray expectedMessages, + final List actualMessages, final Iterable tweaks) { context.push(ContextElement.ofLogMessages(client, expectedMessages, actualMessages)); - assertEquals(context.getMessage("Number of log messages must be the same"), expectedMessages.size(), actualMessages.size()); + if (ignoreExtraMessages) { + assertTrue(context.getMessage("Number of messages must be greater than or equal to the expected number of messages"), + actualMessages.size() >= expectedMessages.size()); + } else { + assertEquals(context.getMessage("Number of log messages must be the same"), expectedMessages.size(), actualMessages.size()); + } for (int i = 0; i < expectedMessages.size(); i++) { BsonDocument expectedMessage = expectedMessages.get(i).asDocument().clone(); diff --git a/driver-sync/src/test/functional/com/mongodb/client/unified/UnifiedTest.java b/driver-sync/src/test/functional/com/mongodb/client/unified/UnifiedTest.java index aaba0882659..c1741bd5f33 100644 --- a/driver-sync/src/test/functional/com/mongodb/client/unified/UnifiedTest.java +++ b/driver-sync/src/test/functional/com/mongodb/client/unified/UnifiedTest.java @@ -301,11 +301,12 @@ private void compareLogMessages(final UnifiedTestContext rootContext, final Bson final Iterable tweaks) { for (BsonValue cur : definition.getArray("expectLogMessages")) { BsonDocument curLogMessagesForClient = cur.asDocument(); + boolean ignoreExtraMessages = curLogMessagesForClient.getBoolean("ignoreExtraMessages", BsonBoolean.FALSE).getValue(); String clientId = curLogMessagesForClient.getString("client").getValue(); TestLoggingInterceptor loggingInterceptor = entities.getClientLoggingInterceptor(clientId); - rootContext.getLogMatcher().assertLogMessageEquality(clientId, curLogMessagesForClient.getArray("messages"), - loggingInterceptor.getMessages(), tweaks); + rootContext.getLogMatcher().assertLogMessageEquality(clientId, ignoreExtraMessages, + curLogMessagesForClient.getArray("messages"), loggingInterceptor.getMessages(), tweaks); } }