diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/CollectionOptions.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/CollectionOptions.java index 469fc1c94..320a9d4e1 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/CollectionOptions.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/CollectionOptions.java @@ -53,7 +53,9 @@ public class CollectionOptions { this.collation = collation; } - private CollectionOptions() {} + private CollectionOptions() { + this.collation = Optional.empty(); + } /** * Create new {@link CollectionOptions} by just providing the {@link Collation} to use. diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateTests.java index 3d208270a..e1465f2ea 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateTests.java @@ -114,8 +114,6 @@ public class MongoTemplateTests { private static final org.springframework.data.util.Version TWO_DOT_FOUR = org.springframework.data.util.Version .parse("2.4"); - private static final org.springframework.data.util.Version TWO_DOT_EIGHT = org.springframework.data.util.Version - .parse("2.8"); private static final org.springframework.data.util.Version THREE_DOT_FOUR = org.springframework.data.util.Version .parse("3.4"); @@ -333,6 +331,26 @@ public class MongoTemplateTests { template.insertAll(records); } + @Test // DATAMONGO-1687 + public void createCappedCollection() { + + template.createCollection(Person.class, CollectionOptions.empty().capped(1000).maxDocuments(1000)); + + org.bson.Document collectionOptions = getCollectionInfo(template.getCollectionName(Person.class)).get("options", + org.bson.Document.class); + assertThat(collectionOptions.get("capped"), is(true)); + } + + private org.bson.Document getCollectionInfo(String collectionName) { + + return template.execute(db -> { + + org.bson.Document result = db.runCommand(new org.bson.Document().append("listCollections", 1).append("filter", + new org.bson.Document("name", collectionName))); + return (org.bson.Document) result.get("cursor", org.bson.Document.class).get("firstBatch", List.class).get(0); + }); + } + @Test @SuppressWarnings("deprecation") public void testEnsureIndex() throws Exception {