Skip to content

Improve connection handling in tests. #3987

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 3 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb-parent</artifactId>
<version>3.4.0-SNAPSHOT</version>
<version>3.4.0-GH-3817-SNAPSHOT</version>
<packaging>pom</packaging>

<name>Spring Data MongoDB</name>
Expand Down
2 changes: 1 addition & 1 deletion spring-data-mongodb-benchmarks/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<parent>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb-parent</artifactId>
<version>3.4.0-SNAPSHOT</version>
<version>3.4.0-GH-3817-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

Expand Down
2 changes: 1 addition & 1 deletion spring-data-mongodb-distribution/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
<parent>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb-parent</artifactId>
<version>3.4.0-SNAPSHOT</version>
<version>3.4.0-GH-3817-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

Expand Down
2 changes: 1 addition & 1 deletion spring-data-mongodb/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<parent>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb-parent</artifactId>
<version>3.4.0-SNAPSHOT</version>
<version>3.4.0-GH-3817-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,18 +19,18 @@
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.
*
* @author Oliver Gierke
*/
@Configuration
public class ConfigClassInDefaultPackage extends AbstractMongoClientConfiguration {
public class ConfigClassInDefaultPackage extends MongoClientClosingTestConfiguration {

/*
* (non-Javadoc)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
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;
Expand All @@ -45,7 +46,7 @@
public abstract class AbstractIntegrationTests {

@Configuration
static class TestConfig extends AbstractMongoClientConfiguration {
static class TestConfig extends MongoClientClosingTestConfiguration {

@Override
protected String getDatabaseName() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@

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;
Expand Down Expand Up @@ -158,7 +159,7 @@ protected String getDatabaseName() {

@Override
public MongoClient mongoClient() {
return MongoClients.create();
return Mockito.mock(MongoClient.class);
}

@Override
Expand Down Expand Up @@ -186,7 +187,7 @@ protected String getDatabaseName() {

@Override
public MongoClient mongoClient() {
return MongoClients.create();
return Mockito.mock(MongoClient.class);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ protected String getDatabaseName() {

@Override
public MongoClient reactiveMongoClient() {
return MongoTestUtils.reactiveClient();
return Mockito.mock(MongoClient.class);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@
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;
Expand Down Expand Up @@ -233,7 +234,7 @@ static class SimpleConfigWithRepositories extends SimpleConfig {}

@Configuration
@EnableMongoAuditing
static class SimpleConfig extends AbstractMongoClientConfiguration {
static class SimpleConfig extends MongoClientClosingTestConfiguration {

@Override
public MongoClient mongoClient() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@

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;
Expand Down Expand Up @@ -74,6 +73,7 @@ public void parsesWriteConcern() {

ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("namespace/db-factory-bean.xml");
assertWriteConcern(ctx, WriteConcern.ACKNOWLEDGED);
ctx.close();
}

@Test // DATAMONGO-2199
Expand All @@ -82,6 +82,7 @@ public void parsesCustomWriteConcern() {
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext(
"namespace/db-factory-bean-custom-write-concern.xml");
assertWriteConcern(ctx, new WriteConcern("rack1"));
ctx.close();
}

@Test // DATAMONGO-331
Expand All @@ -90,10 +91,10 @@ public void readsReplicasWriteConcernCorrectly() {
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
Expand Down Expand Up @@ -127,6 +128,8 @@ public void setsUpMongoDbFactoryUsingAMongoUriWithoutCredentials() {
MongoDatabaseFactory dbFactory = factory.getBean("mongoDbFactory", MongoDatabaseFactory.class);
MongoDatabase db = dbFactory.getMongoDatabase();
assertThat(db.getName()).isEqualTo("database");

factory.destroyBean(dbFactory);
}

@Test // DATAMONGO-1218
Expand Down Expand Up @@ -171,6 +174,8 @@ public void usesConnectionStringToCreateClientClient() {
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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
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;
Expand Down Expand Up @@ -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() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@
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;
Expand Down Expand Up @@ -3580,7 +3581,7 @@ public void removeShouldConsiderLimit() {
.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);

Expand All @@ -3595,7 +3596,7 @@ public void removeShouldConsiderSkipAndSort() {
.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);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,13 @@
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;
Expand All @@ -60,7 +60,7 @@
public abstract class AbstractGeoSpatialTests {

@Configuration
static class TestConfig extends AbstractMongoClientConfiguration {
static class TestConfig extends MongoClientClosingTestConfiguration {

@Override
protected String getDatabaseName() {
Expand Down Expand Up @@ -111,10 +111,7 @@ protected void removeVenues() {
}

protected void addVenues() {


template.bulkOps(BulkMode.UNORDERED, Venue.class).insert(TestEntities.geolocation().newYork()).execute();
// template.insertAll(TestEntities.geolocation().newYork());
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,13 @@
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";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
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;
Expand Down Expand Up @@ -72,7 +73,7 @@ public class ApplicationContextEventTests {

static @Client MongoClient mongoClient;

private ApplicationContext applicationContext;
private ConfigurableApplicationContext applicationContext;
private MongoTemplate template;
private SimpleMappingEventListener listener;

Expand All @@ -89,7 +90,9 @@ public void setUp() {

@AfterEach
public void cleanUp() {

cleanDb();
applicationContext.close();
}

private void cleanDb() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,13 @@

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() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
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;
Expand All @@ -32,7 +33,6 @@
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;
Expand All @@ -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() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,10 @@ public void setUp() throws Exception {
factory.afterPropertiesSet();

this.repository = factory.getObject();
}

void afterEach() {
mongo.close();
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@

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;
Expand All @@ -41,7 +41,6 @@
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;
Expand Down Expand Up @@ -136,6 +135,11 @@ public List<Document> bulkFetch(List<DBRef> dbRefs) {
repository = factory.getRepository(ReactivePersonRepository.class);
}

@AfterEach
void afterEach() {
mongo.close();
}

@Test // DATAMONGO-1444
public void writeWithWriteConcerns() {
executeWithWriteConcerns((constantName, concern) -> {
Expand Down
Loading