From 0c99702675f912b9fee93a99aa456ce1ff11e5b0 Mon Sep 17 00:00:00 2001 From: "slav.babanin" Date: Wed, 15 Jan 2025 12:24:46 -0800 Subject: [PATCH 1/5] Fix test cleanup to prevent conflicts between tests. JAVA-5761 --- .../test/functional/com/mongodb/client/CrudProseTest.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/driver-sync/src/test/functional/com/mongodb/client/CrudProseTest.java b/driver-sync/src/test/functional/com/mongodb/client/CrudProseTest.java index 7138cdfe67e..f0ae4969298 100644 --- a/driver-sync/src/test/functional/com/mongodb/client/CrudProseTest.java +++ b/driver-sync/src/test/functional/com/mongodb/client/CrudProseTest.java @@ -34,6 +34,7 @@ import com.mongodb.client.model.bulk.ClientBulkWriteOptions; import com.mongodb.client.model.bulk.ClientBulkWriteResult; import com.mongodb.client.model.bulk.ClientNamespacedWriteModel; +import com.mongodb.client.test.CollectionHelper; import com.mongodb.event.CommandStartedEvent; import com.mongodb.internal.connection.TestCommandListener; import org.bson.BsonArray; @@ -47,6 +48,7 @@ import org.bson.RawBsonDocument; import org.bson.codecs.configuration.CodecRegistry; import org.bson.codecs.pojo.PojoCodecProvider; +import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; @@ -613,4 +615,9 @@ private static ClientBulkWriteResult runInTransaction(final ClientSession sessio throw throwable; } } + + @AfterAll + public static void cleanUp() { + CollectionHelper.drop(NAMESPACE); + } } From d5c5b5a7a032bf9054f9d1d71d31624ccc86c319 Mon Sep 17 00:00:00 2001 From: "slav.babanin" Date: Wed, 15 Jan 2025 12:41:50 -0800 Subject: [PATCH 2/5] Add unique namespace to encryption test. JAVA-5761 --- .../ClientSideEncryptionExternalKeyVaultTest.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/driver-sync/src/test/functional/com/mongodb/client/ClientSideEncryptionExternalKeyVaultTest.java b/driver-sync/src/test/functional/com/mongodb/client/ClientSideEncryptionExternalKeyVaultTest.java index f4b6b336e96..da513bb2a9e 100644 --- a/driver-sync/src/test/functional/com/mongodb/client/ClientSideEncryptionExternalKeyVaultTest.java +++ b/driver-sync/src/test/functional/com/mongodb/client/ClientSideEncryptionExternalKeyVaultTest.java @@ -20,9 +20,11 @@ import com.mongodb.ClientEncryptionSettings; import com.mongodb.MongoClientSettings; import com.mongodb.MongoCredential; +import com.mongodb.MongoNamespace; import com.mongodb.MongoSecurityException; import com.mongodb.WriteConcern; import com.mongodb.client.model.vault.EncryptOptions; +import com.mongodb.client.test.CollectionHelper; import com.mongodb.client.vault.ClientEncryption; import com.mongodb.client.vault.ClientEncryptions; import org.bson.BsonBinary; @@ -57,6 +59,7 @@ public class ClientSideEncryptionExternalKeyVaultTest { private MongoClient client, clientEncrypted; private ClientEncryption clientEncryption; private final boolean withExternalKeyVault; + private static final MongoNamespace NAMESPACE = new MongoNamespace("db", ClientSideEncryptionExternalKeyVaultTest.class.getName()); public ClientSideEncryptionExternalKeyVaultTest(final boolean withExternalKeyVault) { this.withExternalKeyVault = withExternalKeyVault; @@ -84,7 +87,7 @@ public void setUp() throws IOException, URISyntaxException { + "UN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk"); localMasterkey.put("key", localMasterkeyBytes); kmsProviders.put("local", localMasterkey); - schemaMap.put("db.coll", bsonDocumentFromPath("external-schema.json")); + schemaMap.put(NAMESPACE.getFullName(), bsonDocumentFromPath("external-schema.json")); AutoEncryptionSettings.Builder autoEncryptionSettingsBuilder = AutoEncryptionSettings.builder() .keyVaultNamespace("keyvault.datakeys") @@ -123,8 +126,8 @@ public void setUp() throws IOException, URISyntaxException { public void testExternal() { boolean authExceptionThrown = false; MongoCollection coll = clientEncrypted - .getDatabase("db") - .getCollection("coll", BsonDocument.class); + .getDatabase(NAMESPACE.getDatabaseName()) + .getCollection(NAMESPACE.getCollectionName(), BsonDocument.class); try { coll.insertOne(new BsonDocument().append("encrypted", new BsonString("test"))); } catch (MongoSecurityException mse) { @@ -169,5 +172,7 @@ public void after() { // ignore } } + + CollectionHelper.drop(NAMESPACE); } } From cf06263976b6a61025b25d3dcdaa41b6adeafff0 Mon Sep 17 00:00:00 2001 From: "slav.babanin" Date: Wed, 15 Jan 2025 12:51:41 -0800 Subject: [PATCH 3/5] Add unique namespace to crud prose tests. JAVA-5761 --- .../src/test/functional/com/mongodb/client/CrudProseTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/driver-sync/src/test/functional/com/mongodb/client/CrudProseTest.java b/driver-sync/src/test/functional/com/mongodb/client/CrudProseTest.java index f0ae4969298..bdcf1a923a1 100644 --- a/driver-sync/src/test/functional/com/mongodb/client/CrudProseTest.java +++ b/driver-sync/src/test/functional/com/mongodb/client/CrudProseTest.java @@ -98,7 +98,7 @@ * CRUD Prose Tests. */ public class CrudProseTest { - private static final MongoNamespace NAMESPACE = new MongoNamespace("db", "coll"); + private static final MongoNamespace NAMESPACE = new MongoNamespace("db", CrudProseTest.class.getName()); @DisplayName("1. WriteConcernError.details exposes writeConcernError.errInfo") @Test From dd96d0154f89e7779684908aa0c46a771b87e66d Mon Sep 17 00:00:00 2001 From: "slav.babanin" Date: Fri, 17 Jan 2025 14:38:09 -0800 Subject: [PATCH 4/5] Revert collection name renaming. JAVA-5761 --- .../src/test/functional/com/mongodb/client/CrudProseTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/driver-sync/src/test/functional/com/mongodb/client/CrudProseTest.java b/driver-sync/src/test/functional/com/mongodb/client/CrudProseTest.java index bdcf1a923a1..f0ae4969298 100644 --- a/driver-sync/src/test/functional/com/mongodb/client/CrudProseTest.java +++ b/driver-sync/src/test/functional/com/mongodb/client/CrudProseTest.java @@ -98,7 +98,7 @@ * CRUD Prose Tests. */ public class CrudProseTest { - private static final MongoNamespace NAMESPACE = new MongoNamespace("db", CrudProseTest.class.getName()); + private static final MongoNamespace NAMESPACE = new MongoNamespace("db", "coll"); @DisplayName("1. WriteConcernError.details exposes writeConcernError.errInfo") @Test From 2ec08d56b44088ae6f420a8043608b28fc848e7c Mon Sep 17 00:00:00 2001 From: "slav.babanin" Date: Fri, 17 Jan 2025 21:32:36 -0800 Subject: [PATCH 5/5] Update message byte size in tests. JAVA-5761 --- .../test/functional/com/mongodb/client/CrudProseTest.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/driver-sync/src/test/functional/com/mongodb/client/CrudProseTest.java b/driver-sync/src/test/functional/com/mongodb/client/CrudProseTest.java index f0ae4969298..016887c33b7 100644 --- a/driver-sync/src/test/functional/com/mongodb/client/CrudProseTest.java +++ b/driver-sync/src/test/functional/com/mongodb/client/CrudProseTest.java @@ -98,7 +98,7 @@ * CRUD Prose Tests. */ public class CrudProseTest { - private static final MongoNamespace NAMESPACE = new MongoNamespace("db", "coll"); + private static final MongoNamespace NAMESPACE = new MongoNamespace("db", CrudProseTest.class.getName()); @DisplayName("1. WriteConcernError.details exposes writeConcernError.errInfo") @Test @@ -369,7 +369,8 @@ private void testBulkWriteSplitsWhenExceedingMaxMessageSizeBytesDueToNsInfo( Document helloResponse = droppedDatabase(client).runCommand(new Document("hello", 1)); int maxBsonObjectSize = helloResponse.getInteger("maxBsonObjectSize"); int maxMessageSizeBytes = helloResponse.getInteger("maxMessageSizeBytes"); - int opsBytes = maxMessageSizeBytes - 1122; + // By the spec test, we have to subtract only 1122, however, we have different collection name. + int opsBytes = maxMessageSizeBytes - 1118 - NAMESPACE.getCollectionName().length(); int numModels = opsBytes / maxBsonObjectSize; int remainderBytes = opsBytes % maxBsonObjectSize; List models = new ArrayList<>(nCopies(