From 7bcf0322d24d73c23c3b62e1118a008b2e0bbfff Mon Sep 17 00:00:00 2001 From: Christoph Strobl Date: Thu, 10 Mar 2022 14:30:08 +0100 Subject: [PATCH] Propagate time series options correctly. This commit fixes an issue when creating a collection via MongoTemplate without passing on type information. In this case potential time series information was lost. Closes #3984 Original pull request: #3990. --- .../data/mongodb/core/MongoTemplateUnitTests.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateUnitTests.java index 5ce1ac98b..7cd09fa8a 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateUnitTests.java @@ -2300,6 +2300,18 @@ public class MongoTemplateUnitTests extends MongoOperationsUnitTests { verify(collection).countDocuments(any(Document.class), any()); } + @Test // GH-3984 + void templatePassesOnTimeSeriesOptionsWhenNoTypeGiven() { + + template.createCollection("time-series-collection", CollectionOptions.timeSeries("time_stamp")); + + ArgumentCaptor options = ArgumentCaptor.forClass(CreateCollectionOptions.class); + verify(db).createCollection(any(), options.capture()); + + assertThat(options.getValue().getTimeSeriesOptions().toString()) + .isEqualTo(new com.mongodb.client.model.TimeSeriesOptions("time_stamp").toString()); + } + class AutogenerateableId { @Id BigInteger id;