Browse Source

Close clients created during tests.

See #3817
Original pull request: #3987.
3.4.x
Christoph Strobl 4 years ago committed by Mark Paluch
parent
commit
1119a4a0a6
No known key found for this signature in database
GPG Key ID: 4406B84C1661DCD1
  1. 4
      spring-data-mongodb/src/test/java/ConfigClassInDefaultPackage.java
  2. 3
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AbstractIntegrationTests.java
  3. 5
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AbstractMongoConfigurationUnitTests.java
  4. 2
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AbstractReactiveMongoConfigurationUnitTests.java
  5. 3
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/AuditingViaJavaConfigRepositoriesTests.java
  6. 11
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/MongoDbFactoryParserIntegrationTests.java
  7. 3
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/ReactiveAuditingTests.java
  8. 5
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/MongoTemplateTests.java
  9. 7
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/geo/AbstractGeoSpatialTests.java
  10. 4
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/GeoIndexedAppConfig.java
  11. 5
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/ApplicationContextEventTests.java
  12. 4
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/ApplicationContextEventTestsAppConfig.java
  13. 4
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/schema/ReactiveMongoJsonSchemaTests.java
  14. 3
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/performance/PerformanceTests.java
  15. 8
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/performance/ReactivePerformanceTests.java
  16. 3
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/AbstractPersonRepositoryIntegrationTests.java
  17. 4
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/ReactiveMongoRepositoryTests.java
  18. 7
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/config/ReactiveMongoRepositoriesRegistrarIntegrationTests.java
  19. 13
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/ReactiveQuerydslMongoPredicateExecutorTests.java
  20. 4
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SimpleMongoRepositoryVersionedEntityTests.java
  21. 5
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SimpleReactiveMongoRepositoryVersionedEntityTests.java
  22. 42
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoClientClosingTestConfiguration.java
  23. 44
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/ReactiveMongoClientClosingTestConfiguration.java

4
spring-data-mongodb/src/test/java/ConfigClassInDefaultPackage.java

@ -19,10 +19,10 @@ import java.util.Collections; @@ -19,10 +19,10 @@ import java.util.Collections;
import java.util.Set;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import org.springframework.data.mongodb.test.util.MongoClientClosingTestConfiguration;
/**
* Sample configuration class in default package.
@ -30,7 +30,7 @@ import com.mongodb.client.MongoClients; @@ -30,7 +30,7 @@ import com.mongodb.client.MongoClients;
* @author Oliver Gierke
*/
@Configuration
public class ConfigClassInDefaultPackage extends AbstractMongoClientConfiguration {
public class ConfigClassInDefaultPackage extends MongoClientClosingTestConfiguration {
/*
* (non-Javadoc)

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

@ -29,6 +29,7 @@ import org.springframework.context.annotation.Configuration; @@ -29,6 +29,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.MongoClientClosingTestConfiguration;
import org.springframework.data.mongodb.test.util.MongoTestUtils;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit.jupiter.SpringExtension;
@ -45,7 +46,7 @@ import com.mongodb.client.MongoCollection; @@ -45,7 +46,7 @@ import com.mongodb.client.MongoCollection;
public abstract class AbstractIntegrationTests {
@Configuration
static class TestConfig extends AbstractMongoClientConfiguration {
static class TestConfig extends MongoClientClosingTestConfiguration {
@Override
protected String getDatabaseName() {

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

@ -27,6 +27,7 @@ import java.util.Set; @@ -27,6 +27,7 @@ import java.util.Set;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Bean;
@ -158,7 +159,7 @@ public class AbstractMongoConfigurationUnitTests { @@ -158,7 +159,7 @@ public class AbstractMongoConfigurationUnitTests {
@Override
public MongoClient mongoClient() {
return MongoClients.create();
return Mockito.mock(MongoClient.class);
}
@Override
@ -186,7 +187,7 @@ public class AbstractMongoConfigurationUnitTests { @@ -186,7 +187,7 @@ public class AbstractMongoConfigurationUnitTests {
@Override
public MongoClient mongoClient() {
return MongoClients.create();
return Mockito.mock(MongoClient.class);
}
@Override

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

@ -158,7 +158,7 @@ public class AbstractReactiveMongoConfigurationUnitTests { @@ -158,7 +158,7 @@ public class AbstractReactiveMongoConfigurationUnitTests {
@Override
public MongoClient reactiveMongoClient() {
return MongoTestUtils.reactiveClient();
return Mockito.mock(MongoClient.class);
}
@Override

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

@ -49,6 +49,7 @@ import org.springframework.data.mongodb.repository.MongoRepository; @@ -49,6 +49,7 @@ 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;
import org.springframework.test.context.ContextConfiguration;
@ -233,7 +234,7 @@ class AuditingViaJavaConfigRepositoriesTests { @@ -233,7 +234,7 @@ class AuditingViaJavaConfigRepositoriesTests {
@Configuration
@EnableMongoAuditing
static class SimpleConfig extends AbstractMongoClientConfiguration {
static class SimpleConfig extends MongoClientClosingTestConfiguration {
@Override
public MongoClient mongoClient() {

11
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/config/MongoDbFactoryParserIntegrationTests.java

@ -19,7 +19,6 @@ import static org.assertj.core.api.Assertions.*; @@ -19,7 +19,6 @@ import static org.assertj.core.api.Assertions.*;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.config.ConstructorArgumentValues;
import org.springframework.beans.factory.config.ConstructorArgumentValues.ValueHolder;
@ -74,6 +73,7 @@ public class MongoDbFactoryParserIntegrationTests { @@ -74,6 +73,7 @@ public class MongoDbFactoryParserIntegrationTests {
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("namespace/db-factory-bean.xml");
assertWriteConcern(ctx, WriteConcern.ACKNOWLEDGED);
ctx.close();
}
@Test // DATAMONGO-2199
@ -82,6 +82,7 @@ public class MongoDbFactoryParserIntegrationTests { @@ -82,6 +82,7 @@ public class MongoDbFactoryParserIntegrationTests {
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext(
"namespace/db-factory-bean-custom-write-concern.xml");
assertWriteConcern(ctx, new WriteConcern("rack1"));
ctx.close();
}
@Test // DATAMONGO-331
@ -90,10 +91,10 @@ public class MongoDbFactoryParserIntegrationTests { @@ -90,10 +91,10 @@ public class MongoDbFactoryParserIntegrationTests {
AbstractApplicationContext ctx = new ClassPathXmlApplicationContext(
"namespace/db-factory-bean-custom-write-concern.xml");
MongoDatabaseFactory factory = ctx.getBean("second", MongoDatabaseFactory.class);
MongoDatabase db = factory.getMongoDatabase();
ctx.close();
MongoDatabase db = factory.getMongoDatabase();
assertThat(db.getWriteConcern()).isEqualTo(WriteConcern.W2);
ctx.close();
}
// This test will fail since equals in WriteConcern uses == for _w and not .equals
@ -127,6 +128,8 @@ public class MongoDbFactoryParserIntegrationTests { @@ -127,6 +128,8 @@ public class MongoDbFactoryParserIntegrationTests {
MongoDatabaseFactory dbFactory = factory.getBean("mongoDbFactory", MongoDatabaseFactory.class);
MongoDatabase db = dbFactory.getMongoDatabase();
assertThat(db.getName()).isEqualTo("database");
factory.destroyBean(dbFactory);
}
@Test // DATAMONGO-1218
@ -171,6 +174,8 @@ public class MongoDbFactoryParserIntegrationTests { @@ -171,6 +174,8 @@ public class MongoDbFactoryParserIntegrationTests {
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("namespace/db-factory-bean.xml");
MongoDatabaseFactory dbFactory = ctx.getBean("with-connection-string", MongoDatabaseFactory.class);
ctx.close();
assertThat(dbFactory).isInstanceOf(SimpleMongoClientDatabaseFactory.class);
assertThat(ReflectionTestUtils.getField(dbFactory, "mongoClient"))
.isInstanceOf(com.mongodb.client.MongoClient.class);

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

@ -21,6 +21,7 @@ import org.springframework.core.ResolvableType; @@ -21,6 +21,7 @@ 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;
@ -75,7 +76,7 @@ class ReactiveAuditingTests { @@ -75,7 +76,7 @@ class ReactiveAuditingTests {
@EnableReactiveMongoAuditing
@EnableReactiveMongoRepositories(basePackageClasses = ReactiveAuditingTests.class, considerNestedRepositories = true,
includeFilters = @Filter(type = FilterType.ASSIGNABLE_TYPE, classes = ReactiveAuditablePersonRepository.class))
static class Config extends AbstractReactiveMongoConfiguration {
static class Config extends ReactiveMongoClientClosingTestConfiguration {
@Override
protected String getDatabaseName() {

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

@ -64,6 +64,7 @@ import org.springframework.data.domain.Sort.Direction; @@ -64,6 +64,7 @@ import org.springframework.data.domain.Sort.Direction;
import org.springframework.data.mapping.MappingException;
import org.springframework.data.mongodb.InvalidMongoDbApiUsageException;
import org.springframework.data.mongodb.MongoDatabaseFactory;
import org.springframework.data.mongodb.core.BulkOperations.BulkMode;
import org.springframework.data.mongodb.core.convert.LazyLoadingProxy;
import org.springframework.data.mongodb.core.geo.GeoJsonPoint;
import org.springframework.data.mongodb.core.index.Index;
@ -3580,7 +3581,7 @@ public class MongoTemplateTests { @@ -3580,7 +3581,7 @@ public class MongoTemplateTests {
.mapToObj(i -> new Sample("id-" + i, i % 2 == 0 ? "stark" : "lannister")) //
.collect(Collectors.toList());
template.insertAll(samples);
template.bulkOps(BulkMode.UNORDERED, Sample.class).insert(samples).execute();
DeleteResult wr = template.remove(query(where("field").is("lannister")).limit(25), Sample.class);
@ -3595,7 +3596,7 @@ public class MongoTemplateTests { @@ -3595,7 +3596,7 @@ public class MongoTemplateTests {
.mapToObj(i -> new Sample("id-" + i, i % 2 == 0 ? "stark" : "lannister")) //
.collect(Collectors.toList());
template.insertAll(samples);
template.bulkOps(BulkMode.UNORDERED, Sample.class).insert(samples).execute();
DeleteResult wr = template.remove(new Query().skip(25).with(Sort.by("field")), Sample.class);

7
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/geo/AbstractGeoSpatialTests.java

@ -37,13 +37,13 @@ import org.springframework.data.geo.GeoResults; @@ -37,13 +37,13 @@ import org.springframework.data.geo.GeoResults;
import org.springframework.data.geo.Metrics;
import org.springframework.data.geo.Point;
import org.springframework.data.geo.Polygon;
import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration;
import org.springframework.data.mongodb.core.BulkOperations.BulkMode;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.TestEntities;
import org.springframework.data.mongodb.core.Venue;
import org.springframework.data.mongodb.core.query.NearQuery;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.test.util.MongoClientClosingTestConfiguration;
import org.springframework.data.mongodb.test.util.MongoTestUtils;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
@ -60,7 +60,7 @@ import com.mongodb.client.MongoClient; @@ -60,7 +60,7 @@ import com.mongodb.client.MongoClient;
public abstract class AbstractGeoSpatialTests {
@Configuration
static class TestConfig extends AbstractMongoClientConfiguration {
static class TestConfig extends MongoClientClosingTestConfiguration {
@Override
protected String getDatabaseName() {
@ -111,10 +111,7 @@ public abstract class AbstractGeoSpatialTests { @@ -111,10 +111,7 @@ public abstract class AbstractGeoSpatialTests {
}
protected void addVenues() {
template.bulkOps(BulkMode.UNORDERED, Venue.class).insert(TestEntities.geolocation().newYork()).execute();
// template.insertAll(TestEntities.geolocation().newYork());
}
@Test

4
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/GeoIndexedAppConfig.java

@ -19,13 +19,13 @@ import java.util.Collections; @@ -19,13 +19,13 @@ import java.util.Collections;
import java.util.Set;
import org.springframework.context.annotation.Bean;
import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration;
import org.springframework.data.mongodb.core.mapping.event.LoggingEventListener;
import org.springframework.data.mongodb.test.util.MongoClientClosingTestConfiguration;
import org.springframework.data.mongodb.test.util.MongoTestUtils;
import com.mongodb.client.MongoClient;
public class GeoIndexedAppConfig extends AbstractMongoClientConfiguration {
public class GeoIndexedAppConfig extends MongoClientClosingTestConfiguration {
public static String GEO_DB = "database";
public static String GEO_COLLECTION = "geolocation";

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

@ -34,6 +34,7 @@ import org.junit.jupiter.api.Test; @@ -34,6 +34,7 @@ import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.MongoTemplate;
@ -72,7 +73,7 @@ public class ApplicationContextEventTests { @@ -72,7 +73,7 @@ public class ApplicationContextEventTests {
static @Client MongoClient mongoClient;
private ApplicationContext applicationContext;
private ConfigurableApplicationContext applicationContext;
private MongoTemplate template;
private SimpleMappingEventListener listener;
@ -89,7 +90,9 @@ public class ApplicationContextEventTests { @@ -89,7 +90,9 @@ public class ApplicationContextEventTests {
@AfterEach
public void cleanUp() {
cleanDb();
applicationContext.close();
}
private void cleanDb() {

4
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/mapping/event/ApplicationContextEventTestsAppConfig.java

@ -17,13 +17,13 @@ package org.springframework.data.mongodb.core.mapping.event; @@ -17,13 +17,13 @@ package org.springframework.data.mongodb.core.mapping.event;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration;
import org.springframework.data.mongodb.test.util.MongoClientClosingTestConfiguration;
import org.springframework.data.mongodb.test.util.MongoTestUtils;
import com.mongodb.client.MongoClient;
@Configuration
public class ApplicationContextEventTestsAppConfig extends AbstractMongoClientConfiguration {
public class ApplicationContextEventTestsAppConfig extends MongoClientClosingTestConfiguration {
@Override
public String getDatabaseName() {

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

@ -18,6 +18,7 @@ package org.springframework.data.mongodb.core.schema; @@ -18,6 +18,7 @@ package org.springframework.data.mongodb.core.schema;
import static org.springframework.data.mongodb.test.util.Assertions.*;
import lombok.Data;
import org.springframework.data.mongodb.test.util.ReactiveMongoClientClosingTestConfiguration;
import reactor.test.StepVerifier;
import java.time.Duration;
@ -32,7 +33,6 @@ import org.junit.jupiter.api.extension.ExtendWith; @@ -32,7 +33,6 @@ 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;
import org.springframework.data.mongodb.config.AbstractReactiveMongoConfiguration;
import org.springframework.data.mongodb.core.CollectionOptions;
import org.springframework.data.mongodb.core.ReactiveMongoTemplate;
import org.springframework.data.mongodb.core.convert.MongoJsonSchemaMapper;
@ -56,7 +56,7 @@ public class ReactiveMongoJsonSchemaTests { @@ -56,7 +56,7 @@ public class ReactiveMongoJsonSchemaTests {
static @Client MongoClient mongoClient;
@Configuration
static class Config extends AbstractReactiveMongoConfiguration {
static class Config extends ReactiveMongoClientClosingTestConfiguration {
@Override
public MongoClient reactiveMongoClient() {

3
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/performance/PerformanceTests.java

@ -93,7 +93,10 @@ public class PerformanceTests { @@ -93,7 +93,10 @@ public class PerformanceTests {
factory.afterPropertiesSet();
this.repository = factory.getObject();
}
void afterEach() {
mongo.close();
}
@Test

8
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/performance/ReactivePerformanceTests.java

@ -28,9 +28,9 @@ import java.util.stream.Collectors; @@ -28,9 +28,9 @@ import java.util.stream.Collectors;
import org.bson.Document;
import org.bson.types.ObjectId;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.core.Constants;
import org.springframework.data.annotation.PersistenceConstructor;
import org.springframework.data.mongodb.core.ReactiveMongoOperations;
@ -41,7 +41,6 @@ import org.springframework.data.mongodb.core.convert.DbRefResolver; @@ -41,7 +41,6 @@ import org.springframework.data.mongodb.core.convert.DbRefResolver;
import org.springframework.data.mongodb.core.convert.DbRefResolverCallback;
import org.springframework.data.mongodb.core.convert.MappingMongoConverter;
import org.springframework.data.mongodb.core.convert.MongoConverter;
import org.springframework.data.mongodb.core.convert.ReferenceLoader;
import org.springframework.data.mongodb.core.convert.ReferenceLookupDelegate;
import org.springframework.data.mongodb.core.mapping.MongoMappingContext;
import org.springframework.data.mongodb.core.mapping.MongoPersistentEntity;
@ -136,6 +135,11 @@ public class ReactivePerformanceTests { @@ -136,6 +135,11 @@ public class ReactivePerformanceTests {
repository = factory.getRepository(ReactivePersonRepository.class);
}
@AfterEach
void afterEach() {
mongo.close();
}
@Test // DATAMONGO-1444
public void writeWithWriteConcerns() {
executeWithWriteConcerns((constantName, concern) -> {

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

@ -59,6 +59,7 @@ import org.springframework.data.geo.Metric; @@ -59,6 +59,7 @@ import org.springframework.data.geo.Metric;
import org.springframework.data.geo.Metrics;
import org.springframework.data.geo.Point;
import org.springframework.data.geo.Polygon;
import org.springframework.data.mongodb.core.BulkOperations.BulkMode;
import org.springframework.data.mongodb.core.MongoOperations;
import org.springframework.data.mongodb.core.aggregation.AggregationResults;
import org.springframework.data.mongodb.core.geo.GeoJsonPoint;
@ -929,7 +930,7 @@ public abstract class AbstractPersonRepositoryIntegrationTests { @@ -929,7 +930,7 @@ public abstract class AbstractPersonRepositoryIntegrationTests {
persons.add(new Person(String.format("%03d", i), "ln" + 1, 100));
}
repository.saveAll(persons);
operations.bulkOps(BulkMode.UNORDERED, Person.class).insert(persons).execute();
Slice<Person> slice = repository.findByAgeGreaterThan(50, PageRequest.of(0, 20, Direction.ASC, "firstname"));
assertThat(slice).containsExactlyElementsOf(persons.subList(0, 20));

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

@ -55,7 +55,6 @@ import org.springframework.data.geo.Distance; @@ -55,7 +55,6 @@ import org.springframework.data.geo.Distance;
import org.springframework.data.geo.GeoResult;
import org.springframework.data.geo.Metrics;
import org.springframework.data.geo.Point;
import org.springframework.data.mongodb.config.AbstractReactiveMongoConfiguration;
import org.springframework.data.mongodb.core.CollectionOptions;
import org.springframework.data.mongodb.core.ReactiveMongoOperations;
import org.springframework.data.mongodb.core.ReactiveMongoTemplate;
@ -71,6 +70,7 @@ import org.springframework.data.mongodb.test.util.MongoTestUtils; @@ -71,6 +70,7 @@ import org.springframework.data.mongodb.test.util.MongoTestUtils;
import org.springframework.data.querydsl.ReactiveQuerydslPredicateExecutor;
import org.springframework.data.repository.Repository;
import org.springframework.data.repository.query.ReactiveQueryMethodEvaluationContextProvider;
import org.springframework.data.mongodb.test.util.ReactiveMongoClientClosingTestConfiguration;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import com.mongodb.reactivestreams.client.MongoClient;
@ -98,7 +98,7 @@ class ReactiveMongoRepositoryTests { @@ -98,7 +98,7 @@ class ReactiveMongoRepositoryTests {
private QPerson person = QPerson.person;
@Configuration
static class Config extends AbstractReactiveMongoConfiguration {
static class Config extends ReactiveMongoClientClosingTestConfiguration {
@Bean
@Override

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

@ -18,7 +18,7 @@ package org.springframework.data.mongodb.repository.config; @@ -18,7 +18,7 @@ package org.springframework.data.mongodb.repository.config;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mockito;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
@ -26,10 +26,11 @@ import org.springframework.context.annotation.Configuration; @@ -26,10 +26,11 @@ 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.SpringRunner;
import com.mongodb.reactivestreams.client.MongoClient;
/**
* Integration tests for {@link ReactiveMongoRepositoriesRegistrar}.
*
@ -46,7 +47,7 @@ public class ReactiveMongoRepositoriesRegistrarIntegrationTests { @@ -46,7 +47,7 @@ public class ReactiveMongoRepositoriesRegistrarIntegrationTests {
@Bean
public ReactiveMongoTemplate reactiveMongoTemplate() throws Exception {
return new ReactiveMongoTemplate(
new SimpleReactiveMongoDatabaseFactory(MongoTestUtils.reactiveClient(), "database"));
new SimpleReactiveMongoDatabaseFactory(Mockito.mock(MongoClient.class), "database"));
}
}

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

@ -31,7 +31,6 @@ import org.junit.Before; @@ -31,7 +31,6 @@ import org.junit.Before;
import org.junit.BeforeClass;
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.dao.IncorrectResultSizeDataAccessException;
@ -40,7 +39,6 @@ import org.springframework.data.domain.PageRequest; @@ -40,7 +39,6 @@ import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.data.domain.Sort.Direction;
import org.springframework.data.mongodb.ReactiveMongoDatabaseFactory;
import org.springframework.data.mongodb.config.AbstractReactiveMongoConfiguration;
import org.springframework.data.mongodb.core.ReactiveMongoOperations;
import org.springframework.data.mongodb.core.ReactiveMongoTemplate;
import org.springframework.data.mongodb.core.query.BasicQuery;
@ -53,6 +51,7 @@ import org.springframework.data.mongodb.repository.User; @@ -53,6 +51,7 @@ import org.springframework.data.mongodb.repository.User;
import org.springframework.data.mongodb.repository.query.MongoEntityInformation;
import org.springframework.data.mongodb.test.util.MongoTestUtils;
import org.springframework.data.repository.query.FluentQuery;
import org.springframework.data.mongodb.test.util.ReactiveMongoClientClosingTestConfiguration;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
@ -80,7 +79,7 @@ public class ReactiveQuerydslMongoPredicateExecutorTests { @@ -80,7 +79,7 @@ public class ReactiveQuerydslMongoPredicateExecutorTests {
QPerson person;
@Configuration
static class Config extends AbstractReactiveMongoConfiguration {
static class Config extends ReactiveMongoClientClosingTestConfiguration {
@Override
public MongoClient reactiveMongoClient() {
@ -101,10 +100,10 @@ public class ReactiveQuerydslMongoPredicateExecutorTests { @@ -101,10 +100,10 @@ public class ReactiveQuerydslMongoPredicateExecutorTests {
@BeforeClass
public static void cleanDb() {
MongoClient client = MongoTestUtils.reactiveClient();
MongoTestUtils.createOrReplaceCollectionNow("reactive", "person", client);
MongoTestUtils.createOrReplaceCollectionNow("reactive", "user", client);
try (MongoClient client = MongoTestUtils.reactiveClient()) {
MongoTestUtils.createOrReplaceCollectionNow("reactive", "person", client);
MongoTestUtils.createOrReplaceCollectionNow("reactive", "user", client);
}
}
@Before

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

@ -32,12 +32,12 @@ import org.springframework.beans.factory.annotation.Autowired; @@ -32,12 +32,12 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.dao.OptimisticLockingFailureException;
import org.springframework.data.mongodb.MongoTransactionManager;
import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration;
import org.springframework.data.mongodb.core.MongoTemplate;
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.EnableIfMongoServerVersion;
import org.springframework.data.mongodb.test.util.MongoClientClosingTestConfiguration;
import org.springframework.data.mongodb.test.util.MongoTestUtils;
import org.springframework.data.mongodb.test.util.ReplicaSet;
import org.springframework.test.context.ContextConfiguration;
@ -55,7 +55,7 @@ import com.mongodb.client.MongoClient; @@ -55,7 +55,7 @@ import com.mongodb.client.MongoClient;
public class SimpleMongoRepositoryVersionedEntityTests {
@Configuration
static class Config extends AbstractMongoClientConfiguration {
static class Config extends MongoClientClosingTestConfiguration {
@Override
public MongoClient mongoClient() {

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

@ -26,16 +26,15 @@ import java.util.Set; @@ -26,16 +26,15 @@ import java.util.Set;
import org.junit.Before;
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.dao.OptimisticLockingFailureException;
import org.springframework.data.mongodb.config.AbstractReactiveMongoConfiguration;
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.data.mongodb.test.util.ReactiveMongoClientClosingTestConfiguration;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
@ -49,7 +48,7 @@ import com.mongodb.reactivestreams.client.MongoClient; @@ -49,7 +48,7 @@ import com.mongodb.reactivestreams.client.MongoClient;
public class SimpleReactiveMongoRepositoryVersionedEntityTests {
@Configuration
static class Config extends AbstractReactiveMongoConfiguration {
static class Config extends ReactiveMongoClientClosingTestConfiguration {
@Override
public MongoClient reactiveMongoClient() {

42
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/MongoClientClosingTestConfiguration.java

@ -0,0 +1,42 @@ @@ -0,0 +1,42 @@
/*
* Copyright 2021 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.data.mongodb.test.util;
import javax.annotation.PreDestroy;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.MongoDatabaseFactory;
import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration;
import org.springframework.test.util.ReflectionTestUtils;
/**
* @author Christoph Strobl
*/
public abstract class MongoClientClosingTestConfiguration extends AbstractMongoClientConfiguration {
@Autowired(required = false) MongoDatabaseFactory dbFactory;
@PreDestroy
public void destroy() {
if (dbFactory != null) {
Object mongo = ReflectionTestUtils.getField(dbFactory, "mongoClient");
if (mongo != null) {
ReflectionTestUtils.invokeMethod(mongo, "close");
}
}
}
}

44
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/test/util/ReactiveMongoClientClosingTestConfiguration.java

@ -0,0 +1,44 @@ @@ -0,0 +1,44 @@
/*
* Copyright 2021 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.data.mongodb.test.util;
import javax.annotation.PreDestroy;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.ReactiveMongoDatabaseFactory;
import org.springframework.data.mongodb.config.AbstractReactiveMongoConfiguration;
import org.springframework.test.util.ReflectionTestUtils;
import com.mongodb.reactivestreams.client.MongoClient;
/**
* @author Christoph Strobl
*/
public abstract class ReactiveMongoClientClosingTestConfiguration extends AbstractReactiveMongoConfiguration {
@Autowired(required = false) ReactiveMongoDatabaseFactory dbFactory;
@PreDestroy
public void destroy() {
if (dbFactory != null) {
Object mongo = ReflectionTestUtils.getField(dbFactory, "mongo");
if (mongo != null) {
((MongoClient) mongo).close();
}
}
}
}
Loading…
Cancel
Save