From 58f2b252336b132d87920ef63cceb810244af22f Mon Sep 17 00:00:00 2001 From: Sijie Date: Fri, 16 Feb 2024 18:30:13 -0800 Subject: [PATCH] fix MongoStartUpTest.java --- .../test/database/mongo/MongoStartUpTest.java | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/src/us/kbase/workspace/test/database/mongo/MongoStartUpTest.java b/src/us/kbase/workspace/test/database/mongo/MongoStartUpTest.java index f47b9e03..d20f6dfa 100644 --- a/src/us/kbase/workspace/test/database/mongo/MongoStartUpTest.java +++ b/src/us/kbase/workspace/test/database/mongo/MongoStartUpTest.java @@ -297,9 +297,18 @@ private void createIndexes(final String dbname) throws Exception { method.invoke(null, wsdb); } - private Set getIndexes(final MongoDatabase db, final String collection) { + private Set getIndexes(final MongoDatabase db, final String collectionName) { final Set indexes = new HashSet<>(); - db.getCollection(collection).listIndexes().forEach((Consumer) indexes::add); + for (Document index: db.getCollection(collectionName).listIndexes()) { + // In MongoDB 4.4, the listIndexes and the mongo shell helper method db.collection.getIndexes() + // no longer returns the namespace ns field in the index specification documents. + index.remove("ns"); + // some versions of Mongo return ints, some longs. Convert all to longs. + if (index.containsKey("expireAfterSeconds")) { + index.put("expireAfterSeconds", ((Number) index.get("expireAfterSeconds")).longValue()); + } + indexes.add(index); + } return indexes; } @@ -313,18 +322,15 @@ public void indexesConfig() throws Exception { new Document("v", INDEX_VER) .append("unique", true) .append("key", new Document("config", 1)) - .append("name", "config_1") - .append("ns", "MongoStartUpTest.config"), + .append("name", "config_1"), new Document("v", INDEX_VER) .append("key", new Document("_id", 1)) .append("name", "_id_") - .append("ns", "MongoStartUpTest.config") ); assertThat("incorrect indexes", getIndexes(db, "config"), is(expectedIndexes)); final MongoDatabase wsdb = mongoClient.getDatabase("indexesConfig"); createIndexes("indexesConfig"); - setNamespace(expectedIndexes, "indexesConfig.config"); assertThat("incorrect indexes", getIndexes(wsdb, "config"), is(expectedIndexes)); } @@ -334,18 +340,14 @@ public void indexesDynamicConfig() throws Exception { new Document("v", INDEX_VER) .append("unique", true) .append("key", new Document("key", 1)) - .append("name", "key_1") - .append("ns", "MongoStartUpTest.dyncfg"), + .append("name", "key_1"), new Document("v", INDEX_VER) .append("key", new Document("_id", 1)) .append("name", "_id_") - .append("ns", "MongoStartUpTest.dyncfg") ); assertThat("incorrect indexes", getIndexes(db, "dyncfg"), is(expectedIndexes)); final MongoDatabase wsdb = mongoClient.getDatabase("indexesDynConfig"); - createIndexes("indexesDynConfig"); - setNamespace(expectedIndexes, "indexesDynConfig.dyncfg"); assertThat("incorrect indexes", getIndexes(wsdb, "dyncfg"), is(expectedIndexes)); }