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 {
/** /**
* @param mongoClient * @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 @Deprecated
public MongoAdmin(MongoClient mongoClient) { public MongoAdmin(MongoClient mongoClient) {

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

@ -85,13 +85,12 @@ public class ReactiveTransactionIntegrationTests {
personService = context.getBean(PersonService.class); personService = context.getBean(PersonService.class);
operations = context.getBean(ReactiveMongoOperations.class); operations = context.getBean(ReactiveMongoOperations.class);
try (MongoClient client = MongoClients.create()) { MongoClient client = MongoTestUtils.reactiveClient();
Flux.merge( // Flux.merge( //
MongoTestUtils.createOrReplaceCollection(DATABASE, operations.getCollectionName(Person.class), client), MongoTestUtils.createOrReplaceCollection(DATABASE, operations.getCollectionName(Person.class), client),
MongoTestUtils.createOrReplaceCollection(DATABASE, operations.getCollectionName(EventLog.class), client) // MongoTestUtils.createOrReplaceCollection(DATABASE, operations.getCollectionName(EventLog.class), client) //
).then().as(StepVerifier::create).verifyComplete(); ).then().as(StepVerifier::create).verifyComplete();
}
} }
@Test // DATAMONGO-2265 @Test // DATAMONGO-2265
@ -224,7 +223,7 @@ public class ReactiveTransactionIntegrationTests {
@Override @Override
public MongoClient reactiveMongoClient() { public MongoClient reactiveMongoClient() {
return MongoClients.create("mongodb://localhost"); return MongoTestUtils.reactiveClient();
} }
@Override @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;
import org.springframework.dao.DataAccessException; import org.springframework.dao.DataAccessException;
import org.springframework.data.mongodb.core.CollectionCallback; import org.springframework.data.mongodb.core.CollectionCallback;
import org.springframework.data.mongodb.core.MongoOperations; 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.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@ -52,7 +53,7 @@ public abstract class AbstractIntegrationTests {
@Override @Override
public MongoClient mongoClient() { 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;
import org.springframework.data.mongodb.core.ReactiveMongoOperations; import org.springframework.data.mongodb.core.ReactiveMongoOperations;
import org.springframework.data.mongodb.core.ReactiveMongoTemplate; import org.springframework.data.mongodb.core.ReactiveMongoTemplate;
import org.springframework.data.mongodb.core.SimpleReactiveMongoDatabaseFactory; 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.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.junit4.SpringRunner;
@ -56,7 +57,7 @@ public class AbstractReactiveMongoConfigurationIntegrationTests {
@Override @Override
public MongoClient reactiveMongoClient() { public MongoClient reactiveMongoClient() {
return MongoClients.create(); return MongoTestUtils.reactiveClient();
} }
@Override @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;
import org.springframework.data.mongodb.core.mapping.BasicMongoPersistentEntity; import org.springframework.data.mongodb.core.mapping.BasicMongoPersistentEntity;
import org.springframework.data.mongodb.core.mapping.Document; import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.MongoMappingContext; 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.EvaluationContextProvider;
import org.springframework.data.spel.ExtensionAwareEvaluationContextProvider; import org.springframework.data.spel.ExtensionAwareEvaluationContextProvider;
import org.springframework.test.util.ReflectionTestUtils; import org.springframework.test.util.ReflectionTestUtils;
@ -155,7 +156,7 @@ public class AbstractReactiveMongoConfigurationUnitTests {
@Override @Override
public MongoClient reactiveMongoClient() { public MongoClient reactiveMongoClient() {
return MongoClients.create(); return MongoTestUtils.reactiveClient();
} }
@Bean @Bean
@ -183,7 +184,7 @@ public class AbstractReactiveMongoConfigurationUnitTests {
@Override @Override
public MongoClient reactiveMongoClient() { public MongoClient reactiveMongoClient() {
return MongoClients.create(); return MongoTestUtils.reactiveClient();
} }
@Override @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;
import org.springframework.data.mongodb.core.mapping.MongoPersistentEntity; import org.springframework.data.mongodb.core.mapping.MongoPersistentEntity;
import org.springframework.data.mongodb.repository.ReactiveMongoRepository; import org.springframework.data.mongodb.repository.ReactiveMongoRepository;
import org.springframework.data.mongodb.repository.config.EnableReactiveMongoRepositories; 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.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.junit4.SpringRunner;
@ -70,7 +71,7 @@ public class ReactiveAuditingTests {
@Override @Override
public MongoClient reactiveMongoClient() { public MongoClient reactiveMongoClient() {
return MongoClients.create(); return MongoTestUtils.reactiveClient();
} }
@Bean @Bean

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

@ -69,11 +69,6 @@ public class ClientSessionTests {
template.getDb().getCollection(COLLECTION_NAME).insertOne(new Document("_id", "id-1").append("value", "spring")); template.getDb().getCollection(COLLECTION_NAME).insertOne(new Document("_id", "id-1").append("value", "spring"));
} }
@After
public void tearDown() {
client.close();
}
@Test // DATAMONGO-1880 @Test // DATAMONGO-1880
public void shouldApplyClientSession() { 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;
import org.springframework.data.mongodb.core.mapping.Field; import org.springframework.data.mongodb.core.mapping.Field;
import org.springframework.data.mongodb.core.query.Collation; import org.springframework.data.mongodb.core.query.Collation;
import org.springframework.data.mongodb.core.query.Collation.CaseFirst; 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.data.util.Version;
import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@ -60,7 +61,7 @@ public class DefaultReactiveIndexOperationsTests {
@Override @Override
public MongoClient reactiveMongoClient() { public MongoClient reactiveMongoClient() {
return MongoClients.create(); return MongoTestUtils.reactiveClient();
} }
@Override @Override

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

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

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

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

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

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

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

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

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

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

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

@ -149,7 +149,6 @@ public class SessionBoundMongoTemplateTests {
public void tearDown() { public void tearDown() {
session.close(); session.close();
client.close();
} }
@Test // DATAMONGO-1880 @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 {
@Bean @Bean
@Override @Override
public MongoClient reactiveMongoClient() { public MongoClient reactiveMongoClient() {
return MongoClients.create(); return MongoTestUtils.reactiveClient();
} }
@Override @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;
import org.springframework.data.mongodb.core.SimpleMongoClientDbFactory; import org.springframework.data.mongodb.core.SimpleMongoClientDbFactory;
import org.springframework.data.mongodb.core.mapping.DBRef; import org.springframework.data.mongodb.core.mapping.DBRef;
import org.springframework.data.mongodb.core.mapping.MongoMappingContext; 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.MongoClient;
import com.mongodb.client.MongoClients; import com.mongodb.client.MongoClients;
@ -55,7 +56,7 @@ public class MappingMongoConverterTests {
@Before @Before
public void setUp() { public void setUp() {
client = MongoClients.create(); client = MongoTestUtils.client();
client.getDatabase("mapping-converter-tests").drop(); client.getDatabase("mapping-converter-tests").drop();
MongoDbFactory factory = new SimpleMongoClientDbFactory(client, "mapping-converter-tests"); 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;
import org.springframework.data.mongodb.repository.query.MongoEntityInformation; import org.springframework.data.mongodb.repository.query.MongoEntityInformation;
import org.springframework.data.mongodb.repository.support.MongoRepositoryFactory; import org.springframework.data.mongodb.repository.support.MongoRepositoryFactory;
import org.springframework.data.mongodb.repository.support.QuerydslMongoPredicateExecutor; import org.springframework.data.mongodb.repository.support.QuerydslMongoPredicateExecutor;
import org.springframework.data.mongodb.test.util.MongoTestUtils;
import com.mongodb.WriteConcern; import com.mongodb.WriteConcern;
import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClient;
@ -75,12 +76,7 @@ public class ApplicationContextEventTests {
@BeforeClass @BeforeClass
public static void beforeClass() { public static void beforeClass() {
mongo = MongoClients.create(); mongo = MongoTestUtils.client();
}
@AfterClass
public static void afterClass() {
mongo.close();
} }
@Before @Before

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

@ -32,6 +32,7 @@ import org.junit.Test;
import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.MongoOperations;
import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.test.util.MongoTestUtils;
import org.springframework.util.Base64Utils; import org.springframework.util.Base64Utils;
import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClient;
@ -59,7 +60,7 @@ public class CriteriaTests {
@Before @Before
public void setUp() { public void setUp() {
client = MongoClients.create(); client = MongoTestUtils.client();
ops = new MongoTemplate(client, "criteria-tests"); ops = new MongoTemplate(client, "criteria-tests");
ops.dropCollection(DocumentWithBitmask.class); 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;
import org.springframework.data.mongodb.core.ReactiveMongoTemplate; import org.springframework.data.mongodb.core.ReactiveMongoTemplate;
import org.springframework.data.mongodb.core.convert.MongoJsonSchemaMapper; import org.springframework.data.mongodb.core.convert.MongoJsonSchemaMapper;
import org.springframework.data.mongodb.core.mapping.Field; 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.mongodb.test.util.MongoVersionRule;
import org.springframework.data.util.Version; import org.springframework.data.util.Version;
import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.ContextConfiguration;
@ -60,7 +61,7 @@ public class ReactiveMongoJsonSchemaTests {
@Override @Override
public MongoClient reactiveMongoClient() { public MongoClient reactiveMongoClient() {
return MongoClients.create(); return MongoTestUtils.reactiveClient();
} }
@Override @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;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.mongodb.reactivestreams.client.MongoClient; import com.mongodb.reactivestreams.client.MongoClient;
import com.mongodb.reactivestreams.client.MongoClients;
/** /**
* Test for {@link ReactiveMongoRepository} query methods. * Test for {@link ReactiveMongoRepository} query methods.
@ -94,7 +93,7 @@ public class ReactiveMongoRepositoryTests {
@Bean @Bean
@Override @Override
public MongoClient reactiveMongoClient() { public MongoClient reactiveMongoClient() {
return MongoClients.create(); return MongoTestUtils.reactiveClient();
} }
@Override @Override
@ -133,11 +132,10 @@ public class ReactiveMongoRepositoryTests {
@BeforeClass @BeforeClass
public static void cleanDb() { public static void cleanDb() {
try (MongoClient client = MongoClients.create()) { MongoClient client = MongoTestUtils.reactiveClient();
MongoTestUtils.createOrReplaceCollectionNow("reactive", "person", client); MongoTestUtils.createOrReplaceCollectionNow("reactive", "person", client);
MongoTestUtils.createOrReplaceCollectionNow("reactive", "capped", client); MongoTestUtils.createOrReplaceCollectionNow("reactive", "capped", client);
}
} }
@Before @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;
import org.springframework.data.mongodb.core.ReactiveMongoTemplate; import org.springframework.data.mongodb.core.ReactiveMongoTemplate;
import org.springframework.data.mongodb.core.SimpleReactiveMongoDatabaseFactory; import org.springframework.data.mongodb.core.SimpleReactiveMongoDatabaseFactory;
import org.springframework.data.mongodb.repository.ReactivePersonRepository; 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.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@ -45,7 +46,8 @@ public class ReactiveMongoRepositoriesRegistrarIntegrationTests {
@Bean @Bean
public ReactiveMongoTemplate reactiveMongoTemplate() throws Exception { 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 {
@Override @Override
public MongoClient reactiveMongoClient() { public MongoClient reactiveMongoClient() {
return MongoClients.create(); return MongoTestUtils.reactiveClient();
} }
@Override @Override
@ -90,11 +90,10 @@ public class ReactiveQuerydslMongoPredicateExecutorTests {
@BeforeClass @BeforeClass
public static void cleanDb() { public static void cleanDb() {
try (MongoClient client = MongoClients.create()) { MongoClient client = MongoTestUtils.reactiveClient();
MongoTestUtils.createOrReplaceCollectionNow("reactive", "person", client); MongoTestUtils.createOrReplaceCollectionNow("reactive", "person", client);
MongoTestUtils.createOrReplaceCollectionNow("reactive", "user", client); MongoTestUtils.createOrReplaceCollectionNow("reactive", "user", client);
}
} }
@Before @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;
import org.springframework.data.mongodb.core.mapping.MongoPersistentEntity; import org.springframework.data.mongodb.core.mapping.MongoPersistentEntity;
import org.springframework.data.mongodb.repository.VersionedPerson; import org.springframework.data.mongodb.repository.VersionedPerson;
import org.springframework.data.mongodb.repository.query.MongoEntityInformation; 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.MongoVersion;
import org.springframework.data.mongodb.test.util.ReplicaSet; import org.springframework.data.mongodb.test.util.ReplicaSet;
import org.springframework.data.util.ClassTypeInformation; import org.springframework.data.util.ClassTypeInformation;
@ -56,7 +57,7 @@ public class SimpleMongoRepositoryVersionedEntityTests {
@Override @Override
public MongoClient mongoClient() { public MongoClient mongoClient() {
return MongoClients.create(); return MongoTestUtils.client();
} }
@Override @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;
import org.springframework.data.mongodb.core.mapping.MongoPersistentEntity; import org.springframework.data.mongodb.core.mapping.MongoPersistentEntity;
import org.springframework.data.mongodb.repository.VersionedPerson; import org.springframework.data.mongodb.repository.VersionedPerson;
import org.springframework.data.mongodb.repository.query.MongoEntityInformation; 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.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@ -49,7 +50,7 @@ public class SimpleReactiveMongoRepositoryVersionedEntityTests {
@Override @Override
public MongoClient reactiveMongoClient() { public MongoClient reactiveMongoClient() {
return MongoClients.create(); return MongoTestUtils.reactiveClient();
} }
@Override @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 {
boolean isInternal = false; boolean isInternal = false;
if (client == null) { if (client == null) {
client = MongoClients.create(); client = MongoTestUtils.client();
isInternal = true; isInternal = true;
} }
doClean(); doClean();
if (isInternal) { if (isInternal) {
client.close();
client = null; client = null;
} }
} }

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

@ -15,7 +15,6 @@
*/ */
package org.springframework.data.mongodb.test.util; package org.springframework.data.mongodb.test.util;
import com.mongodb.client.MongoClient;
import reactor.core.publisher.Mono; import reactor.core.publisher.Mono;
import reactor.test.StepVerifier; import reactor.test.StepVerifier;
@ -25,20 +24,29 @@ import org.bson.Document;
import com.mongodb.ReadPreference; import com.mongodb.ReadPreference;
import com.mongodb.WriteConcern; import com.mongodb.WriteConcern;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase; import com.mongodb.client.MongoDatabase;
import com.mongodb.reactivestreams.client.MongoClients; import com.mongodb.reactivestreams.client.MongoClients;
import com.mongodb.reactivestreams.client.Success; import com.mongodb.reactivestreams.client.Success;
/** /**
* Utility to create (and reuse) imperative and reactive {@code MongoClient} instances.
*
* @author Christoph Strobl * @author Christoph Strobl
* @author Mark Paluch
*/ */
public class MongoTestUtils { 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/"; 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() { public static MongoClient client() {
return client("localhost", 27017); return client("localhost", 27017);
} }
@ -46,6 +54,20 @@ public class MongoTestUtils {
public static MongoClient client(String host, int port) { public static MongoClient client(String host, int port) {
return com.mongodb.client.MongoClients.create(String.format(CONNECTION_STRING_PATTERN, host, 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. * 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 {
MongoClient client = MongoTestUtils.client(host, port); MongoClient client = MongoTestUtils.client(host, port);
MongoDatabase database = client.getDatabase("test"); MongoDatabase database = client.getDatabase("test");
Document result = database.runCommand(new Document("buildInfo", 1)); Document result = database.runCommand(new Document("buildInfo", 1));
client.close();
return Version.parse(result.get("version", String.class)); return Version.parse(result.get("version", String.class));
} catch (Exception e) { } 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 {
if (runsAsReplicaSet.get() == null) { if (runsAsReplicaSet.get() == null) {
try (MongoClient client = MongoTestUtils.client()) { MongoClient client = MongoTestUtils.client();
boolean tmp = client.getDatabase("admin").runCommand(new Document("getCmdLineOpts", "1")) boolean tmp = client.getDatabase("admin").runCommand(new Document("getCmdLineOpts", "1")).get("argv", List.class)
.get("argv", List.class).contains("--replSet"); .contains("--replSet");
runsAsReplicaSet.compareAndSet(null, tmp); runsAsReplicaSet.compareAndSet(null, tmp);
}
} }
return runsAsReplicaSet.get(); return runsAsReplicaSet.get();
} }

Loading…
Cancel
Save