diff --git a/pom.xml b/pom.xml index 3daab4d790..5bc0828a0e 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ org.springframework.data spring-data-mongodb-parent - 5.0.0-SNAPSHOT + 5.0.x-GH-5013-SNAPSHOT pom Spring Data MongoDB diff --git a/spring-data-mongodb-distribution/pom.xml b/spring-data-mongodb-distribution/pom.xml index fc88571622..618f4fbbba 100644 --- a/spring-data-mongodb-distribution/pom.xml +++ b/spring-data-mongodb-distribution/pom.xml @@ -15,7 +15,7 @@ org.springframework.data spring-data-mongodb-parent - 5.0.0-SNAPSHOT + 5.0.x-GH-5013-SNAPSHOT ../pom.xml diff --git a/spring-data-mongodb/pom.xml b/spring-data-mongodb/pom.xml index 6f34da5660..47ac2ea10a 100644 --- a/spring-data-mongodb/pom.xml +++ b/spring-data-mongodb/pom.xml @@ -13,7 +13,7 @@ org.springframework.data spring-data-mongodb-parent - 5.0.0-SNAPSHOT + 5.0.x-GH-5013-SNAPSHOT ../pom.xml diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/ReactiveTransactionIntegrationTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/ReactiveTransactionIntegrationTests.java index a6135939de..813012ab41 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/ReactiveTransactionIntegrationTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/ReactiveTransactionIntegrationTests.java @@ -33,8 +33,8 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.DisabledIfSystemProperty; -import org.junit.jupiter.api.extension.ExtendWith; import org.junitpioneer.jupiter.SetSystemProperty; + import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -47,7 +47,6 @@ import org.springframework.data.mongodb.test.util.Client; import org.springframework.data.mongodb.test.util.EnableIfMongoServerVersion; import org.springframework.data.mongodb.test.util.EnableIfReplicaSetAvailable; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import org.springframework.data.mongodb.test.util.MongoTestUtils; import org.springframework.transaction.TransactionSystemException; import org.springframework.transaction.annotation.EnableTransactionManagement; @@ -67,7 +66,6 @@ * @author Christoph Strobl * @author Yan Kardziyaka */ -@ExtendWith(MongoClientExtension.class) @EnableIfMongoServerVersion(isGreaterThanEqual = "4.0") @EnableIfReplicaSetAvailable @DisabledIfSystemProperty(named = "user.name", matches = "jenkins") diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AuditingViaJavaConfigRepositoriesTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AuditingViaJavaConfigRepositoriesTests.java index c3122d2850..4f9cab6011 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AuditingViaJavaConfigRepositoriesTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AuditingViaJavaConfigRepositoriesTests.java @@ -29,6 +29,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Bean; @@ -48,7 +49,6 @@ import org.springframework.data.mongodb.repository.MongoRepository; import org.springframework.data.mongodb.repository.config.EnableMongoRepositories; import org.springframework.data.mongodb.test.util.Client; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import org.springframework.data.mongodb.test.util.MongoClientClosingTestConfiguration; import org.springframework.data.mongodb.test.util.MongoTestUtils; import org.springframework.stereotype.Repository; @@ -65,7 +65,7 @@ * @author Oliver Gierke * @author Mark Paluch */ -@ExtendWith({ MongoClientExtension.class, SpringExtension.class }) +@ExtendWith({ SpringExtension.class }) @ContextConfiguration class AuditingViaJavaConfigRepositoriesTests { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/ReactiveAuditingTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/ReactiveAuditingTests.java index fc47fd0572..2491677f01 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/ReactiveAuditingTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/ReactiveAuditingTests.java @@ -17,12 +17,6 @@ import static org.assertj.core.api.Assertions.*; -import org.springframework.core.ResolvableType; -import org.springframework.data.mapping.callback.EntityCallback; -import org.springframework.data.mongodb.core.mapping.event.AuditingEntityCallback; -import org.springframework.data.mongodb.core.mapping.event.ReactiveAuditingEntityCallback; -import org.springframework.data.mongodb.test.util.ReactiveMongoClientClosingTestConfiguration; -import org.springframework.test.util.ReflectionTestUtils; import reactor.core.publisher.Mono; import reactor.test.StepVerifier; @@ -42,18 +36,23 @@ import org.springframework.context.annotation.ComponentScan.Filter; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.FilterType; +import org.springframework.core.ResolvableType; import org.springframework.data.annotation.Version; import org.springframework.data.domain.ReactiveAuditorAware; +import org.springframework.data.mapping.callback.EntityCallback; import org.springframework.data.mongodb.core.AuditablePerson; import org.springframework.data.mongodb.core.ReactiveMongoOperations; import org.springframework.data.mongodb.core.mapping.MongoMappingContext; import org.springframework.data.mongodb.core.mapping.MongoPersistentEntity; +import org.springframework.data.mongodb.core.mapping.event.AuditingEntityCallback; +import org.springframework.data.mongodb.core.mapping.event.ReactiveAuditingEntityCallback; import org.springframework.data.mongodb.repository.ReactiveMongoRepository; import org.springframework.data.mongodb.repository.config.EnableReactiveMongoRepositories; import org.springframework.data.mongodb.test.util.Client; -import org.springframework.data.mongodb.test.util.MongoClientExtension; +import org.springframework.data.mongodb.test.util.ReactiveMongoClientClosingTestConfiguration; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit.jupiter.SpringExtension; +import org.springframework.test.util.ReflectionTestUtils; import com.mongodb.reactivestreams.client.MongoClient; @@ -62,7 +61,7 @@ * * @author Mark Paluch */ -@ExtendWith({ MongoClientExtension.class, SpringExtension.class }) +@ExtendWith({ SpringExtension.class }) @ContextConfiguration class ReactiveAuditingTests { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ClientSessionTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ClientSessionTests.java index 7fb1cddafb..dce9a838c1 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ClientSessionTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ClientSessionTests.java @@ -24,14 +24,13 @@ import org.bson.Document; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.convert.MappingMongoConverter; import org.springframework.data.mongodb.core.mapping.DBRef; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.test.util.EnableIfMongoServerVersion; import org.springframework.data.mongodb.test.util.EnableIfReplicaSetAvailable; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import org.springframework.data.mongodb.test.util.MongoTestUtils; import org.springframework.data.mongodb.test.util.ReplSetClient; import org.springframework.test.util.ReflectionTestUtils; @@ -46,7 +45,6 @@ * @author Christoph Strobl * @author Mark Paluch */ -@ExtendWith({ MongoClientExtension.class }) @EnableIfReplicaSetAvailable @EnableIfMongoServerVersion(isGreaterThanEqual = "4.0") class ClientSessionTests { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultBulkOperationsIntegrationTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultBulkOperationsIntegrationTests.java index f0e7eb67b0..b3933cb373 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultBulkOperationsIntegrationTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultBulkOperationsIntegrationTests.java @@ -16,7 +16,7 @@ package org.springframework.data.mongodb.core; import static org.assertj.core.api.Assertions.*; -import static org.springframework.data.domain.Sort.Direction.DESC; +import static org.springframework.data.domain.Sort.Direction.*; import java.util.ArrayList; import java.util.Arrays; @@ -27,10 +27,10 @@ import org.bson.Document; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; + import org.springframework.data.domain.Sort; import org.springframework.data.mongodb.BulkOperationException; import org.springframework.data.mongodb.core.BulkOperations.BulkMode; @@ -45,7 +45,6 @@ import org.springframework.data.mongodb.core.query.Update; import org.springframework.data.mongodb.core.query.UpdateDefinition; import org.springframework.data.mongodb.test.util.EnableIfMongoServerVersion; -import org.springframework.data.mongodb.test.util.MongoTemplateExtension; import org.springframework.data.mongodb.test.util.MongoTestTemplate; import org.springframework.data.mongodb.test.util.Template; import org.springframework.data.util.Pair; @@ -63,7 +62,6 @@ * @author Christoph Strobl * @author Minsu Kim */ -@ExtendWith(MongoTemplateExtension.class) public class DefaultBulkOperationsIntegrationTests { static final String COLLECTION_NAME = "bulk_ops"; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultIndexOperationsIntegrationTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultIndexOperationsIntegrationTests.java index 78a6e6b496..3907841dd2 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultIndexOperationsIntegrationTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultIndexOperationsIntegrationTests.java @@ -15,15 +15,15 @@ */ package org.springframework.data.mongodb.core; -import static org.springframework.data.mongodb.core.index.PartialIndexFilter.of; -import static org.springframework.data.mongodb.core.query.Criteria.where; -import static org.springframework.data.mongodb.test.util.Assertions.assertThat; +import static org.springframework.data.mongodb.core.index.PartialIndexFilter.*; +import static org.springframework.data.mongodb.core.query.Criteria.*; +import static org.springframework.data.mongodb.test.util.Assertions.*; import org.bson.BsonDocument; import org.bson.Document; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.data.domain.Sort.Direction; import org.springframework.data.mongodb.core.index.Index; import org.springframework.data.mongodb.core.index.IndexDefinition; @@ -32,7 +32,6 @@ import org.springframework.data.mongodb.core.mapping.Field; import org.springframework.data.mongodb.core.query.Collation; import org.springframework.data.mongodb.core.query.Collation.CaseFirst; -import org.springframework.data.mongodb.test.util.MongoTemplateExtension; import org.springframework.data.mongodb.test.util.MongoTestTemplate; import org.springframework.data.mongodb.test.util.Template; import org.springframework.util.ObjectUtils; @@ -47,7 +46,6 @@ * @author Oliver Gierke * @author Mark Paluch */ -@ExtendWith(MongoTemplateExtension.class) public class DefaultIndexOperationsIntegrationTests { static final String COLLECTION_NAME = "default-index-operations-tests"; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultReactiveBulkOperationsTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultReactiveBulkOperationsTests.java index 79bf563159..0db2f8be91 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultReactiveBulkOperationsTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultReactiveBulkOperationsTests.java @@ -16,11 +16,8 @@ package org.springframework.data.mongodb.core; import static org.assertj.core.api.Assertions.*; -import static org.springframework.data.domain.Sort.Direction.DESC; +import static org.springframework.data.domain.Sort.Direction.*; -import org.springframework.data.domain.Sort; -import org.springframework.data.mongodb.core.mapping.Field; -import org.springframework.data.mongodb.test.util.EnableIfMongoServerVersion; import reactor.core.publisher.Flux; import reactor.test.StepVerifier; @@ -32,21 +29,23 @@ import org.bson.Document; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.EnumSource; import org.junit.jupiter.params.provider.MethodSource; + import org.springframework.dao.DuplicateKeyException; +import org.springframework.data.domain.Sort; import org.springframework.data.mongodb.core.BulkOperations.BulkMode; import org.springframework.data.mongodb.core.DefaultReactiveBulkOperations.ReactiveBulkOperationContext; import org.springframework.data.mongodb.core.convert.QueryMapper; import org.springframework.data.mongodb.core.convert.UpdateMapper; +import org.springframework.data.mongodb.core.mapping.Field; import org.springframework.data.mongodb.core.mapping.MongoPersistentEntity; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Update; -import org.springframework.data.mongodb.test.util.MongoTemplateExtension; +import org.springframework.data.mongodb.test.util.EnableIfMongoServerVersion; import org.springframework.data.mongodb.test.util.ReactiveMongoTestTemplate; import org.springframework.data.mongodb.test.util.Template; @@ -59,7 +58,6 @@ * * @author Christoph Strobl */ -@ExtendWith(MongoTemplateExtension.class) class DefaultReactiveBulkOperationsTests { static final String COLLECTION_NAME = "reactive-bulk-ops"; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultReactiveIndexOperationsTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultReactiveIndexOperationsTests.java index 5ecce43102..58ded58983 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultReactiveIndexOperationsTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultReactiveIndexOperationsTests.java @@ -26,7 +26,7 @@ import org.bson.Document; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.data.domain.Sort.Direction; import org.springframework.data.mongodb.core.convert.QueryMapper; import org.springframework.data.mongodb.core.index.Index; @@ -35,7 +35,6 @@ import org.springframework.data.mongodb.core.mapping.Field; import org.springframework.data.mongodb.core.query.Collation; import org.springframework.data.mongodb.core.query.Collation.CaseFirst; -import org.springframework.data.mongodb.test.util.MongoTemplateExtension; import org.springframework.data.mongodb.test.util.ReactiveMongoTestTemplate; import org.springframework.data.mongodb.test.util.Template; @@ -47,7 +46,6 @@ * @author Mark Paluch * @author Mathieu Ouellet */ -@ExtendWith(MongoTemplateExtension.class) public class DefaultReactiveIndexOperationsTests { @Template(initialEntitySet = DefaultIndexOperationsIntegrationTestsSample.class) // diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultScriptOperationsTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultScriptOperationsTests.java index 6331e1dbc7..15ea5ddbf5 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultScriptOperationsTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultScriptOperationsTests.java @@ -33,7 +33,6 @@ import org.springframework.data.mongodb.core.script.NamedMongoScript; import org.springframework.data.mongodb.test.util.Client; import org.springframework.data.mongodb.test.util.EnableIfMongoServerVersion; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit.jupiter.SpringExtension; @@ -46,7 +45,7 @@ * @author Oliver Gierke * @since 1.7 */ -@ExtendWith({ MongoClientExtension.class, SpringExtension.class }) +@ExtendWith({ SpringExtension.class }) @EnableIfMongoServerVersion(isLessThan = "4.1.0") @ContextConfiguration public class DefaultScriptOperationsTests { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ExecutableFindOperationSupportTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ExecutableFindOperationSupportTests.java index 835367990a..b8167fa0b2 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ExecutableFindOperationSupportTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ExecutableFindOperationSupportTests.java @@ -48,7 +48,6 @@ import org.springframework.data.mongodb.core.query.BasicQuery; import org.springframework.data.mongodb.core.query.NearQuery; import org.springframework.data.mongodb.test.util.DirtiesStateExtension; -import org.springframework.data.mongodb.test.util.MongoTemplateExtension; import org.springframework.data.mongodb.test.util.MongoTestTemplate; import org.springframework.data.mongodb.test.util.Template; @@ -58,7 +57,7 @@ * @author Christoph Strobl * @author Mark Paluch */ -@ExtendWith({ MongoTemplateExtension.class, DirtiesStateExtension.class }) +@ExtendWith({ DirtiesStateExtension.class }) @TestInstance(TestInstance.Lifecycle.PER_CLASS) class ExecutableFindOperationSupportTests implements StateFunctions { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ExecutableRemoveOperationSupportTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ExecutableRemoveOperationSupportTests.java index fe19672068..42c713f531 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ExecutableRemoveOperationSupportTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ExecutableRemoveOperationSupportTests.java @@ -25,10 +25,9 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Field; -import org.springframework.data.mongodb.test.util.MongoTemplateExtension; import org.springframework.data.mongodb.test.util.MongoTestTemplate; import org.springframework.data.mongodb.test.util.Template; @@ -40,7 +39,6 @@ * @author Christoph Strobl * @author Mark Paluch */ -@ExtendWith(MongoTemplateExtension.class) class ExecutableRemoveOperationSupportTests { private static final String STAR_WARS = "star-wars"; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ExecutableUpdateOperationSupportTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ExecutableUpdateOperationSupportTests.java index 46732b1a29..8e096f2662 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ExecutableUpdateOperationSupportTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ExecutableUpdateOperationSupportTests.java @@ -25,12 +25,11 @@ import org.bson.BsonString; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Field; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Update; -import org.springframework.data.mongodb.test.util.MongoTemplateExtension; import org.springframework.data.mongodb.test.util.MongoTestTemplate; import org.springframework.data.mongodb.test.util.Template; @@ -42,7 +41,6 @@ * @author Christoph Strobl * @author Mark Paluch */ -@ExtendWith(MongoTemplateExtension.class) class ExecutableUpdateOperationSupportTests { private static final String STAR_WARS = "star-wars"; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/JsonSchemaQueryTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/JsonSchemaQueryTests.java index 3afcef93d0..9ec050a955 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/JsonSchemaQueryTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/JsonSchemaQueryTests.java @@ -27,14 +27,13 @@ import org.bson.Document; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Field; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.schema.JsonSchemaProperty; import org.springframework.data.mongodb.core.schema.MongoJsonSchema; import org.springframework.data.mongodb.test.util.Client; -import org.springframework.data.mongodb.test.util.MongoTemplateExtension; import org.springframework.data.mongodb.test.util.MongoTestTemplate; import org.springframework.data.mongodb.test.util.Template; @@ -42,20 +41,19 @@ * @author Christoph Strobl * @author Mark Paluch */ -@ExtendWith(MongoTemplateExtension.class) public class JsonSchemaQueryTests { - public static final String DATABASE_NAME = "json-schema-query-tests"; + private static final String DATABASE_NAME = "json-schema-query-tests"; - static @Client com.mongodb.reactivestreams.client.MongoClient reactiveClient; + private static @Client com.mongodb.reactivestreams.client.MongoClient reactiveClient; @Template(database = DATABASE_NAME, initialEntitySet = Person.class) // - static MongoTestTemplate template; + private static MongoTestTemplate template; - Person jellyBelly, roseSpringHeart, kazmardBoombub; + private Person jellyBelly, roseSpringHeart, kazmardBoombub; @BeforeEach - public void setUp() { + void setUp() { template.flush(); @@ -90,7 +88,7 @@ public void setUp() { } @Test // DATAMONGO-1835 - public void createsWorkingSchema() { + void createsWorkingSchema() { try { template.dropCollection("person_schema"); @@ -102,7 +100,7 @@ public void createsWorkingSchema() { } @Test // DATAMONGO-1835 - public void queriesBooleanType() { + void queriesBooleanType() { MongoJsonSchema schema = MongoJsonSchema.builder().properties(JsonSchemaProperty.bool("alive")).build(); @@ -111,7 +109,7 @@ public void queriesBooleanType() { } @Test // DATAMONGO-1835 - public void findsDocumentsWithRequiredFieldsCorrectly() { + void findsDocumentsWithRequiredFieldsCorrectly() { MongoJsonSchema schema = MongoJsonSchema.builder().required("address").build(); @@ -120,7 +118,7 @@ public void findsDocumentsWithRequiredFieldsCorrectly() { } @Test // DATAMONGO-1835 - public void findsDocumentsWithRequiredFieldsReactively() { + void findsDocumentsWithRequiredFieldsReactively() { MongoJsonSchema schema = MongoJsonSchema.builder().required("address").build(); @@ -130,7 +128,7 @@ public void findsDocumentsWithRequiredFieldsReactively() { } @Test // DATAMONGO-1835 - public void findsDocumentsWithBsonFieldTypesCorrectly() { + void findsDocumentsWithBsonFieldTypesCorrectly() { MongoJsonSchema schema = MongoJsonSchema.builder().property(int32("value")).build(); @@ -139,7 +137,7 @@ public void findsDocumentsWithBsonFieldTypesCorrectly() { } @Test // DATAMONGO-1835 - public void findsDocumentsWithJsonFieldTypesCorrectly() { + void findsDocumentsWithJsonFieldTypesCorrectly() { MongoJsonSchema schema = MongoJsonSchema.builder().property(number("value")).build(); @@ -148,7 +146,7 @@ public void findsDocumentsWithJsonFieldTypesCorrectly() { } @Test // DATAMONGO-1835 - public void combineSchemaWithOtherCriteria() { + void combineSchemaWithOtherCriteria() { MongoJsonSchema schema = MongoJsonSchema.builder().property(number("value")).build(); @@ -158,7 +156,7 @@ public void combineSchemaWithOtherCriteria() { } @Test // DATAMONGO-1835 - public void usesMappedFieldNameForRequiredProperties() { + void usesMappedFieldNameForRequiredProperties() { MongoJsonSchema schema = MongoJsonSchema.builder().required("name").build(); @@ -167,7 +165,7 @@ public void usesMappedFieldNameForRequiredProperties() { } @Test // DATAMONGO-1835 - public void usesMappedFieldNameForProperties() { + void usesMappedFieldNameForProperties() { MongoJsonSchema schema = MongoJsonSchema.builder().property(string("name").matching("^R.*")).build(); @@ -176,7 +174,7 @@ public void usesMappedFieldNameForProperties() { } @Test // DATAMONGO-1835 - public void mapsNestedFieldName() { + void mapsNestedFieldName() { MongoJsonSchema schema = MongoJsonSchema.builder() // .required("address") // @@ -187,7 +185,7 @@ public void mapsNestedFieldName() { } @Test // DATAMONGO-1835 - public void mapsEnumValuesCorrectly() { + void mapsEnumValuesCorrectly() { MongoJsonSchema schema = MongoJsonSchema.builder() .property(untyped("gender").possibleValues(Gender.PIXY, Gender.GOBLIN)).build(); @@ -197,19 +195,19 @@ public void mapsEnumValuesCorrectly() { } @Test // DATAMONGO-1835 - public void useTypeOperatorOnFieldLevel() { + void useTypeOperatorOnFieldLevel() { assertThat(template.find(query(where("value").type(Type.intType())), Person.class)).containsExactly(jellyBelly); } @Test // DATAMONGO-1835 - public void useTypeOperatorWithMultipleTypesOnFieldLevel() { + void useTypeOperatorWithMultipleTypesOnFieldLevel() { assertThat(template.find(query(where("value").type(Type.intType(), Type.stringType())), Person.class)) .containsExactlyInAnyOrder(jellyBelly, kazmardBoombub); } @Test // DATAMONGO-1835 - public void findsWithSchemaReturningRawDocument() { + void findsWithSchemaReturningRawDocument() { MongoJsonSchema schema = MongoJsonSchema.builder().required("address").build(); @@ -237,7 +235,7 @@ public String getName() { return this.name; } - public Gender getGender() { + Gender getGender() { return this.gender; } @@ -249,7 +247,7 @@ public Object getValue() { return this.value; } - public boolean isAlive() { + boolean isAlive() { return this.alive; } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateCollationTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateCollationTests.java index deaffab4b2..bbb3c0eaef 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateCollationTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateCollationTests.java @@ -26,6 +26,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration; @@ -33,7 +34,6 @@ import org.springframework.data.mongodb.core.query.Collation.Alternate; import org.springframework.data.mongodb.core.query.Collation.ComparisonLevel; import org.springframework.data.mongodb.test.util.Client; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import org.springframework.test.context.junit.jupiter.SpringExtension; import com.mongodb.client.MongoClient; @@ -42,7 +42,7 @@ * @author Christoph Strobl * @author Mark Paluch */ -@ExtendWith({ MongoClientExtension.class, SpringExtension.class }) +@ExtendWith({ SpringExtension.class }) public class MongoTemplateCollationTests { public static final String COLLECTION_NAME = "collation-1"; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateDbRefTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateDbRefTests.java index 498bfec17a..9cfe924256 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateDbRefTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateDbRefTests.java @@ -27,7 +27,7 @@ import org.bson.types.ObjectId; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.convert.LazyLoadingProxy; import org.springframework.data.mongodb.core.convert.LazyLoadingTestUtils; @@ -35,7 +35,6 @@ import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.MongoId; import org.springframework.data.mongodb.core.query.Query; -import org.springframework.data.mongodb.test.util.MongoTemplateExtension; import org.springframework.data.mongodb.test.util.MongoTestTemplate; import org.springframework.data.mongodb.test.util.Template; @@ -47,7 +46,6 @@ * * @author Christoph Strobl */ -@ExtendWith(MongoTemplateExtension.class) public class MongoTemplateDbRefTests { @Template(database = "mongo-template-dbref-tests", diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateDocumentReferenceTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateDocumentReferenceTests.java index 9a6bbb4f29..38c1b989d1 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateDocumentReferenceTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateDocumentReferenceTests.java @@ -33,7 +33,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.core.convert.converter.Converter; import org.springframework.data.annotation.Id; import org.springframework.data.annotation.ReadOnlyProperty; @@ -47,7 +47,6 @@ import org.springframework.data.mongodb.core.mapping.MongoId; import org.springframework.data.mongodb.core.query.Update; import org.springframework.data.mongodb.test.util.Client; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import org.springframework.data.mongodb.test.util.MongoTestTemplate; import com.mongodb.client.MongoClient; @@ -59,7 +58,7 @@ * @author Christoph Strobl * @author Julia Lee */ -@ExtendWith(MongoClientExtension.class) + public class MongoTemplateDocumentReferenceTests { public static final String DB_NAME = "document-reference-tests"; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateFieldProjectionTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateFieldProjectionTests.java index 1cbb5ab519..18f268124b 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateFieldProjectionTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateFieldProjectionTests.java @@ -23,7 +23,7 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.MongoExpression; import org.springframework.data.mongodb.core.aggregation.AggregationSpELExpression; @@ -33,7 +33,6 @@ import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.test.util.EnableIfMongoServerVersion; -import org.springframework.data.mongodb.test.util.MongoTemplateExtension; import org.springframework.data.mongodb.test.util.MongoTestTemplate; import org.springframework.data.mongodb.test.util.Template; @@ -44,7 +43,6 @@ * @author Mark Paluch * @author Giacomo Baso */ -@ExtendWith(MongoTemplateExtension.class) @EnableIfMongoServerVersion(isGreaterThanEqual = "4.4") class MongoTemplateFieldProjectionTests { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateReplaceTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateReplaceTests.java index 6b8e158e55..32068e1efc 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateReplaceTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateReplaceTests.java @@ -32,16 +32,14 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.dao.DataIntegrityViolationException; import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort.Direction; -import org.springframework.data.mongodb.core.aggregation.AggregationUpdate; import org.springframework.data.mongodb.core.mapping.Field; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.test.util.Client; import org.springframework.data.mongodb.test.util.EnableIfMongoServerVersion; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoCollection; @@ -51,7 +49,7 @@ /** * @author Christoph Strobl */ -@ExtendWith(MongoClientExtension.class) + public class MongoTemplateReplaceTests { static final String DB_NAME = "mongo-template-replace-tests"; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateScrollTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateScrollTests.java index 772392f037..ccba26b1ce 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateScrollTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateScrollTests.java @@ -29,10 +29,10 @@ import org.jspecify.annotations.Nullable; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; + import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.support.GenericApplicationContext; import org.springframework.data.annotation.PersistenceCreator; @@ -46,7 +46,6 @@ import org.springframework.data.mongodb.core.mapping.Field; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.test.util.Client; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import org.springframework.data.mongodb.test.util.MongoTestTemplate; import org.springframework.util.ObjectUtils; @@ -58,7 +57,7 @@ * @author Mark Paluch * @author Christoph Strobl */ -@ExtendWith(MongoClientExtension.class) + class MongoTemplateScrollTests { static @Client MongoClient client; 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 5a006bebfe..8575a77533 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 @@ -34,12 +34,11 @@ import java.util.stream.IntStream; import java.util.stream.Stream; -import org.bson.Document; import org.bson.types.ObjectId; import org.jspecify.annotations.Nullable; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.support.GenericApplicationContext; import org.springframework.core.convert.converter.Converter; @@ -88,7 +87,6 @@ import org.springframework.data.mongodb.core.query.Update; import org.springframework.data.mongodb.test.util.Client; import org.springframework.data.mongodb.test.util.EnableIfMongoServerVersion; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import org.springframework.data.mongodb.test.util.MongoTestTemplate; import org.springframework.data.mongodb.test.util.MongoTestUtils; import org.springframework.data.mongodb.test.util.MongoVersion; @@ -129,7 +127,6 @@ * @author Jakub Zurawa * @author Florian Lüdiger */ -@ExtendWith(MongoClientExtension.class) public class MongoTemplateTests { public static final String DB_NAME = "mongo-template-tests"; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateTransactionTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateTransactionTests.java index ec0ab192fa..1d9688cef6 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateTransactionTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateTransactionTests.java @@ -33,6 +33,7 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.junitpioneer.jupiter.SetSystemProperty; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -49,7 +50,6 @@ import org.springframework.data.mongodb.test.util.AfterTransactionAssertion; import org.springframework.data.mongodb.test.util.EnableIfMongoServerVersion; import org.springframework.data.mongodb.test.util.EnableIfReplicaSetAvailable; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import org.springframework.data.mongodb.test.util.ReplSetClient; import org.springframework.test.annotation.Rollback; import org.springframework.test.context.ContextConfiguration; @@ -74,7 +74,7 @@ * @author Yan Kardziyaka * @currentRead Shadow's Edge - Brent Weeks */ -@ExtendWith({ MongoClientExtension.class, SpringExtension.class }) +@ExtendWith({ SpringExtension.class }) @EnableIfReplicaSetAvailable @EnableIfMongoServerVersion(isGreaterThanEqual = "4.0") @ContextConfiguration diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateUnwrappedTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateUnwrappedTests.java index b8fc2986c2..bb392d0a0a 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateUnwrappedTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateUnwrappedTests.java @@ -24,11 +24,10 @@ import java.util.Objects; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.data.mongodb.core.mapping.Field; import org.springframework.data.mongodb.core.mapping.Unwrapped; import org.springframework.data.mongodb.core.query.Query; -import org.springframework.data.mongodb.test.util.MongoTemplateExtension; import org.springframework.data.mongodb.test.util.Template; /** @@ -36,7 +35,6 @@ * * @author Christoph Strobl */ -@ExtendWith(MongoTemplateExtension.class) class MongoTemplateUnwrappedTests { private static @Template MongoTemplate template; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateUpdateTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateUpdateTests.java index 4249506d77..6f13481a64 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateUpdateTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateUpdateTests.java @@ -15,7 +15,7 @@ */ package org.springframework.data.mongodb.core; -import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.*; import java.util.ArrayList; import java.util.Arrays; @@ -24,13 +24,12 @@ import java.util.Objects; import java.util.stream.Stream; -import com.mongodb.client.result.UpdateResult; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; + import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Version; import org.springframework.data.domain.Sort; @@ -47,16 +46,15 @@ import org.springframework.data.mongodb.core.query.Update; import org.springframework.data.mongodb.core.query.UpdateDefinition; import org.springframework.data.mongodb.test.util.EnableIfMongoServerVersion; -import org.springframework.data.mongodb.test.util.MongoTemplateExtension; import org.springframework.data.mongodb.test.util.MongoTestTemplate; import org.springframework.data.mongodb.test.util.Template; import com.mongodb.client.MongoCollection; +import com.mongodb.client.result.UpdateResult; /** * @author Christoph Strobl */ -@ExtendWith({ MongoTemplateExtension.class }) class MongoTemplateUpdateTests { @Template(initialEntitySet = { Score.class, Versioned.class, Book.class }) // diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateValidationTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateValidationTests.java index fd1b70f3c7..44abef1d4c 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateValidationTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateValidationTests.java @@ -29,6 +29,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.dao.DataIntegrityViolationException; @@ -39,7 +40,6 @@ import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.schema.MongoJsonSchema; import org.springframework.data.mongodb.test.util.Client; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import org.springframework.test.context.junit.jupiter.SpringExtension; import com.mongodb.client.MongoClient; @@ -56,7 +56,7 @@ * @author Christoph Strobl * @author Julia Lee */ -@ExtendWith({ MongoClientExtension.class, SpringExtension.class }) +@ExtendWith({ SpringExtension.class }) public class MongoTemplateValidationTests { static final String COLLECTION_NAME = "validation-1"; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateViewTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateViewTests.java index 15fe90a34a..b630ed19c6 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateViewTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateViewTests.java @@ -27,13 +27,12 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.data.mongodb.core.aggregation.AggregationPipeline; import org.springframework.data.mongodb.core.mapping.Field; import org.springframework.data.mongodb.core.query.Collation; import org.springframework.data.mongodb.test.util.Client; import org.springframework.data.mongodb.test.util.CollectionInfo; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import org.springframework.data.mongodb.test.util.MongoTestUtils; import com.mongodb.client.MongoClient; @@ -43,7 +42,7 @@ * * @author Christoph Strobl */ -@ExtendWith(MongoClientExtension.class) + public class MongoTemplateViewTests { static @Client MongoClient client; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/NoExplicitIdTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/NoExplicitIdTests.java index 8604fd960d..bbd53a8b1f 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/NoExplicitIdTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/NoExplicitIdTests.java @@ -27,6 +27,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.ComponentScan.Filter; import org.springframework.context.annotation.Configuration; @@ -35,7 +36,6 @@ import org.springframework.data.mongodb.repository.MongoRepository; import org.springframework.data.mongodb.repository.config.EnableMongoRepositories; import org.springframework.data.mongodb.test.util.Client; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit.jupiter.SpringExtension; @@ -47,7 +47,7 @@ * @author Christoph Strobl * @author Mark Paluch */ -@ExtendWith({ MongoClientExtension.class, SpringExtension.class }) +@ExtendWith({ SpringExtension.class }) @ContextConfiguration public class NoExplicitIdTests { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/QueryByExampleTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/QueryByExampleTests.java index 52ee79aa1f..f27e4774ed 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/QueryByExampleTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/QueryByExampleTests.java @@ -22,7 +22,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.data.annotation.Id; import org.springframework.data.domain.Example; import org.springframework.data.domain.ExampleMatcher; @@ -31,7 +31,6 @@ import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.UntypedExampleMatcher; -import org.springframework.data.mongodb.test.util.MongoTemplateExtension; import org.springframework.data.mongodb.test.util.MongoTestTemplate; import org.springframework.data.mongodb.test.util.Template; @@ -42,7 +41,6 @@ * @author Mark Paluch * @author Oliver Gierke */ -@ExtendWith(MongoTemplateExtension.class) public class QueryByExampleTests { @Template(initialEntitySet = Person.class) // diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveChangeStreamOperationSupportTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveChangeStreamOperationSupportTests.java index 23d1d03b43..4263902240 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveChangeStreamOperationSupportTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveChangeStreamOperationSupportTests.java @@ -31,11 +31,9 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.data.mongodb.test.util.EnableIfMongoServerVersion; import org.springframework.data.mongodb.test.util.EnableIfReplicaSetAvailable; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import org.springframework.data.mongodb.test.util.MongoTestUtils; import org.springframework.data.mongodb.test.util.ReplSetClient; @@ -47,7 +45,7 @@ * @author Christoph Strobl * @currentRead Dawn Cook - The Decoy Princess */ -@ExtendWith(MongoClientExtension.class) + @EnableIfReplicaSetAvailable public class ReactiveChangeStreamOperationSupportTests { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveClientSessionTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveClientSessionTests.java index 9c49a3a743..b1d1d992f5 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveClientSessionTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveClientSessionTests.java @@ -28,12 +28,10 @@ import org.bson.Document; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.test.util.Client; import org.springframework.data.mongodb.test.util.EnableIfMongoServerVersion; import org.springframework.data.mongodb.test.util.EnableIfReplicaSetAvailable; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import org.springframework.data.mongodb.test.util.MongoTestUtils; import com.mongodb.ClientSessionOptions; @@ -45,7 +43,6 @@ * @author Mark Paluch * @currentRead Beyond the Shadows - Brent Weeks */ -@ExtendWith(MongoClientExtension.class) @EnableIfReplicaSetAvailable public class ReactiveClientSessionTests { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveFindOperationSupportTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveFindOperationSupportTests.java index d51696dd74..adfc90d739 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveFindOperationSupportTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveFindOperationSupportTests.java @@ -38,6 +38,7 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInstance; import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.beans.factory.annotation.Value; import org.springframework.dao.IncorrectResultSizeDataAccessException; import org.springframework.dao.InvalidDataAccessApiUsageException; @@ -51,7 +52,6 @@ import org.springframework.data.mongodb.core.query.NearQuery; import org.springframework.data.mongodb.test.util.Client; import org.springframework.data.mongodb.test.util.DirtiesStateExtension; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import com.mongodb.client.MongoClient; @@ -62,7 +62,7 @@ * @author Christoph Strobl * @author Juergen Zimmermann */ -@ExtendWith({ MongoClientExtension.class, DirtiesStateExtension.class }) +@ExtendWith({ DirtiesStateExtension.class }) @TestInstance(TestInstance.Lifecycle.PER_CLASS) class ReactiveFindOperationSupportTests implements StateFunctions { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateCollationTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateCollationTests.java index effdc931df..d4e80db6b4 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateCollationTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateCollationTests.java @@ -29,12 +29,12 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.data.mongodb.config.AbstractReactiveMongoConfiguration; import org.springframework.data.mongodb.core.query.Collation; import org.springframework.data.mongodb.test.util.Client; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit.jupiter.SpringExtension; @@ -44,7 +44,7 @@ * @author Mark Paluch * @author Christoph Strobl */ -@ExtendWith({ MongoClientExtension.class, SpringExtension.class }) +@ExtendWith({ SpringExtension.class }) @ContextConfiguration public class ReactiveMongoTemplateCollationTests { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateIndexTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateIndexTests.java index 75b38390cb..c0ecdcb35a 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateIndexTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateIndexTests.java @@ -15,6 +15,7 @@ */ package org.springframework.data.mongodb.core; +import static org.assertj.core.data.Index.*; import static org.assertj.core.data.Index.atIndex; import static org.springframework.data.mongodb.test.util.Assertions.*; @@ -29,8 +30,8 @@ import org.bson.Document; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.extension.ExtendWith; import org.junitpioneer.jupiter.RepeatFailedTest; + import org.springframework.dao.DataIntegrityViolationException; import org.springframework.data.annotation.Id; import org.springframework.data.domain.Sort.Direction; @@ -42,7 +43,6 @@ import org.springframework.data.mongodb.core.index.Indexed; import org.springframework.data.mongodb.core.mapping.MongoMappingContext; import org.springframework.data.mongodb.test.util.Client; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import org.springframework.data.mongodb.test.util.MongoTestUtils; import com.mongodb.client.model.IndexOptions; @@ -56,7 +56,7 @@ * @author Christoph Strobl * @author Mathieu Ouellet */ -@ExtendWith(MongoClientExtension.class) + public class ReactiveMongoTemplateIndexTests { private static @Client MongoClient client; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateReplaceTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateReplaceTests.java index 86433ab338..035f45b0b5 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateReplaceTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateReplaceTests.java @@ -20,7 +20,6 @@ import static org.springframework.data.mongodb.core.query.Criteria.*; import static org.springframework.data.mongodb.core.query.Query.*; -import org.springframework.data.mongodb.test.util.EnableIfMongoServerVersion; import reactor.core.publisher.Mono; import reactor.test.StepVerifier; @@ -35,15 +34,15 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; import org.reactivestreams.Publisher; + import org.springframework.dao.DataIntegrityViolationException; import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort.Direction; import org.springframework.data.mongodb.core.mapping.Field; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.test.util.Client; -import org.springframework.data.mongodb.test.util.MongoClientExtension; +import org.springframework.data.mongodb.test.util.EnableIfMongoServerVersion; import com.mongodb.client.model.Filters; import com.mongodb.client.result.UpdateResult; @@ -53,7 +52,7 @@ /** * @author Christoph Strobl */ -@ExtendWith(MongoClientExtension.class) + public class ReactiveMongoTemplateReplaceTests { static final String DB_NAME = "mongo-template-replace-tests"; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateScrollTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateScrollTests.java index 0e6e94bdf7..01ca84fa02 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateScrollTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateScrollTests.java @@ -28,10 +28,10 @@ import org.bson.Document; import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; + import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.support.GenericApplicationContext; import org.springframework.data.domain.ScrollPosition; @@ -40,7 +40,6 @@ import org.springframework.data.mongodb.core.mapping.Field; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.test.util.Client; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import org.springframework.data.mongodb.test.util.ReactiveMongoTestTemplate; import com.mongodb.reactivestreams.client.MongoClient; @@ -51,7 +50,7 @@ * @author Mark Paluch * @author Christoph Strobl */ -@ExtendWith(MongoClientExtension.class) + class ReactiveMongoTemplateScrollTests { static @Client MongoClient client; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateTests.java index f87227cdde..30472a6088 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateTests.java @@ -47,7 +47,6 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.support.GenericApplicationContext; @@ -79,8 +78,6 @@ import org.springframework.data.mongodb.test.util.Client; import org.springframework.data.mongodb.test.util.EnableIfMongoServerVersion; import org.springframework.data.mongodb.test.util.EnableIfReplicaSetAvailable; -import org.springframework.data.mongodb.test.util.MongoClientExtension; -import org.springframework.data.mongodb.test.util.MongoServerCondition; import org.springframework.data.mongodb.test.util.ReactiveMongoTestTemplate; import com.mongodb.WriteConcern; @@ -93,7 +90,6 @@ * @author Mark Paluch * @author Christoph Strobl */ -@ExtendWith({ MongoClientExtension.class, MongoServerCondition.class }) public class ReactiveMongoTemplateTests { private static final String DB_NAME = "reactive-mongo-template-tests"; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateTransactionTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateTransactionTests.java index 5a7271e2b4..daf3ff5d80 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateTransactionTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateTransactionTests.java @@ -28,15 +28,14 @@ import org.bson.Document; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; import org.reactivestreams.Publisher; + import org.springframework.data.domain.Sort; import org.springframework.data.mongodb.ReactiveMongoTransactionManager; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.test.util.Client; import org.springframework.data.mongodb.test.util.EnableIfMongoServerVersion; import org.springframework.data.mongodb.test.util.EnableIfReplicaSetAvailable; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import org.springframework.data.mongodb.test.util.MongoTestUtils; import org.springframework.transaction.ReactiveTransaction; import org.springframework.transaction.reactive.TransactionCallback; @@ -55,7 +54,7 @@ * @author Mathieu Ouellet * @currentRead The Core - Peter V. Brett */ -@ExtendWith(MongoClientExtension.class) + @EnableIfReplicaSetAvailable @EnableIfMongoServerVersion(isGreaterThanEqual = "4.0") public class ReactiveMongoTemplateTransactionTests { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateUpdateTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateUpdateTests.java index 35c27815ff..46be132f23 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateUpdateTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateUpdateTests.java @@ -30,10 +30,10 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; + import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Version; import org.springframework.data.domain.Sort; @@ -50,7 +50,6 @@ import org.springframework.data.mongodb.core.query.UpdateDefinition; import org.springframework.data.mongodb.test.util.Client; import org.springframework.data.mongodb.test.util.EnableIfMongoServerVersion; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import org.springframework.data.mongodb.test.util.MongoTestUtils; import com.mongodb.reactivestreams.client.MongoClient; @@ -59,7 +58,7 @@ /** * @author Christoph Strobl */ -@ExtendWith(MongoClientExtension.class) + @EnableIfMongoServerVersion(isGreaterThanEqual = "4.2") public class ReactiveMongoTemplateUpdateTests { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateViewTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateViewTests.java index 0841ddc37f..03f1bacbf4 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateViewTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateViewTests.java @@ -29,13 +29,12 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.data.mongodb.core.aggregation.AggregationPipeline; import org.springframework.data.mongodb.core.mapping.Field; import org.springframework.data.mongodb.core.query.Collation; import org.springframework.data.mongodb.test.util.Client; import org.springframework.data.mongodb.test.util.CollectionInfo; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import org.springframework.data.mongodb.test.util.MongoTestUtils; import com.mongodb.reactivestreams.client.MongoClient; @@ -43,7 +42,7 @@ /** * @author Christoph Strobl */ -@ExtendWith(MongoClientExtension.class) + public class ReactiveMongoTemplateViewTests { static @Client com.mongodb.client.MongoClient client; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveRemoveOperationSupportTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveRemoveOperationSupportTests.java index cfdc5fe1a1..6b747619e9 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveRemoveOperationSupportTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveRemoveOperationSupportTests.java @@ -15,9 +15,9 @@ */ package org.springframework.data.mongodb.core; -import static org.assertj.core.api.Assertions.assertThat; -import static org.springframework.data.mongodb.core.query.Criteria.where; -import static org.springframework.data.mongodb.core.query.Query.query; +import static org.assertj.core.api.Assertions.*; +import static org.springframework.data.mongodb.core.query.Criteria.*; +import static org.springframework.data.mongodb.core.query.Query.*; import reactor.test.StepVerifier; @@ -26,11 +26,10 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Field; import org.springframework.data.mongodb.test.util.Client; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import com.mongodb.client.MongoClient; @@ -39,7 +38,7 @@ * * @author Mark Paluch */ -@ExtendWith(MongoClientExtension.class) + class ReactiveRemoveOperationSupportTests { private static final String STAR_WARS = "star-wars"; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveUpdateOperationSupportTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveUpdateOperationSupportTests.java index bef67501b3..af74c978ea 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveUpdateOperationSupportTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveUpdateOperationSupportTests.java @@ -15,10 +15,9 @@ */ package org.springframework.data.mongodb.core; -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException; -import static org.springframework.data.mongodb.core.query.Criteria.where; -import static org.springframework.data.mongodb.core.query.Query.query; +import static org.assertj.core.api.Assertions.*; +import static org.springframework.data.mongodb.core.query.Criteria.*; +import static org.springframework.data.mongodb.core.query.Query.*; import reactor.test.StepVerifier; @@ -28,13 +27,12 @@ import org.bson.BsonString; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Field; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Update; import org.springframework.data.mongodb.test.util.Client; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import com.mongodb.client.MongoClient; @@ -43,7 +41,7 @@ * * @author Mark Paluch */ -@ExtendWith(MongoClientExtension.class) + class ReactiveUpdateOperationSupportTests { private static final String STAR_WARS = "star-wars"; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/SessionBoundMongoTemplateTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/SessionBoundMongoTemplateTests.java index 8769656537..63325d4cc3 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/SessionBoundMongoTemplateTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/SessionBoundMongoTemplateTests.java @@ -37,8 +37,8 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mockito; + import org.springframework.aop.Advisor; import org.springframework.aop.framework.Advised; import org.springframework.dao.DataAccessException; @@ -60,7 +60,6 @@ import org.springframework.data.mongodb.core.mapping.MongoMappingContext; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.test.util.EnableIfReplicaSetAvailable; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import org.springframework.data.mongodb.test.util.MongoVersion; import org.springframework.data.mongodb.test.util.ReplSetClient; import org.springframework.test.util.ReflectionTestUtils; @@ -76,7 +75,6 @@ * * @author Christoph Strobl */ -@ExtendWith(MongoClientExtension.class) @EnableIfReplicaSetAvailable public class SessionBoundMongoTemplateTests { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/AggregationTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/AggregationTests.java index 1495dec1c6..50e191500a 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/AggregationTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/AggregationTests.java @@ -46,7 +46,7 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.core.io.ClassPathResource; import org.springframework.data.annotation.Id; import org.springframework.data.domain.Sort; @@ -71,7 +71,6 @@ import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.repository.Person; import org.springframework.data.mongodb.test.util.EnableIfMongoServerVersion; -import org.springframework.data.mongodb.test.util.MongoTemplateExtension; import org.springframework.data.mongodb.test.util.MongoTestTemplate; import org.springframework.data.mongodb.test.util.MongoVersion; import org.springframework.data.mongodb.test.util.Template; @@ -94,7 +93,6 @@ * @author Sangyong Choi * @author Julia Lee */ -@ExtendWith(MongoTemplateExtension.class) public class AggregationTests { private static final String INPUT_COLLECTION = "aggregation_test_collection"; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/SetWindowFieldsOperationTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/SetWindowFieldsOperationTests.java index bc0edcea0b..77dc4d89a5 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/SetWindowFieldsOperationTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/SetWindowFieldsOperationTests.java @@ -24,7 +24,7 @@ import org.bson.Document; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.data.annotation.Id; import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort.Direction; @@ -32,7 +32,6 @@ import org.springframework.data.mongodb.core.aggregation.SetWindowFieldsOperation.Windows; import org.springframework.data.mongodb.core.mapping.Field; import org.springframework.data.mongodb.test.util.EnableIfMongoServerVersion; -import org.springframework.data.mongodb.test.util.MongoTemplateExtension; import org.springframework.data.mongodb.test.util.MongoTestTemplate; import org.springframework.data.mongodb.test.util.Template; @@ -41,7 +40,6 @@ * * @author Christoph Strobl */ -@ExtendWith(MongoTemplateExtension.class) @EnableIfMongoServerVersion(isGreaterThanEqual = "5.0") class SetWindowFieldsOperationTests { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/VectorSearchTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/VectorSearchTests.java index 18991c1768..d5285701ab 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/VectorSearchTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/aggregation/VectorSearchTests.java @@ -167,8 +167,8 @@ static void initIndexes() { template.searchIndexOps(WithVectorFields.class).createIndex(rawIndex); template.searchIndexOps(WithVectorFields.class).createIndex(wrapperIndex); - template.awaitIndexCreation(WithVectorFields.class, rawIndex.getName()); - template.awaitIndexCreation(WithVectorFields.class, wrapperIndex.getName()); + template.awaitSearchIndexCreation(WithVectorFields.class, rawIndex.getName()); + template.awaitSearchIndexCreation(WithVectorFields.class, wrapperIndex.getName()); } private static void assertScoreIsDecreasing(Iterable documents) { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/auditing/MongoTemplateAuditingTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/auditing/MongoTemplateAuditingTests.java index e2e1937da6..2f8a9d0209 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/auditing/MongoTemplateAuditingTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/auditing/MongoTemplateAuditingTests.java @@ -39,7 +39,6 @@ import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.test.util.Client; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import org.springframework.test.context.junit.jupiter.SpringExtension; import com.mongodb.client.MongoClient; @@ -47,7 +46,7 @@ /** * @author Christoph Strobl */ -@ExtendWith({ MongoClientExtension.class, SpringExtension.class }) +@ExtendWith({ SpringExtension.class }) public class MongoTemplateAuditingTests { static @Client MongoClient mongoClient; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/auditing/ReactiveMongoTemplateAuditingTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/auditing/ReactiveMongoTemplateAuditingTests.java index 28429b53dc..f5bcc7dd1d 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/auditing/ReactiveMongoTemplateAuditingTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/auditing/ReactiveMongoTemplateAuditingTests.java @@ -44,7 +44,6 @@ import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.test.util.Client; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import org.springframework.data.mongodb.test.util.MongoTestUtils; import org.springframework.test.context.junit.jupiter.SpringExtension; @@ -56,7 +55,7 @@ * @author Christoph Strobl * @author Mark Paluch */ -@ExtendWith({ MongoClientExtension.class, SpringExtension.class }) +@ExtendWith(SpringExtension.class) class ReactiveMongoTemplateAuditingTests { static final String DB_NAME = "mongo-template-audit-tests"; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MappingMongoConverterTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MappingMongoConverterTests.java index 1ce58eeb47..be8dbced9e 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MappingMongoConverterTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MappingMongoConverterTests.java @@ -27,7 +27,6 @@ import java.time.temporal.ChronoUnit; import java.util.Arrays; import java.util.Collections; -import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Objects; @@ -36,7 +35,7 @@ import org.bson.Document; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.MongoDatabaseFactory; import org.springframework.data.mongodb.core.SimpleMongoClientDatabaseFactory; @@ -44,7 +43,6 @@ import org.springframework.data.mongodb.core.mapping.DBRef; import org.springframework.data.mongodb.core.mapping.MongoMappingContext; import org.springframework.data.mongodb.test.util.Client; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoCollection; @@ -55,7 +53,7 @@ * * @author Christoph Strobl */ -@ExtendWith(MongoClientExtension.class) + public class MappingMongoConverterTests { private static final String DATABASE = "mapping-converter-tests"; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MongoConvertersIntegrationTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MongoConvertersIntegrationTests.java index a1c2fc0897..ee8705fcdd 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MongoConvertersIntegrationTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MongoConvertersIntegrationTests.java @@ -28,14 +28,13 @@ import org.bson.types.ObjectId; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.data.annotation.Id; import org.springframework.data.domain.Vector; import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.MongoVector; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; -import org.springframework.data.mongodb.test.util.MongoTemplateExtension; import org.springframework.data.mongodb.test.util.MongoTestTemplate; import org.springframework.data.mongodb.test.util.Template; import org.springframework.util.ObjectUtils; @@ -47,7 +46,6 @@ * @author Christoph Strobl * @author Mark Paluch */ -@ExtendWith(MongoTemplateExtension.class) public class MongoConvertersIntegrationTests { static final String COLLECTION = "converter-tests"; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/encryption/MongoQueryableEncryptionCollectionCreationTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/encryption/MongoQueryableEncryptionCollectionCreationTests.java index 46c7b235e6..c41e246a9c 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/encryption/MongoQueryableEncryptionCollectionCreationTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/encryption/MongoQueryableEncryptionCollectionCreationTests.java @@ -42,7 +42,6 @@ import org.springframework.data.mongodb.test.util.Client; import org.springframework.data.mongodb.test.util.EnableIfMongoServerVersion; import org.springframework.data.mongodb.test.util.EnableIfReplicaSetAvailable; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit.jupiter.SpringExtension; @@ -53,7 +52,7 @@ * * @author Christoph Strobl */ -@ExtendWith({ MongoClientExtension.class, SpringExtension.class }) +@ExtendWith({ SpringExtension.class }) @EnableIfMongoServerVersion(isGreaterThanEqual = "8.0") @EnableIfReplicaSetAvailable @ContextConfiguration diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/encryption/RangeEncryptionTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/encryption/RangeEncryptionTests.java index 01cbdec9d5..5369d0d70d 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/encryption/RangeEncryptionTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/encryption/RangeEncryptionTests.java @@ -15,9 +15,8 @@ */ package org.springframework.data.mongodb.core.encryption; -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.assertThatThrownBy; -import static org.springframework.data.mongodb.core.query.Criteria.where; +import static org.assertj.core.api.Assertions.*; +import static org.springframework.data.mongodb.core.query.Criteria.*; import java.security.SecureRandom; import java.util.LinkedHashMap; @@ -37,6 +36,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; @@ -59,7 +59,6 @@ import org.springframework.data.mongodb.core.schema.MongoJsonSchema; import org.springframework.data.mongodb.test.util.EnableIfMongoServerVersion; import org.springframework.data.mongodb.test.util.EnableIfReplicaSetAvailable; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import org.springframework.data.mongodb.util.MongoClientVersion; import org.springframework.data.util.Lazy; import org.springframework.test.context.ContextConfiguration; @@ -90,7 +89,7 @@ * @author Ross Lawley * @author Christoph Strobl */ -@ExtendWith({ MongoClientExtension.class, SpringExtension.class }) +@ExtendWith({ SpringExtension.class }) @EnableIfMongoServerVersion(isGreaterThanEqual = "8.0") @EnableIfReplicaSetAvailable @ContextConfiguration(classes = RangeEncryptionTests.EncryptionConfig.class) diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/geo/GeoJsonTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/geo/GeoJsonTests.java index 96c685275f..ca63ddb0d4 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/geo/GeoJsonTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/geo/GeoJsonTests.java @@ -29,6 +29,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.dao.DataAccessException; @@ -49,7 +50,6 @@ import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.test.util.BasicDbListBuilder; import org.springframework.data.mongodb.test.util.Client; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit.jupiter.SpringExtension; @@ -62,7 +62,7 @@ * @author Mark Paluch * @author Ivan Volzhev */ -@ExtendWith({ MongoClientExtension.class, SpringExtension.class }) +@ExtendWith({ SpringExtension.class }) @ContextConfiguration public class GeoJsonTests { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/IndexingIntegrationTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/IndexingIntegrationTests.java index caa40e96c0..c8b11b8ef5 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/IndexingIntegrationTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/IndexingIntegrationTests.java @@ -31,6 +31,7 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.Bean; @@ -48,7 +49,6 @@ import org.springframework.data.mongodb.core.mapping.TimeSeries; import org.springframework.data.mongodb.test.util.Client; import org.springframework.data.mongodb.test.util.EnableIfMongoServerVersion; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit.jupiter.SpringExtension; @@ -64,7 +64,7 @@ * @author Mark Paluch * @author Ben Foster */ -@ExtendWith({ MongoClientExtension.class, SpringExtension.class }) +@ExtendWith({ SpringExtension.class }) @ContextConfiguration public class IndexingIntegrationTests { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/TextIndexTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/TextIndexTests.java index aa37b8bced..0abb357bfd 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/TextIndexTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/TextIndexTests.java @@ -21,13 +21,12 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.data.domain.Sort.Direction; import org.springframework.data.mongodb.core.CollectionOptions; import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.Language; import org.springframework.data.mongodb.core.query.Collation; -import org.springframework.data.mongodb.test.util.MongoTemplateExtension; import org.springframework.data.mongodb.test.util.MongoTestTemplate; import org.springframework.data.mongodb.test.util.Template; @@ -35,7 +34,6 @@ * @author Christoph Strobl * @author Mark Paluch */ -@ExtendWith(MongoTemplateExtension.class) public class TextIndexTests { @Template(initialEntitySet = TextIndexedDocumentRoot.class) diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/VectorIndexIntegrationTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/VectorIndexIntegrationTests.java index 387f075cb5..c76f6bc596 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/VectorIndexIntegrationTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/VectorIndexIntegrationTests.java @@ -17,8 +17,10 @@ import static org.assertj.core.api.Assertions.*; import static org.awaitility.Awaitility.*; +import static org.springframework.data.mongodb.test.util.Assertions.*; import static org.springframework.data.mongodb.test.util.Assertions.assertThat; +import java.time.Duration; import java.util.List; import org.bson.Document; @@ -33,6 +35,7 @@ import org.springframework.data.mongodb.core.index.VectorIndex.SimilarityFunction; import org.springframework.data.mongodb.core.mapping.Field; import org.springframework.data.mongodb.test.util.AtlasContainer; +import org.springframework.data.mongodb.test.util.EnableIfVectorSearchAvailable; import org.springframework.data.mongodb.test.util.MongoTestTemplate; import org.springframework.data.mongodb.test.util.MongoTestUtils; @@ -66,19 +69,22 @@ class VectorIndexIntegrationTests { @BeforeEach void init() { - template.createCollection(Movie.class); + + template.createCollectionIfNotExists(Movie.class); indexOps = template.searchIndexOps(Movie.class); } @AfterEach void cleanup() { + template.flush(Movie.class); template.searchIndexOps(Movie.class).dropAllIndexes(); - template.dropCollection(Movie.class); + template.awaitNoSearchIndexAvailable(Movie.class, Duration.ofSeconds(30)); } @ParameterizedTest // GH-4706 @ValueSource(strings = { "euclidean", "cosine", "dotProduct" }) + @EnableIfVectorSearchAvailable(collection = Movie.class) void createsSimpleVectorIndex(String similarityFunction) { VectorIndex idx = new VectorIndex("vector_index").addVector("plotEmbedding", @@ -98,6 +104,7 @@ void createsSimpleVectorIndex(String similarityFunction) { } @Test // GH-4706 + @EnableIfVectorSearchAvailable(collection = Movie.class) void dropIndex() { VectorIndex idx = new VectorIndex("vector_index").addVector("plotEmbedding", @@ -105,7 +112,7 @@ void dropIndex() { indexOps.createIndex(idx); - template.awaitIndexCreation(Movie.class, idx.getName()); + template.awaitSearchIndexCreation(Movie.class, idx.getName()); indexOps.dropIndex(idx.getName()); @@ -113,6 +120,7 @@ void dropIndex() { } @Test // GH-4706 + @EnableIfVectorSearchAvailable(collection = Movie.class) void statusChanges() throws InterruptedException { String indexName = "vector_index"; @@ -131,6 +139,7 @@ void statusChanges() throws InterruptedException { } @Test // GH-4706 + @EnableIfVectorSearchAvailable(collection = Movie.class) void exists() throws InterruptedException { String indexName = "vector_index"; @@ -148,6 +157,7 @@ void exists() throws InterruptedException { } @Test // GH-4706 + @EnableIfVectorSearchAvailable(collection = Movie.class) void updatesVectorIndex() throws InterruptedException { String indexName = "vector_index"; @@ -177,6 +187,7 @@ void updatesVectorIndex() throws InterruptedException { } @Test // GH-4706 + @EnableIfVectorSearchAvailable(collection = Movie.class) void createsVectorIndexWithFilters() throws InterruptedException { VectorIndex idx = new VectorIndex("vector_index") diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/MappingTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/MappingTests.java index eee407701c..82be189f70 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/MappingTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/MappingTests.java @@ -31,7 +31,7 @@ import org.bson.types.ObjectId; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.dao.DataAccessException; import org.springframework.dao.DuplicateKeyException; import org.springframework.data.annotation.Id; @@ -46,7 +46,6 @@ import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.test.util.Client; -import org.springframework.data.mongodb.test.util.MongoTemplateExtension; import org.springframework.data.mongodb.test.util.MongoTestTemplate; import org.springframework.data.mongodb.test.util.Template; @@ -60,7 +59,6 @@ * @author Thomas Darimont * @author Mark Paluch */ -@ExtendWith(MongoTemplateExtension.class) public class MappingTests { static final String DB_NAME = "mapping-tests"; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/ApplicationContextEventTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/ApplicationContextEventTests.java index 1d44bff5ad..aad9ff18d9 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/ApplicationContextEventTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/ApplicationContextEventTests.java @@ -28,7 +28,7 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.data.annotation.Id; @@ -42,7 +42,6 @@ import org.springframework.data.mongodb.repository.support.MongoRepositoryFactory; import org.springframework.data.mongodb.repository.support.QuerydslMongoPredicateExecutor; import org.springframework.data.mongodb.test.util.Client; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import org.springframework.test.annotation.DirtiesContext; import com.mongodb.WriteConcern; @@ -57,7 +56,6 @@ * @author Jordi Llach * @author Mark Paluch */ -@ExtendWith({ MongoClientExtension.class }) public class ApplicationContextEventTests { private static final String COLLECTION_NAME = "personPojoStringId"; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/messaging/ChangeStreamTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/messaging/ChangeStreamTests.java index 53d093897e..62195239e3 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/messaging/ChangeStreamTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/messaging/ChangeStreamTests.java @@ -38,8 +38,8 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; import org.junitpioneer.jupiter.RepeatFailedTest; + import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.ChangeStreamOptions; import org.springframework.data.mongodb.core.CollectionOptions; @@ -51,7 +51,6 @@ import org.springframework.data.mongodb.core.query.Update; import org.springframework.data.mongodb.test.util.EnableIfMongoServerVersion; import org.springframework.data.mongodb.test.util.EnableIfReplicaSetAvailable; -import org.springframework.data.mongodb.test.util.MongoTemplateExtension; import org.springframework.data.mongodb.test.util.MongoTestTemplate; import org.springframework.data.mongodb.test.util.MongoVersion; import org.springframework.data.mongodb.test.util.Template; @@ -68,7 +67,6 @@ * @author Mark Paluch * @author Myroslav Kosinskyi */ -@ExtendWith({ MongoTemplateExtension.class }) @EnableIfReplicaSetAvailable class ChangeStreamTests { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/messaging/DefaultMessageListenerContainerTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/messaging/DefaultMessageListenerContainerTests.java index 9373845a89..bcae19d32a 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/messaging/DefaultMessageListenerContainerTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/messaging/DefaultMessageListenerContainerTests.java @@ -28,7 +28,7 @@ import org.bson.Document; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.core.task.SimpleAsyncTaskExecutor; import org.springframework.dao.DataAccessException; import org.springframework.data.annotation.Id; @@ -40,8 +40,6 @@ import org.springframework.data.mongodb.test.util.Client; import org.springframework.data.mongodb.test.util.EnableIfMongoServerVersion; import org.springframework.data.mongodb.test.util.EnableIfReplicaSetAvailable; -import org.springframework.data.mongodb.test.util.MongoServerCondition; -import org.springframework.data.mongodb.test.util.MongoTemplateExtension; import org.springframework.data.mongodb.test.util.MongoTestUtils; import org.springframework.data.mongodb.test.util.Template; import org.springframework.util.ErrorHandler; @@ -56,7 +54,6 @@ * * @author Christoph Strobl */ -@ExtendWith({ MongoTemplateExtension.class, MongoServerCondition.class }) public class DefaultMessageListenerContainerTests { static final String DATABASE_NAME = "change-stream-events"; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/messaging/TailableCursorTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/messaging/TailableCursorTests.java index 60d9153212..8b41f9120d 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/messaging/TailableCursorTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/messaging/TailableCursorTests.java @@ -31,7 +31,7 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.CollectionOptions; import org.springframework.data.mongodb.core.MongoTemplate; @@ -39,7 +39,6 @@ import org.springframework.data.mongodb.core.messaging.Message.MessageProperties; import org.springframework.data.mongodb.core.messaging.TailableCursorRequest.TailableCursorRequestOptions; import org.springframework.data.mongodb.test.util.Client; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import com.mongodb.client.MongoClient; @@ -50,7 +49,6 @@ * @author Christoph Strobl * @author Mark Paluch */ -@ExtendWith({ MongoClientExtension.class }) public class TailableCursorTests { static final String COLLECTION_NAME = "user"; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/CriteriaTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/CriteriaTests.java index 72f42db9b5..869d6d67c8 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/CriteriaTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/CriteriaTests.java @@ -25,9 +25,8 @@ import org.bson.types.Binary; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.data.annotation.Id; -import org.springframework.data.mongodb.test.util.MongoTemplateExtension; import org.springframework.data.mongodb.test.util.MongoTestTemplate; import org.springframework.data.mongodb.test.util.Template; @@ -37,7 +36,6 @@ * @author Christoph Strobl * @author Andreas Zink */ -@ExtendWith(MongoTemplateExtension.class) class CriteriaTests { @Template(initialEntitySet = { DocumentWithBitmask.class }) // diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/TextQueryTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/TextQueryTests.java index b12b83fe3a..f04e51c8fd 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/TextQueryTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/TextQueryTests.java @@ -24,7 +24,7 @@ import org.jspecify.annotations.Nullable; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.data.annotation.Id; import org.springframework.data.domain.PageRequest; import org.springframework.data.mongodb.core.index.IndexDefinition; @@ -33,7 +33,6 @@ import org.springframework.data.mongodb.core.mapping.Language; import org.springframework.data.mongodb.core.mapping.TextScore; import org.springframework.data.mongodb.core.query.TextQueryTests.FullTextDoc.FullTextDocBuilder; -import org.springframework.data.mongodb.test.util.MongoTemplateExtension; import org.springframework.data.mongodb.test.util.MongoTestTemplate; import org.springframework.data.mongodb.test.util.Template; @@ -41,7 +40,6 @@ * @author Christoph Strobl * @author Mark Paluch */ -@ExtendWith(MongoTemplateExtension.class) public class TextQueryTests { private static final FullTextDoc BAKE = new FullTextDocBuilder().headline("bake").build(); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/schema/MongoJsonSchemaTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/schema/MongoJsonSchemaTests.java index a7cf75366f..2dc7cd0f5f 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/schema/MongoJsonSchemaTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/schema/MongoJsonSchemaTests.java @@ -24,6 +24,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration; @@ -33,7 +34,6 @@ import org.springframework.data.mongodb.core.mapping.Field; import org.springframework.data.mongodb.core.validation.Validator; import org.springframework.data.mongodb.test.util.Client; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit.jupiter.SpringExtension; @@ -49,7 +49,7 @@ * * @author Christoph Strobl */ -@ExtendWith({ MongoClientExtension.class, SpringExtension.class }) +@ExtendWith({ SpringExtension.class }) @ContextConfiguration public class MongoJsonSchemaTests { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/schema/ReactiveMongoJsonSchemaTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/schema/ReactiveMongoJsonSchemaTests.java index 4615568d10..20cbbe9dfd 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/schema/ReactiveMongoJsonSchemaTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/schema/ReactiveMongoJsonSchemaTests.java @@ -28,6 +28,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.dao.DataRetrievalFailureException; @@ -36,7 +37,6 @@ import org.springframework.data.mongodb.core.convert.MongoJsonSchemaMapper; import org.springframework.data.mongodb.core.mapping.Field; import org.springframework.data.mongodb.test.util.Client; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import org.springframework.data.mongodb.test.util.ReactiveMongoClientClosingTestConfiguration; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit.jupiter.SpringExtension; @@ -48,7 +48,7 @@ * * @author Mark Paluch */ -@ExtendWith({ MongoClientExtension.class, SpringExtension.class }) +@ExtendWith({ SpringExtension.class }) @ContextConfiguration public class ReactiveMongoJsonSchemaTests { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/ComplexIdRepositoryIntegrationTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/ComplexIdRepositoryIntegrationTests.java index a4f533f0be..15776510fd 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/ComplexIdRepositoryIntegrationTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/ComplexIdRepositoryIntegrationTests.java @@ -26,6 +26,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.ComponentScan.Filter; import org.springframework.context.annotation.Configuration; @@ -34,7 +35,6 @@ import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.repository.config.EnableMongoRepositories; import org.springframework.data.mongodb.test.util.Client; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import org.springframework.test.context.junit.jupiter.SpringExtension; import com.mongodb.client.MongoClient; @@ -44,7 +44,7 @@ * @author Oliver Gierke * @author Mark Paluch */ -@ExtendWith({ MongoClientExtension.class, SpringExtension.class }) +@ExtendWith({ SpringExtension.class }) public class ComplexIdRepositoryIntegrationTests { static @Client MongoClient mongoClient; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/MongoRepositoryTextSearchIntegrationTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/MongoRepositoryTextSearchIntegrationTests.java index e0c2caee31..9eff96950d 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/MongoRepositoryTextSearchIntegrationTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/MongoRepositoryTextSearchIntegrationTests.java @@ -24,7 +24,7 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.data.annotation.Id; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; @@ -36,7 +36,6 @@ import org.springframework.data.mongodb.core.mapping.TextScore; import org.springframework.data.mongodb.core.query.TextCriteria; import org.springframework.data.mongodb.repository.support.MongoRepositoryFactory; -import org.springframework.data.mongodb.test.util.MongoTemplateExtension; import org.springframework.data.mongodb.test.util.MongoTestTemplate; import org.springframework.data.mongodb.test.util.Template; import org.springframework.util.ObjectUtils; @@ -48,7 +47,6 @@ * @author Oliver Gierke * @author Mark Paluch */ -@ExtendWith(MongoTemplateExtension.class) class MongoRepositoryTextSearchIntegrationTests { private static final FullTextDocument PASSENGER_57 = new FullTextDocument("1", "Passenger 57", diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/PersonRepositoryTransactionalTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/PersonRepositoryTransactionalTests.java index b2b350dc4d..764142d3d9 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/PersonRepositoryTransactionalTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/PersonRepositoryTransactionalTests.java @@ -31,6 +31,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan.Filter; @@ -45,7 +46,6 @@ import org.springframework.data.mongodb.test.util.AfterTransactionAssertion; import org.springframework.data.mongodb.test.util.EnableIfMongoServerVersion; import org.springframework.data.mongodb.test.util.EnableIfReplicaSetAvailable; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import org.springframework.data.mongodb.test.util.ReplSetClient; import org.springframework.test.annotation.Rollback; import org.springframework.test.context.junit.jupiter.SpringExtension; @@ -63,7 +63,7 @@ * @author Christoph Strobl * @currentRead Shadow's Edge - Brent Weeks */ -@ExtendWith({ MongoClientExtension.class, SpringExtension.class }) +@ExtendWith({ SpringExtension.class }) @EnableIfReplicaSetAvailable @EnableIfMongoServerVersion(isGreaterThanEqual = "4.0") @Transactional(transactionManager = "txManager") diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/ReactiveVectorSearchTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/ReactiveVectorSearchTests.java index 14a4749c8a..15fe22cf1f 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/ReactiveVectorSearchTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/ReactiveVectorSearchTests.java @@ -167,9 +167,9 @@ static void initIndexes() { template.searchIndexOps(WithVectorFields.class).createIndex(cosIndex); template.searchIndexOps(WithVectorFields.class).createIndex(euclideanIndex); template.searchIndexOps(WithVectorFields.class).createIndex(inner); - template.awaitIndexCreation(WithVectorFields.class, cosIndex.getName()); - template.awaitIndexCreation(WithVectorFields.class, euclideanIndex.getName()); - template.awaitIndexCreation(WithVectorFields.class, inner.getName()); + template.awaitSearchIndexCreation(WithVectorFields.class, cosIndex.getName()); + template.awaitSearchIndexCreation(WithVectorFields.class, euclideanIndex.getName()); + template.awaitSearchIndexCreation(WithVectorFields.class, inner.getName()); } interface ReactiveVectorSearchRepository extends CrudRepository { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/VectorSearchTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/VectorSearchTests.java index a224481da1..bd9f6165f9 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/VectorSearchTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/VectorSearchTests.java @@ -211,9 +211,9 @@ static void initIndexes() { template.searchIndexOps(WithVectorFields.class).createIndex(cosIndex); template.searchIndexOps(WithVectorFields.class).createIndex(euclideanIndex); template.searchIndexOps(WithVectorFields.class).createIndex(inner); - template.awaitIndexCreation(WithVectorFields.class, cosIndex.getName()); - template.awaitIndexCreation(WithVectorFields.class, euclideanIndex.getName()); - template.awaitIndexCreation(WithVectorFields.class, inner.getName()); + template.awaitSearchIndexCreation(WithVectorFields.class, cosIndex.getName()); + template.awaitSearchIndexCreation(WithVectorFields.class, euclideanIndex.getName()); + template.awaitSearchIndexCreation(WithVectorFields.class, inner.getName()); } interface VectorSearchRepository extends CrudRepository { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/VersionedPersonRepositoryIntegrationTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/VersionedPersonRepositoryIntegrationTests.java index 917a1094d8..403d6baee7 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/VersionedPersonRepositoryIntegrationTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/VersionedPersonRepositoryIntegrationTests.java @@ -32,7 +32,6 @@ import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.repository.config.EnableMongoRepositories; import org.springframework.data.mongodb.test.util.Client; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import org.springframework.data.mongodb.test.util.MongoTestUtils; import org.springframework.data.repository.CrudRepository; import org.springframework.test.context.ContextConfiguration; @@ -45,7 +44,7 @@ * * @author Christoph Strobl */ -@ExtendWith({ MongoClientExtension.class, SpringExtension.class }) +@ExtendWith({ SpringExtension.class }) @ContextConfiguration class VersionedPersonRepositoryIntegrationTests { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/aot/MongoRepositoryContributorTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/aot/MongoRepositoryContributorTests.java index a2840ec268..d398b4a814 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/aot/MongoRepositoryContributorTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/aot/MongoRepositoryContributorTests.java @@ -29,7 +29,6 @@ import org.bson.Document; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; @@ -47,7 +46,6 @@ import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.aggregation.AggregationResults; import org.springframework.data.mongodb.test.util.Client; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import org.springframework.data.mongodb.test.util.MongoTestUtils; import org.springframework.test.context.junit.jupiter.SpringJUnitConfig; import org.springframework.util.StringUtils; @@ -60,7 +58,7 @@ * @author Christoph Strobl * @author Mark Paluch */ -@ExtendWith(MongoClientExtension.class) + @SpringJUnitConfig(classes = MongoRepositoryContributorTests.MongoRepositoryContributorConfiguration.class) class MongoRepositoryContributorTests { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/aot/MongoRepositoryContributorUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/aot/MongoRepositoryContributorUnitTests.java index bc70b4ded7..c55d460cfc 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/aot/MongoRepositoryContributorUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/aot/MongoRepositoryContributorUnitTests.java @@ -25,7 +25,6 @@ import java.nio.charset.StandardCharsets; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.aot.generate.GeneratedFiles; import org.springframework.aot.test.generate.TestGenerationContext; @@ -36,7 +35,6 @@ import org.springframework.core.io.InputStreamSource; import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.repository.Meta; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import org.springframework.data.repository.CrudRepository; import org.springframework.test.context.junit.jupiter.SpringJUnitConfig; @@ -45,7 +43,7 @@ * * @author Mark Paluch */ -@ExtendWith(MongoClientExtension.class) + @SpringJUnitConfig(classes = MongoRepositoryContributorUnitTests.MongoRepositoryContributorConfiguration.class) class MongoRepositoryContributorUnitTests { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/aot/MongoRepositoryMetadataTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/aot/MongoRepositoryMetadataTests.java index fe65d21084..ff802f8c07 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/aot/MongoRepositoryMetadataTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/aot/MongoRepositoryMetadataTests.java @@ -27,7 +27,6 @@ import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; @@ -36,7 +35,6 @@ import org.springframework.core.io.Resource; import org.springframework.core.io.UrlResource; import org.springframework.data.mongodb.core.MongoOperations; -import org.springframework.data.mongodb.test.util.MongoClientExtension; import org.springframework.test.context.junit.jupiter.SpringJUnitConfig; /** @@ -44,7 +42,7 @@ * * @author Mark Paluch */ -@ExtendWith(MongoClientExtension.class) + @SpringJUnitConfig(classes = MongoRepositoryMetadataTests.MongoRepositoryContributorConfiguration.class) class MongoRepositoryMetadataTests { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SimpleMongoRepositoryTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SimpleMongoRepositoryTests.java index 60c02ee775..3dbb0b3890 100755 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SimpleMongoRepositoryTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SimpleMongoRepositoryTests.java @@ -32,6 +32,7 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInstance; import org.junit.jupiter.api.extension.ExtendWith; + import org.springframework.dao.IncorrectResultSizeDataAccessException; import org.springframework.data.domain.Example; import org.springframework.data.domain.ExampleMatcher; @@ -53,8 +54,6 @@ import org.springframework.data.mongodb.test.util.DirtiesStateExtension; import org.springframework.data.mongodb.test.util.EnableIfMongoServerVersion; import org.springframework.data.mongodb.test.util.EnableIfReplicaSetAvailable; -import org.springframework.data.mongodb.test.util.MongoServerCondition; -import org.springframework.data.mongodb.test.util.MongoTemplateExtension; import org.springframework.data.mongodb.test.util.MongoTestTemplate; import org.springframework.data.mongodb.test.util.Template; import org.springframework.data.repository.query.FluentQuery; @@ -68,7 +67,7 @@ * @author Mark Paluch * @author Jens Schauder */ -@ExtendWith({ MongoTemplateExtension.class, MongoServerCondition.class, DirtiesStateExtension.class }) +@ExtendWith({ DirtiesStateExtension.class }) @TestInstance(TestInstance.Lifecycle.PER_CLASS) class SimpleMongoRepositoryTests implements StateFunctions { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/AtlasContainer.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/AtlasContainer.java index c3a97a03bc..71fecd29b9 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/AtlasContainer.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/AtlasContainer.java @@ -16,12 +16,14 @@ package org.springframework.data.mongodb.test.util; import org.springframework.core.env.StandardEnvironment; - import org.testcontainers.mongodb.MongoDBAtlasLocalContainer; import org.testcontainers.utility.DockerImageName; +import com.github.dockerjava.api.command.InspectContainerResponse; + /** - * Extension to MongoDBAtlasLocalContainer. + * Extension to {@link MongoDBAtlasLocalContainer}. Registers mapped host an port as system properties + * ({@link #ATLAS_HOST}, {@link #ATLAS_PORT}). * * @author Christoph Strobl */ @@ -31,6 +33,9 @@ public class AtlasContainer extends MongoDBAtlasLocalContainer { private static final String DEFAULT_TAG = "8.0.0"; private static final String LATEST = "latest"; + public static final String ATLAS_HOST = "docker.mongodb.atlas.host"; + public static final String ATLAS_PORT = "docker.mongodb.atlas.port"; + private AtlasContainer(String dockerImageName) { super(DockerImageName.parse(dockerImageName)); } @@ -55,4 +60,20 @@ public static AtlasContainer tagged(String tag) { return new AtlasContainer(DEFAULT_IMAGE_NAME.withTag(tag)); } + @Override + protected void containerIsStarted(InspectContainerResponse containerInfo) { + + super.containerIsStarted(containerInfo); + + System.setProperty(ATLAS_HOST, getHost()); + System.setProperty(ATLAS_PORT, getMappedPort(27017).toString()); + } + + @Override + protected void containerIsStopping(InspectContainerResponse containerInfo) { + + System.clearProperty(ATLAS_HOST); + System.clearProperty(ATLAS_PORT); + super.containerIsStopping(containerInfo); + } } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/EnableIfVectorSearchAvailable.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/EnableIfVectorSearchAvailable.java index da008d9ee4..7570d6fc50 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/EnableIfVectorSearchAvailable.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/EnableIfVectorSearchAvailable.java @@ -25,13 +25,32 @@ import org.junit.jupiter.api.extension.ExtendWith; /** + * {@link EnableIfVectorSearchAvailable} indicates a specific method can only be run in an environment that has a search + * server available. This means that not only the mongodb instance needs to have a + * {@literal searchIndexManagementHostAndPort} configured, but also that the search index sever is actually up and + * running, responding to a {@literal $listSearchIndexes} aggregation. + *

+ * Using this annotation will wait up to {@code 60 seconds} for the search index to become available. + * * @author Christoph Strobl + * @since 4.5.3 + * @see Tag */ -@Target({ ElementType.TYPE, ElementType.METHOD }) +@Target({ ElementType.METHOD }) @Retention(RetentionPolicy.RUNTIME) @Documented @Tag("vector-search") @ExtendWith(MongoServerCondition.class) public @interface EnableIfVectorSearchAvailable { + /** + * @return the name of the collection used to run the {@literal $listSearchIndexes} aggregation. + */ + String collectionName() default ""; + + /** + * @return the type for resolving the name of the collection used to run the {@literal $listSearchIndexes} + * aggregation. The {@link #collectionName()} has precedence over the type. + */ + Class collection() default Object.class; } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoClientExtension.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoClientExtension.java index 357a87168e..6e2c694ed7 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoClientExtension.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoClientExtension.java @@ -47,7 +47,7 @@ * @see Client * @see ReplSetClient */ -public class MongoClientExtension implements Extension, BeforeAllCallback, AfterAllCallback, ParameterResolver { +class MongoClientExtension implements Extension, BeforeAllCallback, AfterAllCallback, ParameterResolver { private static final Log LOGGER = LogFactory.getLog(MongoClientExtension.class); @@ -157,7 +157,7 @@ public Object resolveParameter(ParameterContext parameterContext, ExtensionConte return getMongoClient(parameterType, extensionContext, replSet); } - static class SyncClientHolder implements Store.CloseableResource { + static class SyncClientHolder implements AutoCloseable { final MongoClient client; @@ -175,7 +175,7 @@ public void close() { } } - static class ReactiveClientHolder implements Store.CloseableResource { + static class ReactiveClientHolder implements AutoCloseable { final com.mongodb.reactivestreams.client.MongoClient client; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoExtensions.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoExtensions.java index c90f7e999b..864bb6aa5d 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoExtensions.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoExtensions.java @@ -31,7 +31,7 @@ static class Client { static final String REACTIVE_REPLSET_KEY = "mongo.client.replset.reactive"; } - static class Termplate { + static class Template { static final Namespace NAMESPACE = Namespace.create(MongoTemplateExtension.class); static final String SYNC = "mongo.template.sync"; diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoServerCondition.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoServerCondition.java index d811e0a1ef..a1536d01d2 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoServerCondition.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoServerCondition.java @@ -15,17 +15,26 @@ */ package org.springframework.data.mongodb.test.util; +import java.time.Duration; + import org.junit.jupiter.api.extension.ConditionEvaluationResult; import org.junit.jupiter.api.extension.ExecutionCondition; import org.junit.jupiter.api.extension.ExtensionContext; import org.junit.jupiter.api.extension.ExtensionContext.Namespace; import org.springframework.core.annotation.AnnotatedElementUtils; +import org.springframework.data.mongodb.MongoCollectionUtils; import org.springframework.data.util.Version; +import org.springframework.util.NumberUtils; +import org.springframework.util.StringUtils; +import org.testcontainers.shaded.org.awaitility.Awaitility; + +import com.mongodb.Function; +import com.mongodb.client.MongoClient; /** * @author Christoph Strobl */ -public class MongoServerCondition implements ExecutionCondition { +class MongoServerCondition implements ExecutionCondition { private static final Namespace NAMESPACE = Namespace.create("mongodb", "server"); @@ -42,10 +51,15 @@ public ConditionEvaluationResult evaluateExecutionCondition(ExtensionContext con } } - if(context.getTags().contains("vector-search")) { - if(!atlasEnvironment(context)) { + if (context.getTags().contains("vector-search")) { + + if (!atlasEnvironment(context)) { return ConditionEvaluationResult.disabled("Disabled for servers not supporting Vector Search."); } + + if (!isSearchIndexAvailable(context)) { + return ConditionEvaluationResult.disabled("Search index unavailable."); + } } if (context.getTags().contains("version-specific") && context.getElement().isPresent()) { @@ -90,8 +104,55 @@ private Version serverVersion(ExtensionContext context) { Version.class); } + private boolean isSearchIndexAvailable(ExtensionContext context) { + + EnableIfVectorSearchAvailable vectorSearchAvailable = AnnotatedElementUtils + .findMergedAnnotation(context.getElement().get(), EnableIfVectorSearchAvailable.class); + + if (vectorSearchAvailable == null) { + return true; + } + + String collectionName = StringUtils.hasText(vectorSearchAvailable.collectionName()) + ? vectorSearchAvailable.collectionName() + : MongoCollectionUtils.getPreferredCollectionName(vectorSearchAvailable.collection()); + + return context.getStore(NAMESPACE).getOrComputeIfAbsent("search-index-%s-available".formatted(collectionName), + (key) -> { + try { + doWithClient(client -> { + Awaitility.await().atMost(Duration.ofSeconds(60)).pollInterval(Duration.ofMillis(200)).until(() -> { + return MongoTestUtils.isSearchIndexReady(client, null, collectionName); + }); + return "done waiting for search index"; + }); + } catch (Exception e) { + return false; + } + return true; + }, Boolean.class); + + } + private boolean atlasEnvironment(ExtensionContext context) { - return context.getStore(NAMESPACE).getOrComputeIfAbsent(Version.class, (key) -> MongoTestUtils.isVectorSearchEnabled(), - Boolean.class); + + return context.getStore(NAMESPACE).getOrComputeIfAbsent("mongodb-atlas", + (key) -> doWithClient(MongoTestUtils::isVectorSearchEnabled), Boolean.class); + } + + private T doWithClient(Function function) { + + String host = System.getProperty(AtlasContainer.ATLAS_HOST); + String port = System.getProperty(AtlasContainer.ATLAS_PORT); + + if (StringUtils.hasText(host) && StringUtils.hasText(port)) { + try (MongoClient client = MongoTestUtils.client(host, NumberUtils.parseNumber(port, Integer.class))) { + return function.apply(client); + } + } + + try (MongoClient client = MongoTestUtils.client()) { + return function.apply(client); + } } } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoTemplateExtension.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoTemplateExtension.java index 301d1ef499..c91bdb4d5d 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoTemplateExtension.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoTemplateExtension.java @@ -33,7 +33,7 @@ import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.ReactiveMongoOperations; -import org.springframework.data.mongodb.test.util.MongoExtensions.Termplate; +import org.springframework.data.mongodb.test.util.MongoExtensions.Template; import org.springframework.data.util.ParsingUtils; import org.springframework.util.ClassUtils; @@ -41,11 +41,11 @@ * JUnit {@link Extension} providing parameter resolution for synchronous and reactive MongoDB Template API objects. * * @author Christoph Strobl - * @see Template + * @see org.springframework.data.mongodb.test.util.Template * @see MongoTestTemplate * @see ReactiveMongoTestTemplate */ -public class MongoTemplateExtension extends MongoClientExtension implements TestInstancePostProcessor { +class MongoTemplateExtension extends MongoClientExtension implements TestInstancePostProcessor { private static final String DEFAULT_DATABASE = "database"; @@ -65,32 +65,32 @@ public void postProcessTestInstance(Object testInstance, ExtensionContext contex @Override public boolean supportsParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException { - return super.supportsParameter(parameterContext, extensionContext) || parameterContext.isAnnotated(Template.class); + return super.supportsParameter(parameterContext, extensionContext) || parameterContext.isAnnotated(org.springframework.data.mongodb.test.util.Template.class); } @Override public Object resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException { - if (parameterContext.getParameter().getAnnotation(Template.class) == null) { + if (parameterContext.getParameter().getAnnotation(org.springframework.data.mongodb.test.util.Template.class) == null) { return super.resolveParameter(parameterContext, extensionContext); } Class parameterType = parameterContext.getParameter().getType(); - return getMongoTemplate(parameterType, parameterContext.getParameter().getAnnotation(Template.class), + return getMongoTemplate(parameterType, parameterContext.getParameter().getAnnotation(org.springframework.data.mongodb.test.util.Template.class), extensionContext); } private void injectFields(ExtensionContext context, Object testInstance, Predicate predicate) { - AnnotationUtils.findAnnotatedFields(context.getRequiredTestClass(), Template.class, predicate).forEach(field -> { + AnnotationUtils.findAnnotatedFields(context.getRequiredTestClass(), org.springframework.data.mongodb.test.util.Template.class, predicate).forEach(field -> { assertValidFieldCandidate(field); try { ReflectionUtils.makeAccessible(field).set(testInstance, - getMongoTemplate(field.getType(), field.getAnnotation(Template.class), context)); + getMongoTemplate(field.getType(), field.getAnnotation(org.springframework.data.mongodb.test.util.Template.class), context)); } catch (Throwable t) { ExceptionUtils.throwAsUncheckedException(t); } @@ -107,14 +107,14 @@ private void assertSupportedType(String target, Class type) { if (!ClassUtils.isAssignable(MongoOperations.class, type) && !ClassUtils.isAssignable(ReactiveMongoOperations.class, type)) { throw new ExtensionConfigurationException( - String.format("Can only resolve @%s %s of type %s or %s but was: %s", Template.class.getSimpleName(), target, + String.format("Can only resolve @%s %s of type %s or %s but was: %s", org.springframework.data.mongodb.test.util.Template.class.getSimpleName(), target, MongoOperations.class.getName(), ReactiveMongoOperations.class.getName(), type.getName())); } } - private Object getMongoTemplate(Class type, Template options, ExtensionContext extensionContext) { + private Object getMongoTemplate(Class type, org.springframework.data.mongodb.test.util.Template options, ExtensionContext extensionContext) { - Store templateStore = extensionContext.getStore(MongoExtensions.Termplate.NAMESPACE); + Store templateStore = extensionContext.getStore(Template.NAMESPACE); boolean replSetClient = holdsReplSetClient(extensionContext) || options.replicaSet(); @@ -126,7 +126,7 @@ private Object getMongoTemplate(Class type, Template options, ExtensionContex if (ClassUtils.isAssignable(MongoOperations.class, type)) { - String key = Termplate.SYNC + "-" + dbName; + String key = Template.SYNC + "-" + dbName; return templateStore.getOrComputeIfAbsent(key, it -> { com.mongodb.client.MongoClient client = (com.mongodb.client.MongoClient) getMongoClient( @@ -137,7 +137,7 @@ private Object getMongoTemplate(Class type, Template options, ExtensionContex if (ClassUtils.isAssignable(ReactiveMongoOperations.class, type)) { - String key = Termplate.REACTIVE + "-" + dbName; + String key = Template.REACTIVE + "-" + dbName; return templateStore.getOrComputeIfAbsent(key, it -> { com.mongodb.reactivestreams.client.MongoClient client = (com.mongodb.reactivestreams.client.MongoClient) getMongoClient( diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoTestTemplate.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoTestTemplate.java index 771c17c4a9..4e619c6097 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoTestTemplate.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoTestTemplate.java @@ -23,7 +23,6 @@ import java.util.function.Supplier; import java.util.stream.Collectors; -import com.mongodb.client.MongoClients; import org.bson.Document; import org.springframework.context.ApplicationContext; import org.springframework.data.mapping.callback.EntityCallbacks; @@ -32,8 +31,12 @@ import org.testcontainers.shaded.org.awaitility.Awaitility; import com.mongodb.MongoWriteException; +import com.mongodb.ReadPreference; +import com.mongodb.WriteConcern; import com.mongodb.client.MongoClient; +import com.mongodb.client.MongoClients; import com.mongodb.client.MongoCollection; +import com.mongodb.client.MongoDatabase; /** * A {@link MongoTemplate} with configuration hooks and extension suitable for tests. @@ -141,6 +144,21 @@ public void flush(Object... objects) { }).collect(Collectors.toList())); } + public void createCollectionIfNotExists(Class type) { + createCollectionIfNotExists(getCollectionName(type)); + } + + public void createCollectionIfNotExists(String collectionName) { + + MongoDatabase database = getDb().withWriteConcern(WriteConcern.MAJORITY) + .withReadPreference(ReadPreference.primary()); + + boolean collectionExists = database.listCollections().filter(new Document("name", collectionName)).first() != null; + if (!collectionExists) { + createCollection(collectionName); + } + } + public void dropDatabase() { getDb().drop(); } @@ -164,11 +182,11 @@ public void doInCollection(Class entityClass, Consumer type, String indexName) { - awaitIndexCreation(getCollectionName(type), indexName, Duration.ofSeconds(10)); + public void awaitSearchIndexCreation(Class type, String indexName) { + awaitSearchIndexCreation(getCollectionName(type), indexName, Duration.ofSeconds(30)); } - public void awaitIndexCreation(String collectionName, String indexName, Duration timeout) { + public void awaitSearchIndexCreation(String collectionName, String indexName, Duration timeout) { Awaitility.await().atMost(timeout).pollInterval(Duration.ofMillis(200)).until(() -> { @@ -184,4 +202,35 @@ public void awaitIndexCreation(String collectionName, String indexName, Duration return false; }); } + + public void awaitIndexDeletion(String collectionName, String indexName, Duration timeout) { + + Awaitility.await().atMost(timeout).pollInterval(Duration.ofMillis(200)).until(() -> { + + List execute = this.execute(collectionName, + coll -> coll + .aggregate(List.of(Document.parse("{'$listSearchIndexes': { 'name' : '%s'}}".formatted(indexName)))) + .into(new ArrayList<>())); + for (Document doc : execute) { + if (doc.getString("name").equals(indexName)) { + return false; + } + } + return true; + }); + } + + public void awaitNoSearchIndexAvailable(String collectionName, Duration timeout) { + + Awaitility.await().atMost(timeout).pollInterval(Duration.ofMillis(200)).until(() -> { + + return this.execute(collectionName, coll -> coll.aggregate(List.of(Document.parse("{'$listSearchIndexes': {}}"))) + .into(new ArrayList<>()).isEmpty()); + + }); + } + + public void awaitNoSearchIndexAvailable(Class type, Duration timeout) { + awaitNoSearchIndexAvailable(getCollectionName(type), timeout); + } } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoTestUtils.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoTestUtils.java index f88caf80dd..742fd5b446 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoTestUtils.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoTestUtils.java @@ -15,12 +15,15 @@ */ package org.springframework.data.mongodb.test.util; +import org.jspecify.annotations.Nullable; +import org.springframework.util.StringUtils; import reactor.core.publisher.Mono; import reactor.test.StepVerifier; import reactor.util.retry.Retry; import java.time.Duration; import java.util.List; +import java.util.concurrent.TimeUnit; import org.bson.Document; import org.springframework.core.env.Environment; @@ -30,6 +33,7 @@ import org.springframework.util.ObjectUtils; import com.mongodb.ConnectionString; +import com.mongodb.MongoClientSettings; import com.mongodb.ReadPreference; import com.mongodb.WriteConcern; import com.mongodb.client.MongoClient; @@ -68,6 +72,10 @@ public static MongoClient client(String host, int port) { } public static MongoClient client(ConnectionString connectionString) { + MongoClientSettings settings = MongoClientSettings.builder().applyConnectionString(connectionString) + .applyToSocketSettings(builder -> { + builder.connectTimeout(120, TimeUnit.SECONDS); + }).build(); return com.mongodb.client.MongoClients.create(connectionString, SpringDataMongoDB.driverInformation()); } @@ -176,11 +184,10 @@ public static void dropCollectionNow(String dbName, String collectionName, * @param collectionName must not be {@literal null}. * @param client must not be {@literal null}. */ - public static void dropCollectionNow(String dbName, String collectionName, - com.mongodb.client.MongoClient client) { + public static void dropCollectionNow(String dbName, String collectionName, com.mongodb.client.MongoClient client) { - com.mongodb.client.MongoDatabase database = client.getDatabase(dbName) - .withWriteConcern(WriteConcern.MAJORITY).withReadPreference(ReadPreference.primary()); + com.mongodb.client.MongoDatabase database = client.getDatabase(dbName).withWriteConcern(WriteConcern.MAJORITY) + .withReadPreference(ReadPreference.primary()); database.getCollection(collectionName).drop(); } @@ -205,11 +212,10 @@ public static void flushCollection(String dbName, String collectionName, .verifyComplete(); } - public static void flushCollection(String dbName, String collectionName, - com.mongodb.client.MongoClient client) { + public static void flushCollection(String dbName, String collectionName, com.mongodb.client.MongoClient client) { - com.mongodb.client.MongoDatabase database = client.getDatabase(dbName) - .withWriteConcern(WriteConcern.MAJORITY).withReadPreference(ReadPreference.primary()); + com.mongodb.client.MongoDatabase database = client.getDatabase(dbName).withWriteConcern(WriteConcern.MAJORITY) + .withReadPreference(ReadPreference.primary()); database.getCollection(collectionName).deleteMany(new Document()); } @@ -267,19 +273,36 @@ public static boolean serverIsReplSet() { @SuppressWarnings("unchecked") public static boolean isVectorSearchEnabled() { try (MongoClient client = MongoTestUtils.client()) { + return isVectorSearchEnabled(client); + } + } + public static boolean isVectorSearchEnabled(MongoClient client) { + try { return client.getDatabase("admin").runCommand(new Document("getCmdLineOpts", "1")).get("argv", List.class) - .stream().anyMatch(it -> { - if(it instanceof String cfgString) { - return cfgString.startsWith("searchIndexManagementHostAndPort"); - } - return false; - }); + .stream().anyMatch(it -> { + if (it instanceof String cfgString) { + return cfgString.startsWith("searchIndexManagementHostAndPort"); + } + return false; + }); } catch (Exception e) { return false; } } + public static boolean isSearchIndexReady(MongoClient client, @Nullable String database, String collectionName) { + + try { + MongoCollection collection = client.getDatabase(StringUtils.hasText(database) ? database : "test").getCollection(collectionName); + collection.aggregate(List.of(new Document("$listSearchIndexes", new Document()))); + } catch (Exception e) { + return false; + } + return true; + + } + public static Duration getTimeout() { return ObjectUtils.nullSafeEquals("jenkins", ENV.getProperty("user.name")) ? Duration.ofMillis(100) @@ -297,10 +320,11 @@ private static void giveTheServerALittleTimeToThink() { public static CollectionInfo readCollectionInfo(MongoDatabase db, String collectionName) { - List list = db.runCommand(new Document().append("listCollections", 1).append("filter", new Document("name", collectionName))) + List list = db + .runCommand(new Document().append("listCollections", 1).append("filter", new Document("name", collectionName))) .get("cursor", Document.class).get("firstBatch", List.class); - if(list.isEmpty()) { + if (list.isEmpty()) { throw new IllegalStateException(String.format("Collection %s not found.", collectionName)); } return CollectionInfo.from(list.get(0)); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/ReplSetClient.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/ReplSetClient.java index 8342c5b5ee..ede3687f70 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/ReplSetClient.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/ReplSetClient.java @@ -21,6 +21,8 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import org.junit.jupiter.api.extension.ExtendWith; + /** * Marks a field or method as to be autowired by JUnit's dependency injection facilities for injection of a MongoDB * client instance connected to a replica set. Depends on {@link MongoClientExtension}. @@ -34,6 +36,7 @@ @Target({ ElementType.FIELD, ElementType.PARAMETER }) @Retention(RetentionPolicy.RUNTIME) @Documented +@ExtendWith(MongoClientExtension.class) public @interface ReplSetClient { }