Browse Source

DATAMONGO-2378 - Polishing.

Consistently use MongoTestUtils for client creations. Reuse MongoClient instead of opening always new client instances.

Original pull request: #793.
pull/795/head
Mark Paluch 6 years ago
parent
commit
48034a348d
  1. 2
      spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MongoAdmin.java
  2. 13
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/ReactiveTransactionIntegrationTests.java
  3. 3
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AbstractIntegrationTests.java
  4. 3
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AbstractReactiveMongoConfigurationIntegrationTests.java
  5. 5
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AbstractReactiveMongoConfigurationUnitTests.java
  6. 3
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/ReactiveAuditingTests.java
  7. 5
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ClientSessionTests.java
  8. 3
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultReactiveIndexOperationsTests.java
  9. 16
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/JsonSchemaQueryTests.java
  10. 2
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveFindOperationSupportTests.java
  11. 12
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateCollationTests.java
  12. 2
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveRemoveOperationSupportTests.java
  13. 2
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveUpdateOperationSupportTests.java
  14. 1
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/SessionBoundMongoTemplateTests.java
  15. 2
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/auditing/ReactiveMongoTemplateAuditingTests.java
  16. 3
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MappingMongoConverterTests.java
  17. 8
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/ApplicationContextEventTests.java
  18. 3
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/CriteriaTests.java
  19. 3
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/schema/ReactiveMongoJsonSchemaTests.java
  20. 10
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/ReactiveMongoRepositoryTests.java
  21. 4
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/config/ReactiveMongoRepositoriesRegistrarIntegrationTests.java
  22. 9
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/ReactiveQuerydslMongoPredicateExecutorTests.java
  23. 3
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SimpleMongoRepositoryVersionedEntityTests.java
  24. 3
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SimpleReactiveMongoRepositoryVersionedEntityTests.java
  25. 3
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/CleanMongoDB.java
  26. 26
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoTestUtils.java
  27. 1
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoVersionRule.java
  28. 9
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/ReplicaSet.java

2
spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MongoAdmin.java

@ -38,7 +38,7 @@ public class MongoAdmin implements MongoAdminOperations { @@ -38,7 +38,7 @@ public class MongoAdmin implements MongoAdminOperations {
/**
* @param mongoClient
* @deprecated since 2.2 in favor of {@link MongoAdmin(com.mongodb.client.MongoClient)}.
* @deprecated since 2.2 in favor of {@link MongoAdmin#MongoAdmin(com.mongodb.client.MongoClient)}.
*/
@Deprecated
public MongoAdmin(MongoClient mongoClient) {

13
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/ReactiveTransactionIntegrationTests.java

@ -85,13 +85,12 @@ public class ReactiveTransactionIntegrationTests { @@ -85,13 +85,12 @@ public class ReactiveTransactionIntegrationTests {
personService = context.getBean(PersonService.class);
operations = context.getBean(ReactiveMongoOperations.class);
try (MongoClient client = MongoClients.create()) {
MongoClient client = MongoTestUtils.reactiveClient();
Flux.merge( //
MongoTestUtils.createOrReplaceCollection(DATABASE, operations.getCollectionName(Person.class), client),
MongoTestUtils.createOrReplaceCollection(DATABASE, operations.getCollectionName(EventLog.class), client) //
).then().as(StepVerifier::create).verifyComplete();
}
Flux.merge( //
MongoTestUtils.createOrReplaceCollection(DATABASE, operations.getCollectionName(Person.class), client),
MongoTestUtils.createOrReplaceCollection(DATABASE, operations.getCollectionName(EventLog.class), client) //
).then().as(StepVerifier::create).verifyComplete();
}
@Test // DATAMONGO-2265
@ -224,7 +223,7 @@ public class ReactiveTransactionIntegrationTests { @@ -224,7 +223,7 @@ public class ReactiveTransactionIntegrationTests {
@Override
public MongoClient reactiveMongoClient() {
return MongoClients.create("mongodb://localhost");
return MongoTestUtils.reactiveClient();
}
@Override

3
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AbstractIntegrationTests.java

@ -27,6 +27,7 @@ import org.springframework.context.annotation.Configuration; @@ -27,6 +27,7 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.dao.DataAccessException;
import org.springframework.data.mongodb.core.CollectionCallback;
import org.springframework.data.mongodb.core.MongoOperations;
import org.springframework.data.mongodb.test.util.MongoTestUtils;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@ -52,7 +53,7 @@ public abstract class AbstractIntegrationTests { @@ -52,7 +53,7 @@ public abstract class AbstractIntegrationTests {
@Override
public MongoClient mongoClient() {
return MongoClients.create();
return MongoTestUtils.client();
}
}

3
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AbstractReactiveMongoConfigurationIntegrationTests.java

@ -25,6 +25,7 @@ import org.springframework.context.annotation.Configuration; @@ -25,6 +25,7 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.core.ReactiveMongoOperations;
import org.springframework.data.mongodb.core.ReactiveMongoTemplate;
import org.springframework.data.mongodb.core.SimpleReactiveMongoDatabaseFactory;
import org.springframework.data.mongodb.test.util.MongoTestUtils;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
@ -56,7 +57,7 @@ public class AbstractReactiveMongoConfigurationIntegrationTests { @@ -56,7 +57,7 @@ public class AbstractReactiveMongoConfigurationIntegrationTests {
@Override
public MongoClient reactiveMongoClient() {
return MongoClients.create();
return MongoTestUtils.reactiveClient();
}
@Override

5
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AbstractReactiveMongoConfigurationUnitTests.java

@ -38,6 +38,7 @@ import org.springframework.data.mongodb.core.convert.MongoTypeMapper; @@ -38,6 +38,7 @@ import org.springframework.data.mongodb.core.convert.MongoTypeMapper;
import org.springframework.data.mongodb.core.mapping.BasicMongoPersistentEntity;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.MongoMappingContext;
import org.springframework.data.mongodb.test.util.MongoTestUtils;
import org.springframework.data.spel.EvaluationContextProvider;
import org.springframework.data.spel.ExtensionAwareEvaluationContextProvider;
import org.springframework.test.util.ReflectionTestUtils;
@ -155,7 +156,7 @@ public class AbstractReactiveMongoConfigurationUnitTests { @@ -155,7 +156,7 @@ public class AbstractReactiveMongoConfigurationUnitTests {
@Override
public MongoClient reactiveMongoClient() {
return MongoClients.create();
return MongoTestUtils.reactiveClient();
}
@Bean
@ -183,7 +184,7 @@ public class AbstractReactiveMongoConfigurationUnitTests { @@ -183,7 +184,7 @@ public class AbstractReactiveMongoConfigurationUnitTests {
@Override
public MongoClient reactiveMongoClient() {
return MongoClients.create();
return MongoTestUtils.reactiveClient();
}
@Override

3
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/ReactiveAuditingTests.java

@ -38,6 +38,7 @@ import org.springframework.data.mongodb.core.mapping.MongoMappingContext; @@ -38,6 +38,7 @@ import org.springframework.data.mongodb.core.mapping.MongoMappingContext;
import org.springframework.data.mongodb.core.mapping.MongoPersistentEntity;
import org.springframework.data.mongodb.repository.ReactiveMongoRepository;
import org.springframework.data.mongodb.repository.config.EnableReactiveMongoRepositories;
import org.springframework.data.mongodb.test.util.MongoTestUtils;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
@ -70,7 +71,7 @@ public class ReactiveAuditingTests { @@ -70,7 +71,7 @@ public class ReactiveAuditingTests {
@Override
public MongoClient reactiveMongoClient() {
return MongoClients.create();
return MongoTestUtils.reactiveClient();
}
@Bean

5
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ClientSessionTests.java

@ -69,11 +69,6 @@ public class ClientSessionTests { @@ -69,11 +69,6 @@ public class ClientSessionTests {
template.getDb().getCollection(COLLECTION_NAME).insertOne(new Document("_id", "id-1").append("value", "spring"));
}
@After
public void tearDown() {
client.close();
}
@Test // DATAMONGO-1880
public void shouldApplyClientSession() {

3
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultReactiveIndexOperationsTests.java

@ -39,6 +39,7 @@ import org.springframework.data.mongodb.core.index.IndexInfo; @@ -39,6 +39,7 @@ import org.springframework.data.mongodb.core.index.IndexInfo;
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.MongoTestUtils;
import org.springframework.data.util.Version;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@ -60,7 +61,7 @@ public class DefaultReactiveIndexOperationsTests { @@ -60,7 +61,7 @@ public class DefaultReactiveIndexOperationsTests {
@Override
public MongoClient reactiveMongoClient() {
return MongoClients.create();
return MongoTestUtils.reactiveClient();
}
@Override

16
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/JsonSchemaQueryTests.java

@ -33,6 +33,7 @@ import org.junit.Test; @@ -33,6 +33,7 @@ import org.junit.Test;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Field;
import org.springframework.data.mongodb.core.schema.MongoJsonSchema;
import org.springframework.data.mongodb.test.util.MongoTestUtils;
import org.springframework.data.mongodb.test.util.MongoVersionRule;
import org.springframework.data.util.Version;
@ -50,13 +51,13 @@ public class JsonSchemaQueryTests { @@ -50,13 +51,13 @@ public class JsonSchemaQueryTests {
public static @ClassRule MongoVersionRule REQUIRES_AT_LEAST_3_6_0 = MongoVersionRule.atLeast(Version.parse("3.6.0"));
static MongoClient client = MongoClients.create();
static MongoClient client = MongoTestUtils.client();
MongoTemplate template;
Person jellyBelly, roseSpringHeart, kazmardBoombub;
@BeforeClass
public static void beforeClass() {
client = MongoClients.create();
client = MongoTestUtils.client();
}
@Before
@ -93,13 +94,6 @@ public class JsonSchemaQueryTests { @@ -93,13 +94,6 @@ public class JsonSchemaQueryTests {
template.save(kazmardBoombub);
}
@AfterClass
public static void afterClass() {
if (client != null) {
client.close();
}
}
@Test // DATAMONGO-1835
public void findsDocumentsWithRequiredFieldsCorrectly() {
@ -114,12 +108,10 @@ public class JsonSchemaQueryTests { @@ -114,12 +108,10 @@ public class JsonSchemaQueryTests {
MongoJsonSchema schema = MongoJsonSchema.builder().required("address").build();
com.mongodb.reactivestreams.client.MongoClient mongoClient = com.mongodb.reactivestreams.client.MongoClients.create();
com.mongodb.reactivestreams.client.MongoClient mongoClient = MongoTestUtils.reactiveClient();
new ReactiveMongoTemplate(mongoClient, DATABASE_NAME).find(query(matchingDocumentStructure(schema)), Person.class)
.as(StepVerifier::create).expectNextCount(2).verifyComplete();
mongoClient.close();
}
@Test // DATAMONGO-1835

2
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveFindOperationSupportTests.java

@ -76,7 +76,7 @@ public class ReactiveFindOperationSupportTests { @@ -76,7 +76,7 @@ public class ReactiveFindOperationSupportTests {
insertObjects();
template = new ReactiveMongoTemplate(MongoClients.create(), "ExecutableFindOperationSupportTests");
template = new ReactiveMongoTemplate(MongoTestUtils.reactiveClient(), "ExecutableFindOperationSupportTests");
}
void insertObjects() {

12
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateCollationTests.java

@ -28,17 +28,18 @@ import org.junit.Before; @@ -28,17 +28,18 @@ import org.junit.Before;
import org.junit.ClassRule;
import org.junit.Test;
import org.junit.runner.RunWith;
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.MongoTestUtils;
import org.springframework.data.mongodb.test.util.MongoVersionRule;
import org.springframework.data.util.Version;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.mongodb.reactivestreams.client.MongoClient;
import com.mongodb.reactivestreams.client.MongoClients;
/**
* @author Mark Paluch
@ -56,7 +57,7 @@ public class ReactiveMongoTemplateCollationTests { @@ -56,7 +57,7 @@ public class ReactiveMongoTemplateCollationTests {
@Override
public MongoClient reactiveMongoClient() {
return MongoClients.create();
return MongoTestUtils.reactiveClient();
}
@Override
@ -98,10 +99,9 @@ public class ReactiveMongoTemplateCollationTests { @@ -98,10 +99,9 @@ public class ReactiveMongoTemplateCollationTests {
return template.execute(db -> {
return Flux
.from(db.runCommand(new Document() //
.append("listCollections", 1) //
.append("filter", new Document("name", collectionName)))) //
return Flux.from(db.runCommand(new Document() //
.append("listCollections", 1) //
.append("filter", new Document("name", collectionName)))) //
.map(it -> it.get("cursor", Document.class))
.flatMapIterable(it -> (List<Document>) it.get("firstBatch", List.class));
}).next();

2
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveRemoveOperationSupportTests.java

@ -62,7 +62,7 @@ public class ReactiveRemoveOperationSupportTests { @@ -62,7 +62,7 @@ public class ReactiveRemoveOperationSupportTests {
blocking.save(han);
blocking.save(luke);
template = new ReactiveMongoTemplate(MongoClients.create(), "ExecutableRemoveOperationSupportTests");
template = new ReactiveMongoTemplate(MongoTestUtils.reactiveClient(), "ExecutableRemoveOperationSupportTests");
}
@Test // DATAMONGO-1719

2
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveUpdateOperationSupportTests.java

@ -65,7 +65,7 @@ public class ReactiveUpdateOperationSupportTests { @@ -65,7 +65,7 @@ public class ReactiveUpdateOperationSupportTests {
blocking.save(han);
blocking.save(luke);
template = new ReactiveMongoTemplate(MongoClients.create(), "ExecutableUpdateOperationSupportTests");
template = new ReactiveMongoTemplate(MongoTestUtils.reactiveClient(), "ExecutableUpdateOperationSupportTests");
}
@Test // DATAMONGO-1719

1
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/SessionBoundMongoTemplateTests.java

@ -149,7 +149,6 @@ public class SessionBoundMongoTemplateTests { @@ -149,7 +149,6 @@ public class SessionBoundMongoTemplateTests {
public void tearDown() {
session.close();
client.close();
}
@Test // DATAMONGO-1880

2
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/auditing/ReactiveMongoTemplateAuditingTests.java

@ -60,7 +60,7 @@ public class ReactiveMongoTemplateAuditingTests { @@ -60,7 +60,7 @@ public class ReactiveMongoTemplateAuditingTests {
@Bean
@Override
public MongoClient reactiveMongoClient() {
return MongoClients.create();
return MongoTestUtils.reactiveClient();
}
@Override

3
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MappingMongoConverterTests.java

@ -35,6 +35,7 @@ import org.springframework.data.mongodb.MongoDbFactory; @@ -35,6 +35,7 @@ import org.springframework.data.mongodb.MongoDbFactory;
import org.springframework.data.mongodb.core.SimpleMongoClientDbFactory;
import org.springframework.data.mongodb.core.mapping.DBRef;
import org.springframework.data.mongodb.core.mapping.MongoMappingContext;
import org.springframework.data.mongodb.test.util.MongoTestUtils;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
@ -55,7 +56,7 @@ public class MappingMongoConverterTests { @@ -55,7 +56,7 @@ public class MappingMongoConverterTests {
@Before
public void setUp() {
client = MongoClients.create();
client = MongoTestUtils.client();
client.getDatabase("mapping-converter-tests").drop();
MongoDbFactory factory = new SimpleMongoClientDbFactory(client, "mapping-converter-tests");

8
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/ApplicationContextEventTests.java

@ -46,6 +46,7 @@ import org.springframework.data.mongodb.repository.QPerson; @@ -46,6 +46,7 @@ import org.springframework.data.mongodb.repository.QPerson;
import org.springframework.data.mongodb.repository.query.MongoEntityInformation;
import org.springframework.data.mongodb.repository.support.MongoRepositoryFactory;
import org.springframework.data.mongodb.repository.support.QuerydslMongoPredicateExecutor;
import org.springframework.data.mongodb.test.util.MongoTestUtils;
import com.mongodb.WriteConcern;
import com.mongodb.client.MongoClient;
@ -75,12 +76,7 @@ public class ApplicationContextEventTests { @@ -75,12 +76,7 @@ public class ApplicationContextEventTests {
@BeforeClass
public static void beforeClass() {
mongo = MongoClients.create();
}
@AfterClass
public static void afterClass() {
mongo.close();
mongo = MongoTestUtils.client();
}
@Before

3
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/CriteriaTests.java

@ -32,6 +32,7 @@ import org.junit.Test; @@ -32,6 +32,7 @@ import org.junit.Test;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.MongoOperations;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.test.util.MongoTestUtils;
import org.springframework.util.Base64Utils;
import com.mongodb.client.MongoClient;
@ -59,7 +60,7 @@ public class CriteriaTests { @@ -59,7 +60,7 @@ public class CriteriaTests {
@Before
public void setUp() {
client = MongoClients.create();
client = MongoTestUtils.client();
ops = new MongoTemplate(client, "criteria-tests");
ops.dropCollection(DocumentWithBitmask.class);

3
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/schema/ReactiveMongoJsonSchemaTests.java

@ -36,6 +36,7 @@ import org.springframework.data.mongodb.core.CollectionOptions; @@ -36,6 +36,7 @@ import org.springframework.data.mongodb.core.CollectionOptions;
import org.springframework.data.mongodb.core.ReactiveMongoTemplate;
import org.springframework.data.mongodb.core.convert.MongoJsonSchemaMapper;
import org.springframework.data.mongodb.core.mapping.Field;
import org.springframework.data.mongodb.test.util.MongoTestUtils;
import org.springframework.data.mongodb.test.util.MongoVersionRule;
import org.springframework.data.util.Version;
import org.springframework.test.context.ContextConfiguration;
@ -60,7 +61,7 @@ public class ReactiveMongoJsonSchemaTests { @@ -60,7 +61,7 @@ public class ReactiveMongoJsonSchemaTests {
@Override
public MongoClient reactiveMongoClient() {
return MongoClients.create();
return MongoTestUtils.reactiveClient();
}
@Override

10
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/ReactiveMongoRepositoryTests.java

@ -67,7 +67,6 @@ import org.springframework.test.context.ContextConfiguration; @@ -67,7 +67,6 @@ import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.mongodb.reactivestreams.client.MongoClient;
import com.mongodb.reactivestreams.client.MongoClients;
/**
* Test for {@link ReactiveMongoRepository} query methods.
@ -94,7 +93,7 @@ public class ReactiveMongoRepositoryTests { @@ -94,7 +93,7 @@ public class ReactiveMongoRepositoryTests {
@Bean
@Override
public MongoClient reactiveMongoClient() {
return MongoClients.create();
return MongoTestUtils.reactiveClient();
}
@Override
@ -133,11 +132,10 @@ public class ReactiveMongoRepositoryTests { @@ -133,11 +132,10 @@ public class ReactiveMongoRepositoryTests {
@BeforeClass
public static void cleanDb() {
try (MongoClient client = MongoClients.create()) {
MongoClient client = MongoTestUtils.reactiveClient();
MongoTestUtils.createOrReplaceCollectionNow("reactive", "person", client);
MongoTestUtils.createOrReplaceCollectionNow("reactive", "capped", client);
}
MongoTestUtils.createOrReplaceCollectionNow("reactive", "person", client);
MongoTestUtils.createOrReplaceCollectionNow("reactive", "capped", client);
}
@Before

4
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/config/ReactiveMongoRepositoriesRegistrarIntegrationTests.java

@ -25,6 +25,7 @@ import org.springframework.context.annotation.Configuration; @@ -25,6 +25,7 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.core.ReactiveMongoTemplate;
import org.springframework.data.mongodb.core.SimpleReactiveMongoDatabaseFactory;
import org.springframework.data.mongodb.repository.ReactivePersonRepository;
import org.springframework.data.mongodb.test.util.MongoTestUtils;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@ -45,7 +46,8 @@ public class ReactiveMongoRepositoriesRegistrarIntegrationTests { @@ -45,7 +46,8 @@ public class ReactiveMongoRepositoriesRegistrarIntegrationTests {
@Bean
public ReactiveMongoTemplate reactiveMongoTemplate() throws Exception {
return new ReactiveMongoTemplate(new SimpleReactiveMongoDatabaseFactory(MongoClients.create(), "database"));
return new ReactiveMongoTemplate(
new SimpleReactiveMongoDatabaseFactory(MongoTestUtils.reactiveClient(), "database"));
}
}

9
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/ReactiveQuerydslMongoPredicateExecutorTests.java

@ -78,7 +78,7 @@ public class ReactiveQuerydslMongoPredicateExecutorTests { @@ -78,7 +78,7 @@ public class ReactiveQuerydslMongoPredicateExecutorTests {
@Override
public MongoClient reactiveMongoClient() {
return MongoClients.create();
return MongoTestUtils.reactiveClient();
}
@Override
@ -90,11 +90,10 @@ public class ReactiveQuerydslMongoPredicateExecutorTests { @@ -90,11 +90,10 @@ public class ReactiveQuerydslMongoPredicateExecutorTests {
@BeforeClass
public static void cleanDb() {
try (MongoClient client = MongoClients.create()) {
MongoClient client = MongoTestUtils.reactiveClient();
MongoTestUtils.createOrReplaceCollectionNow("reactive", "person", client);
MongoTestUtils.createOrReplaceCollectionNow("reactive", "user", client);
}
MongoTestUtils.createOrReplaceCollectionNow("reactive", "person", client);
MongoTestUtils.createOrReplaceCollectionNow("reactive", "user", client);
}
@Before

3
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SimpleMongoRepositoryVersionedEntityTests.java

@ -33,6 +33,7 @@ import org.springframework.data.mongodb.core.mapping.BasicMongoPersistentEntity; @@ -33,6 +33,7 @@ import org.springframework.data.mongodb.core.mapping.BasicMongoPersistentEntity;
import org.springframework.data.mongodb.core.mapping.MongoPersistentEntity;
import org.springframework.data.mongodb.repository.VersionedPerson;
import org.springframework.data.mongodb.repository.query.MongoEntityInformation;
import org.springframework.data.mongodb.test.util.MongoTestUtils;
import org.springframework.data.mongodb.test.util.MongoVersion;
import org.springframework.data.mongodb.test.util.ReplicaSet;
import org.springframework.data.util.ClassTypeInformation;
@ -56,7 +57,7 @@ public class SimpleMongoRepositoryVersionedEntityTests { @@ -56,7 +57,7 @@ public class SimpleMongoRepositoryVersionedEntityTests {
@Override
public MongoClient mongoClient() {
return MongoClients.create();
return MongoTestUtils.client();
}
@Override

3
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SimpleReactiveMongoRepositoryVersionedEntityTests.java

@ -31,6 +31,7 @@ import org.springframework.data.mongodb.core.ReactiveMongoTemplate; @@ -31,6 +31,7 @@ import org.springframework.data.mongodb.core.ReactiveMongoTemplate;
import org.springframework.data.mongodb.core.mapping.MongoPersistentEntity;
import org.springframework.data.mongodb.repository.VersionedPerson;
import org.springframework.data.mongodb.repository.query.MongoEntityInformation;
import org.springframework.data.mongodb.test.util.MongoTestUtils;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@ -49,7 +50,7 @@ public class SimpleReactiveMongoRepositoryVersionedEntityTests { @@ -49,7 +50,7 @@ public class SimpleReactiveMongoRepositoryVersionedEntityTests {
@Override
public MongoClient reactiveMongoClient() {
return MongoClients.create();
return MongoTestUtils.reactiveClient();
}
@Override

3
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/CleanMongoDB.java

@ -361,14 +361,13 @@ public class CleanMongoDB implements TestRule { @@ -361,14 +361,13 @@ public class CleanMongoDB implements TestRule {
boolean isInternal = false;
if (client == null) {
client = MongoClients.create();
client = MongoTestUtils.client();
isInternal = true;
}
doClean();
if (isInternal) {
client.close();
client = null;
}
}

26
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoTestUtils.java

@ -15,7 +15,6 @@ @@ -15,7 +15,6 @@
*/
package org.springframework.data.mongodb.test.util;
import com.mongodb.client.MongoClient;
import reactor.core.publisher.Mono;
import reactor.test.StepVerifier;
@ -25,20 +24,29 @@ import org.bson.Document; @@ -25,20 +24,29 @@ import org.bson.Document;
import com.mongodb.ReadPreference;
import com.mongodb.WriteConcern;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.reactivestreams.client.MongoClients;
import com.mongodb.reactivestreams.client.Success;
/**
* Utility to create (and reuse) imperative and reactive {@code MongoClient} instances.
*
* @author Christoph Strobl
* @author Mark Paluch
*/
public class MongoTestUtils {
public static final String CONNECTION_STRING = "mongodb://localhost:27017/?replicaSet=rs0"; // &readPreference=primary&w=majority
private static final String CONNECTION_STRING_PATTERN = "mongodb://%s:%s/";
public static final String CONNECTION_STRING = "mongodb://localhost:27017/?replicaSet=rs0"; // &readPreference=primary&w=majority
/**
* Create a new {@link com.mongodb.client.MongoClient} with defaults.
*
* @return new instance of {@link com.mongodb.client.MongoClient}.
*/
public static MongoClient client() {
return client("localhost", 27017);
}
@ -46,6 +54,20 @@ public class MongoTestUtils { @@ -46,6 +54,20 @@ public class MongoTestUtils {
public static MongoClient client(String host, int port) {
return com.mongodb.client.MongoClients.create(String.format(CONNECTION_STRING_PATTERN, host, port));
}
/**
* Create a new {@link com.mongodb.reactivestreams.client.MongoClient} with defaults.
*
* @return new instance of {@link com.mongodb.reactivestreams.client.MongoClient}.
*/
public static com.mongodb.reactivestreams.client.MongoClient reactiveClient() {
return reactiveClient("localhost", 27017);
}
public static com.mongodb.reactivestreams.client.MongoClient reactiveClient(String host, int port) {
return MongoClients.create(String.format(CONNECTION_STRING_PATTERN, host, port));
}
/**
* Create a {@link com.mongodb.client.MongoCollection} if it does not exist, or drop and recreate it if it does.
*

1
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoVersionRule.java

@ -178,7 +178,6 @@ public class MongoVersionRule implements TestRule { @@ -178,7 +178,6 @@ public class MongoVersionRule implements TestRule {
MongoClient client = MongoTestUtils.client(host, port);
MongoDatabase database = client.getDatabase("test");
Document result = database.runCommand(new Document("buildInfo", 1));
client.close();
return Version.parse(result.get("version", String.class));
} catch (Exception e) {

9
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/ReplicaSet.java

@ -94,12 +94,11 @@ public class ReplicaSet implements TestRule { @@ -94,12 +94,11 @@ public class ReplicaSet implements TestRule {
if (runsAsReplicaSet.get() == null) {
try (MongoClient client = MongoTestUtils.client()) {
MongoClient client = MongoTestUtils.client();
boolean tmp = client.getDatabase("admin").runCommand(new Document("getCmdLineOpts", "1"))
.get("argv", List.class).contains("--replSet");
runsAsReplicaSet.compareAndSet(null, tmp);
}
boolean tmp = client.getDatabase("admin").runCommand(new Document("getCmdLineOpts", "1")).get("argv", List.class)
.contains("--replSet");
runsAsReplicaSet.compareAndSet(null, tmp);
}
return runsAsReplicaSet.get();
}

Loading…
Cancel
Save