DATAMONGO-2461 - Polishing.
Extend Javadoc. Reformat code. Reduce log level to info. Refactor resource disposal to use Store.CloseableResource. Original pull request: #831.
This commit is contained in:
@@ -24,7 +24,6 @@ env:
|
||||
- MONGO_VERSION=4.2.0
|
||||
- MONGO_VERSION=4.0.14
|
||||
- MONGO_VERSION=3.6.16
|
||||
- MONGO_VERSION=3.4.23
|
||||
global:
|
||||
- PROFILE=ci
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
package org.springframework.data.mongodb;
|
||||
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
import reactor.core.publisher.Mono;
|
||||
@@ -27,6 +27,7 @@ import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
import org.springframework.transaction.reactive.TransactionSynchronizationManager;
|
||||
import org.springframework.transaction.reactive.TransactionalOperator;
|
||||
import org.springframework.transaction.support.DefaultTransactionDefinition;
|
||||
|
||||
@@ -18,7 +18,6 @@ package org.springframework.data.mongodb;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.data.mongodb.test.util.EnableIfReplicaSetAvailable;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
import reactor.test.StepVerifier;
|
||||
@@ -32,6 +31,7 @@ import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.condition.DisabledIfSystemProperty;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
|
||||
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
@@ -42,8 +42,8 @@ import org.springframework.data.mongodb.core.mapping.Document;
|
||||
import org.springframework.data.mongodb.core.query.Query;
|
||||
import org.springframework.data.mongodb.test.util.Client;
|
||||
import org.springframework.data.mongodb.test.util.EnableIfMongoServerVersion;
|
||||
import org.springframework.data.mongodb.test.util.EnableIfReplicaSetAvailable;
|
||||
import org.springframework.data.mongodb.test.util.MongoClientExtension;
|
||||
import org.springframework.data.mongodb.test.util.MongoServerCondition;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.transaction.reactive.TransactionalOperator;
|
||||
@@ -57,7 +57,7 @@ import com.mongodb.reactivestreams.client.MongoClient;
|
||||
* @author Mark Paluch
|
||||
* @author Christoph Strobl
|
||||
*/
|
||||
@ExtendWith({ MongoServerCondition.class, MongoClientExtension.class })
|
||||
@ExtendWith(MongoClientExtension.class)
|
||||
@EnableIfMongoServerVersion(isGreaterThanEqual = "4.0")
|
||||
@EnableIfReplicaSetAvailable
|
||||
@DisabledIfSystemProperty(named = "user.name", matches = "jenkins")
|
||||
|
||||
@@ -33,7 +33,6 @@ import org.springframework.test.context.junit4.SpringRunner;
|
||||
|
||||
import com.mongodb.MongoException;
|
||||
import com.mongodb.client.MongoClient;
|
||||
import com.mongodb.client.MongoClients;
|
||||
import com.mongodb.client.MongoCollection;
|
||||
|
||||
/**
|
||||
|
||||
@@ -20,18 +20,17 @@ import static org.assertj.core.api.AssertionsForInterfaceTypes.*;
|
||||
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.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;
|
||||
|
||||
import com.mongodb.reactivestreams.client.MongoClient;
|
||||
import com.mongodb.reactivestreams.client.MongoClients;
|
||||
|
||||
/**
|
||||
* Integration tests for {@link AbstractReactiveMongoConfiguration}.
|
||||
|
||||
@@ -51,8 +51,7 @@ public class MongoClientNamespaceTests {
|
||||
public void clientWithJustHostAndPort() {
|
||||
|
||||
assertThat(ctx.containsBean("client-with-just-host-port")).isTrue();
|
||||
MongoClientFactoryBean factoryBean = ctx.getBean("&client-with-just-host-port",
|
||||
MongoClientFactoryBean.class);
|
||||
MongoClientFactoryBean factoryBean = ctx.getBean("&client-with-just-host-port", MongoClientFactoryBean.class);
|
||||
|
||||
assertThat(getField(factoryBean, "host")).isEqualTo("127.0.0.1");
|
||||
assertThat(getField(factoryBean, "port")).isEqualTo(27017);
|
||||
@@ -66,8 +65,7 @@ public class MongoClientNamespaceTests {
|
||||
public void clientWithConnectionString() {
|
||||
|
||||
assertThat(ctx.containsBean("client-with-connection-string")).isTrue();
|
||||
MongoClientFactoryBean factoryBean = ctx.getBean("&client-with-connection-string",
|
||||
MongoClientFactoryBean.class);
|
||||
MongoClientFactoryBean factoryBean = ctx.getBean("&client-with-connection-string", MongoClientFactoryBean.class);
|
||||
|
||||
assertThat(getField(factoryBean, "host")).isNull();
|
||||
assertThat(getField(factoryBean, "port")).isNull();
|
||||
@@ -82,8 +80,7 @@ public class MongoClientNamespaceTests {
|
||||
public void clientWithReplicaSet() {
|
||||
|
||||
assertThat(ctx.containsBean("client-with-replica-set")).isTrue();
|
||||
MongoClientFactoryBean factoryBean = ctx.getBean("&client-with-replica-set",
|
||||
MongoClientFactoryBean.class);
|
||||
MongoClientFactoryBean factoryBean = ctx.getBean("&client-with-replica-set", MongoClientFactoryBean.class);
|
||||
|
||||
assertThat(getField(factoryBean, "host")).isNull();
|
||||
assertThat(getField(factoryBean, "port")).isNull();
|
||||
@@ -112,8 +109,7 @@ public class MongoClientNamespaceTests {
|
||||
public void clientWithClusterSettings() {
|
||||
|
||||
assertThat(ctx.containsBean("client-with-cluster-settings")).isTrue();
|
||||
MongoClientFactoryBean factoryBean = ctx.getBean("&client-with-cluster-settings",
|
||||
MongoClientFactoryBean.class);
|
||||
MongoClientFactoryBean factoryBean = ctx.getBean("&client-with-cluster-settings", MongoClientFactoryBean.class);
|
||||
|
||||
MongoClientSettings settings = (MongoClientSettings) getField(factoryBean, "mongoClientSettings");
|
||||
|
||||
@@ -146,8 +142,7 @@ public class MongoClientNamespaceTests {
|
||||
public void clientWithUUidSettings() {
|
||||
|
||||
assertThat(ctx.containsBean("client-with-uuid-settings")).isTrue();
|
||||
MongoClientFactoryBean factoryBean = ctx.getBean("&client-with-uuid-settings",
|
||||
MongoClientFactoryBean.class);
|
||||
MongoClientFactoryBean factoryBean = ctx.getBean("&client-with-uuid-settings", MongoClientFactoryBean.class);
|
||||
|
||||
MongoClientSettings settings = (MongoClientSettings) getField(factoryBean, "mongoClientSettings");
|
||||
assertThat(settings.getUuidRepresentation()).isEqualTo(UuidRepresentation.STANDARD);
|
||||
|
||||
@@ -17,9 +17,9 @@ package org.springframework.data.mongodb.config;
|
||||
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
|
||||
import com.mongodb.client.MongoClient;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import org.springframework.beans.factory.config.BeanDefinition;
|
||||
import org.springframework.beans.factory.config.ConstructorArgumentValues;
|
||||
import org.springframework.beans.factory.config.ConstructorArgumentValues.ValueHolder;
|
||||
@@ -36,6 +36,7 @@ import org.springframework.test.util.ReflectionTestUtils;
|
||||
|
||||
import com.mongodb.ConnectionString;
|
||||
import com.mongodb.WriteConcern;
|
||||
import com.mongodb.client.MongoClient;
|
||||
import com.mongodb.client.MongoDatabase;
|
||||
|
||||
/**
|
||||
@@ -59,9 +60,8 @@ public class MongoDbFactoryParserIntegrationTests {
|
||||
@Test // DATAMONGO-2199
|
||||
public void testWriteConcern() throws Exception {
|
||||
|
||||
try(MongoClient client = MongoTestUtils.client()) {
|
||||
SimpleMongoClientDatabaseFactory dbFactory = new SimpleMongoClientDatabaseFactory(client,
|
||||
"database");
|
||||
try (MongoClient client = MongoTestUtils.client()) {
|
||||
SimpleMongoClientDatabaseFactory dbFactory = new SimpleMongoClientDatabaseFactory(client, "database");
|
||||
dbFactory.setWriteConcern(WriteConcern.ACKNOWLEDGED);
|
||||
dbFactory.getMongoDatabase();
|
||||
|
||||
|
||||
@@ -22,11 +22,11 @@ import java.net.InetAddress;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.mongodb.MongoClientSettings;
|
||||
import org.bson.Document;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.data.mongodb.core.MongoClientFactoryBean;
|
||||
@@ -35,6 +35,7 @@ import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
import org.springframework.test.util.ReflectionTestUtils;
|
||||
|
||||
import com.mongodb.MongoClientSettings;
|
||||
import com.mongodb.ServerAddress;
|
||||
import com.mongodb.client.MongoClient;
|
||||
|
||||
|
||||
@@ -19,7 +19,6 @@ import static org.assertj.core.api.Assertions.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.mongodb.client.MongoClient;
|
||||
import org.junit.Before;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
@@ -33,6 +32,7 @@ import org.springframework.context.support.AbstractApplicationContext;
|
||||
import org.springframework.context.support.GenericApplicationContext;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
|
||||
import com.mongodb.client.MongoClient;
|
||||
|
||||
/**
|
||||
* Integration tests for {@link MongoClientParser}.
|
||||
|
||||
@@ -29,6 +29,7 @@ import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.mongodb.core.convert.MappingMongoConverter;
|
||||
import org.springframework.data.mongodb.core.query.Query;
|
||||
import org.springframework.data.mongodb.test.util.EnableIfMongoServerVersion;
|
||||
import org.springframework.data.mongodb.test.util.EnableIfReplicaSetAvailable;
|
||||
import org.springframework.data.mongodb.test.util.MongoClientExtension;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
@@ -45,6 +46,7 @@ import com.mongodb.client.MongoClient;
|
||||
*/
|
||||
@ExtendWith({ MongoClientExtension.class })
|
||||
@EnableIfReplicaSetAvailable
|
||||
@EnableIfMongoServerVersion(isGreaterThanEqual = "4.0")
|
||||
public class ClientSessionTests {
|
||||
|
||||
private static final String DB_NAME = "client-session-tests";
|
||||
|
||||
@@ -28,6 +28,7 @@ import org.bson.Document;
|
||||
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.data.domain.Sort.Direction;
|
||||
@@ -45,7 +46,6 @@ import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
|
||||
import com.mongodb.reactivestreams.client.MongoClient;
|
||||
import com.mongodb.reactivestreams.client.MongoClients;
|
||||
import com.mongodb.reactivestreams.client.MongoCollection;
|
||||
|
||||
/**
|
||||
@@ -146,7 +146,8 @@ public class DefaultReactiveIndexOperationsTests {
|
||||
|
||||
indexOps.getIndexInfo().filter(this.indexByName("partial-with-criteria")).as(StepVerifier::create) //
|
||||
.consumeNextWith(indexInfo -> {
|
||||
assertThat(Document.parse(indexInfo.getPartialFilterExpression())).isEqualTo(Document.parse("{ \"q-t-y\" : { \"$gte\" : 10 } }"));
|
||||
assertThat(Document.parse(indexInfo.getPartialFilterExpression()))
|
||||
.isEqualTo(Document.parse("{ \"q-t-y\" : { \"$gte\" : 10 } }"));
|
||||
}) //
|
||||
.verifyComplete();
|
||||
}
|
||||
@@ -163,7 +164,8 @@ public class DefaultReactiveIndexOperationsTests {
|
||||
|
||||
indexOps.getIndexInfo().filter(this.indexByName("partial-with-mapped-criteria")).as(StepVerifier::create) //
|
||||
.consumeNextWith(indexInfo -> {
|
||||
assertThat(Document.parse(indexInfo.getPartialFilterExpression())).isEqualTo(Document.parse("{ \"qty\" : { \"$gte\" : 10 } }"));
|
||||
assertThat(Document.parse(indexInfo.getPartialFilterExpression()))
|
||||
.isEqualTo(Document.parse("{ \"qty\" : { \"$gte\" : 10 } }"));
|
||||
}).verifyComplete();
|
||||
}
|
||||
|
||||
@@ -179,7 +181,8 @@ public class DefaultReactiveIndexOperationsTests {
|
||||
|
||||
indexOps.getIndexInfo().filter(this.indexByName("partial-with-dbo")).as(StepVerifier::create) //
|
||||
.consumeNextWith(indexInfo -> {
|
||||
assertThat(Document.parse(indexInfo.getPartialFilterExpression())).isEqualTo(Document.parse("{ \"qty\" : { \"$gte\" : 10 } }"));
|
||||
assertThat(Document.parse(indexInfo.getPartialFilterExpression()))
|
||||
.isEqualTo(Document.parse("{ \"qty\" : { \"$gte\" : 10 } }"));
|
||||
}) //
|
||||
.verifyComplete();
|
||||
|
||||
@@ -201,7 +204,8 @@ public class DefaultReactiveIndexOperationsTests {
|
||||
|
||||
indexOps.getIndexInfo().filter(this.indexByName("partial-with-inheritance")).as(StepVerifier::create) //
|
||||
.consumeNextWith(indexInfo -> {
|
||||
assertThat(Document.parse(indexInfo.getPartialFilterExpression())).isEqualTo(Document.parse("{ \"a_g_e\" : { \"$gte\" : 10 } }"));
|
||||
assertThat(Document.parse(indexInfo.getPartialFilterExpression()))
|
||||
.isEqualTo(Document.parse("{ \"a_g_e\" : { \"$gte\" : 10 } }"));
|
||||
}) //
|
||||
.verifyComplete();
|
||||
}
|
||||
|
||||
@@ -23,6 +23,7 @@ import org.bson.Document;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
@@ -34,9 +35,9 @@ import org.springframework.data.mongodb.test.util.Client;
|
||||
import org.springframework.data.mongodb.test.util.EnableIfMongoServerVersion;
|
||||
import org.springframework.data.mongodb.test.util.MongoClientExtension;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
|
||||
import com.mongodb.client.MongoClient;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
|
||||
/**
|
||||
* Integration tests for {@link DefaultScriptOperations}.
|
||||
@@ -45,7 +46,7 @@ import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
* @author Oliver Gierke
|
||||
* @since 1.7
|
||||
*/
|
||||
@ExtendWith({MongoClientExtension.class, SpringExtension.class})
|
||||
@ExtendWith({ MongoClientExtension.class, SpringExtension.class })
|
||||
@EnableIfMongoServerVersion(isLessThan = "4.1.0")
|
||||
@ContextConfiguration
|
||||
public class DefaultScriptOperationsTests {
|
||||
|
||||
@@ -20,7 +20,6 @@ import static org.springframework.data.mongodb.core.query.Criteria.*;
|
||||
import static org.springframework.data.mongodb.core.query.Query.*;
|
||||
import static org.springframework.data.mongodb.core.query.Update.*;
|
||||
|
||||
import com.mongodb.MongoClientSettings;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
@@ -46,6 +45,7 @@ import org.junit.Before;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.ConfigurableApplicationContext;
|
||||
import org.springframework.core.convert.converter.Converter;
|
||||
|
||||
@@ -39,6 +39,7 @@ import org.springframework.data.mongodb.MongoDatabaseFactory;
|
||||
import org.springframework.data.mongodb.MongoTransactionManager;
|
||||
import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration;
|
||||
import org.springframework.data.mongodb.test.util.AfterTransactionAssertion;
|
||||
import org.springframework.data.mongodb.test.util.EnableIfMongoServerVersion;
|
||||
import org.springframework.data.mongodb.test.util.EnableIfReplicaSetAvailable;
|
||||
import org.springframework.data.mongodb.test.util.MongoClientExtension;
|
||||
import org.springframework.data.mongodb.test.util.ReplSetClient;
|
||||
@@ -60,6 +61,7 @@ import com.mongodb.client.model.Filters;
|
||||
*/
|
||||
@ExtendWith({ MongoClientExtension.class, SpringExtension.class })
|
||||
@EnableIfReplicaSetAvailable
|
||||
@EnableIfMongoServerVersion(isGreaterThanEqual = "4.0")
|
||||
@ContextConfiguration
|
||||
@Transactional(transactionManager = "txManager")
|
||||
public class MongoTemplateTransactionTests {
|
||||
|
||||
@@ -19,7 +19,6 @@ import static org.mockito.Mockito.*;
|
||||
import static org.springframework.data.mongodb.core.aggregation.Aggregation.*;
|
||||
import static org.springframework.data.mongodb.test.util.Assertions.*;
|
||||
|
||||
import com.mongodb.MongoClientSettings;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigInteger;
|
||||
@@ -47,6 +46,7 @@ import org.mockito.Mock;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.junit.jupiter.MockitoSettings;
|
||||
import org.mockito.quality.Strictness;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.ApplicationListener;
|
||||
@@ -97,6 +97,7 @@ import org.springframework.lang.Nullable;
|
||||
import org.springframework.test.util.ReflectionTestUtils;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import com.mongodb.MongoClientSettings;
|
||||
import com.mongodb.MongoException;
|
||||
import com.mongodb.MongoNamespace;
|
||||
import com.mongodb.ReadPreference;
|
||||
@@ -164,7 +165,8 @@ public class MongoTemplateUnitTests extends MongoOperationsUnitTests {
|
||||
when(db.runCommand(any(), any(Class.class))).thenReturn(commandResultDocument);
|
||||
when(collection.find(any(org.bson.Document.class), any(Class.class))).thenReturn(findIterable);
|
||||
when(collection.mapReduce(any(), any(), eq(Document.class))).thenReturn(mapReduceIterable);
|
||||
when(collection.countDocuments(any(Bson.class), any(CountOptions.class))).thenReturn(1L); // TODO: MongoDB 4 - fix me
|
||||
when(collection.countDocuments(any(Bson.class), any(CountOptions.class))).thenReturn(1L); // TODO: MongoDB 4 - fix
|
||||
// me
|
||||
when(collection.getNamespace()).thenReturn(new MongoNamespace("db.mock-collection"));
|
||||
when(collection.aggregate(any(List.class), any())).thenReturn(aggregateIterable);
|
||||
when(collection.withReadPreference(any())).thenReturn(collection);
|
||||
|
||||
@@ -27,6 +27,7 @@ import java.util.List;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
|
||||
import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.annotation.Version;
|
||||
import org.springframework.data.mongodb.core.aggregation.AggregationUpdate;
|
||||
@@ -41,7 +42,6 @@ import org.springframework.data.mongodb.core.query.Update;
|
||||
import org.springframework.data.mongodb.test.util.Client;
|
||||
import org.springframework.data.mongodb.test.util.EnableIfMongoServerVersion;
|
||||
import org.springframework.data.mongodb.test.util.MongoClientExtension;
|
||||
import org.springframework.data.mongodb.test.util.MongoServerCondition;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
|
||||
import com.mongodb.client.MongoClient;
|
||||
@@ -50,7 +50,7 @@ import com.mongodb.client.MongoCollection;
|
||||
/**
|
||||
* @author Christoph Strobl
|
||||
*/
|
||||
@ExtendWith({ MongoClientExtension.class, MongoServerCondition.class })
|
||||
@ExtendWith({ MongoClientExtension.class })
|
||||
class MongoTemplateUpdateTests {
|
||||
|
||||
static final String DB_NAME = "update-test";
|
||||
|
||||
@@ -34,7 +34,8 @@ public class PersonExample {
|
||||
@Autowired private MongoOperations mongoOps;
|
||||
|
||||
public static void main(String[] args) {
|
||||
AbstractApplicationContext applicationContext = new AnnotationConfigApplicationContext(PersonExampleAppConfig.class);
|
||||
AbstractApplicationContext applicationContext = new AnnotationConfigApplicationContext(
|
||||
PersonExampleAppConfig.class);
|
||||
PersonExample example = applicationContext.getBean(PersonExample.class);
|
||||
example.doWork();
|
||||
applicationContext.close();
|
||||
|
||||
@@ -23,8 +23,7 @@ public class PersonWithVersionPropertyOfTypeInteger {
|
||||
String firstName;
|
||||
int age;
|
||||
|
||||
@Version
|
||||
Integer version;
|
||||
@Version Integer version;
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
|
||||
@@ -27,7 +27,7 @@ public class PersonWithVersionPropertyOfTypeLong {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "PersonWithVersionPropertyOfTypeLong [id=" + id + ", firstName=" + firstName + ", age=" + age
|
||||
+ ", version=" + version + "]";
|
||||
return "PersonWithVersionPropertyOfTypeLong [id=" + id + ", firstName=" + firstName + ", age=" + age + ", version="
|
||||
+ version + "]";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,19 +21,20 @@ import static org.springframework.data.mongodb.core.query.Query.*;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import com.mongodb.MongoClientSettings;
|
||||
import org.bson.Document;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
import org.springframework.data.mongodb.MongoDatabaseFactory;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate.QueryCursorPreparer;
|
||||
import org.springframework.data.mongodb.core.query.BasicQuery;
|
||||
import org.springframework.data.mongodb.core.query.Collation;
|
||||
import org.springframework.data.mongodb.core.query.Query;
|
||||
|
||||
import com.mongodb.MongoClientSettings;
|
||||
import com.mongodb.client.FindIterable;
|
||||
|
||||
/**
|
||||
@@ -91,16 +92,16 @@ public class QueryCursorPreparerUnitTests {
|
||||
}
|
||||
|
||||
// TODO
|
||||
// @Test // DATAMONGO-957
|
||||
// public void doesNotApplyMetaWhenEmpty() {
|
||||
//
|
||||
// Query query = query(where("foo").is("bar"));
|
||||
// query.setMeta(new Meta());
|
||||
//
|
||||
// prepare(query);
|
||||
//
|
||||
// verify(cursor, never()).modifiers(any(Document.class));
|
||||
// }
|
||||
// @Test // DATAMONGO-957
|
||||
// public void doesNotApplyMetaWhenEmpty() {
|
||||
//
|
||||
// Query query = query(where("foo").is("bar"));
|
||||
// query.setMeta(new Meta());
|
||||
//
|
||||
// prepare(query);
|
||||
//
|
||||
// verify(cursor, never()).modifiers(any(Document.class));
|
||||
// }
|
||||
|
||||
// @Test // DATAMONGO-957
|
||||
// public void appliesMaxScanCorrectly() {
|
||||
@@ -130,14 +131,14 @@ public class QueryCursorPreparerUnitTests {
|
||||
}
|
||||
|
||||
// TODO
|
||||
// @Test // DATAMONGO-957
|
||||
// public void appliesSnapshotCorrectly() {
|
||||
//
|
||||
// Query query = query(where("foo").is("bar")).useSnapshot();
|
||||
// prepare(query);
|
||||
//
|
||||
// verify(cursor).snapshot(true);
|
||||
// }
|
||||
// @Test // DATAMONGO-957
|
||||
// public void appliesSnapshotCorrectly() {
|
||||
//
|
||||
// Query query = query(where("foo").is("bar")).useSnapshot();
|
||||
// prepare(query);
|
||||
//
|
||||
// verify(cursor).snapshot(true);
|
||||
// }
|
||||
|
||||
@Test // DATAMONGO-1480
|
||||
public void appliesNoCursorTimeoutCorrectly() {
|
||||
|
||||
@@ -19,7 +19,6 @@ import static org.assertj.core.api.Assertions.*;
|
||||
import static org.springframework.data.mongodb.core.query.Criteria.*;
|
||||
|
||||
import lombok.SneakyThrows;
|
||||
import org.springframework.data.mongodb.test.util.ReplSetClient;
|
||||
import reactor.core.Disposable;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.test.StepVerifier;
|
||||
@@ -34,10 +33,12 @@ import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.springframework.data.mongodb.test.util.Client;
|
||||
|
||||
import org.springframework.data.mongodb.test.util.EnableIfMongoServerVersion;
|
||||
import org.springframework.data.mongodb.test.util.EnableIfReplicaSetAvailable;
|
||||
import org.springframework.data.mongodb.test.util.MongoClientExtension;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
import org.springframework.data.mongodb.test.util.ReplSetClient;
|
||||
|
||||
import com.mongodb.reactivestreams.client.MongoClient;
|
||||
|
||||
@@ -104,6 +105,7 @@ public class ReactiveChangeStreamOperationSupportTests {
|
||||
}
|
||||
|
||||
@Test // DATAMONGO-1803
|
||||
@EnableIfMongoServerVersion(isGreaterThanEqual = "4.0")
|
||||
public void changeStreamEventsShouldBeConvertedCorrectly() throws InterruptedException {
|
||||
|
||||
BlockingQueue<ChangeStreamEvent<Person>> documents = new LinkedBlockingQueue<>(100);
|
||||
|
||||
@@ -31,6 +31,7 @@ import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.springframework.data.mongodb.core.query.Query;
|
||||
import org.springframework.data.mongodb.test.util.Client;
|
||||
import org.springframework.data.mongodb.test.util.EnableIfMongoServerVersion;
|
||||
import org.springframework.data.mongodb.test.util.EnableIfReplicaSetAvailable;
|
||||
import org.springframework.data.mongodb.test.util.MongoClientExtension;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
@@ -135,6 +136,7 @@ public class ReactiveClientSessionTests {
|
||||
}
|
||||
|
||||
@Test // DATAMONGO-2001
|
||||
@EnableIfMongoServerVersion(isGreaterThanEqual = "4.0")
|
||||
public void countInTransactionShouldReturnCount() {
|
||||
|
||||
ClientSession session = Mono
|
||||
|
||||
@@ -24,7 +24,6 @@ import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.Wither;
|
||||
import org.junit.Rule;
|
||||
import reactor.core.Disposable;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
@@ -52,6 +51,7 @@ import org.bson.types.ObjectId;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
|
||||
@@ -33,6 +33,7 @@ import org.reactivestreams.Publisher;
|
||||
import org.springframework.data.domain.Sort;
|
||||
import org.springframework.data.mongodb.core.query.Query;
|
||||
import org.springframework.data.mongodb.test.util.Client;
|
||||
import org.springframework.data.mongodb.test.util.EnableIfMongoServerVersion;
|
||||
import org.springframework.data.mongodb.test.util.EnableIfReplicaSetAvailable;
|
||||
import org.springframework.data.mongodb.test.util.MongoClientExtension;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
@@ -50,6 +51,7 @@ import com.mongodb.reactivestreams.client.MongoClient;
|
||||
*/
|
||||
@ExtendWith(MongoClientExtension.class)
|
||||
@EnableIfReplicaSetAvailable
|
||||
@EnableIfMongoServerVersion(isGreaterThanEqual = "4.0")
|
||||
public class ReactiveMongoTemplateTransactionTests {
|
||||
|
||||
static final String DATABASE_NAME = "reactive-template-tx-tests";
|
||||
|
||||
@@ -19,7 +19,6 @@ import static org.assertj.core.api.Assertions.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
import static org.springframework.data.mongodb.core.aggregation.Aggregation.*;
|
||||
|
||||
import com.mongodb.MongoClientSettings;
|
||||
import lombok.Data;
|
||||
import reactor.core.publisher.Mono;
|
||||
import reactor.test.StepVerifier;
|
||||
@@ -46,6 +45,7 @@ import org.mockito.junit.jupiter.MockitoExtension;
|
||||
import org.mockito.junit.jupiter.MockitoSettings;
|
||||
import org.mockito.quality.Strictness;
|
||||
import org.reactivestreams.Publisher;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.support.StaticApplicationContext;
|
||||
@@ -77,6 +77,7 @@ import org.springframework.lang.Nullable;
|
||||
import org.springframework.test.util.ReflectionTestUtils;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import com.mongodb.MongoClientSettings;
|
||||
import com.mongodb.ReadPreference;
|
||||
import com.mongodb.client.model.CountOptions;
|
||||
import com.mongodb.client.model.CreateCollectionOptions;
|
||||
|
||||
@@ -111,7 +111,8 @@ public class ReactiveSessionBoundMongoTemplateUnitTests {
|
||||
when(collection.deleteMany(any(ClientSession.class), any(), any())).thenReturn(resultPublisher);
|
||||
when(collection.insertOne(any(ClientSession.class), any(Document.class))).thenReturn(resultPublisher);
|
||||
when(collection.aggregate(any(ClientSession.class), anyList(), any(Class.class))).thenReturn(aggregatePublisher);
|
||||
when(collection.countDocuments(any(ClientSession.class), any(), any(CountOptions.class))).thenReturn(resultPublisher);
|
||||
when(collection.countDocuments(any(ClientSession.class), any(), any(CountOptions.class)))
|
||||
.thenReturn(resultPublisher);
|
||||
when(collection.drop(any(ClientSession.class))).thenReturn(resultPublisher);
|
||||
when(collection.findOneAndUpdate(any(ClientSession.class), any(), any(Bson.class), any()))
|
||||
.thenReturn(resultPublisher);
|
||||
|
||||
@@ -66,13 +66,12 @@ public class FacetOperationUnitTests {
|
||||
@Test(expected = IllegalArgumentException.class) // DATAMONGO-1552
|
||||
public void shouldRejectNonExistingFields() {
|
||||
|
||||
FacetOperation facetOperation = new FacetOperation()
|
||||
.and(project("price"), //
|
||||
bucket("price") //
|
||||
.withBoundaries(0, 150, 200, 300, 400) //
|
||||
.withDefaultBucket("Other") //
|
||||
.andOutputCount().as("count") //
|
||||
.andOutput("title").push().as("titles")) //
|
||||
FacetOperation facetOperation = new FacetOperation().and(project("price"), //
|
||||
bucket("price") //
|
||||
.withBoundaries(0, 150, 200, 300, 400) //
|
||||
.withDefaultBucket("Other") //
|
||||
.andOutputCount().as("count") //
|
||||
.andOutput("title").push().as("titles")) //
|
||||
.as("categorizedByPrice");
|
||||
|
||||
Document agg = facetOperation.toDocument(Aggregation.DEFAULT_CONTEXT);
|
||||
@@ -87,18 +86,16 @@ public class FacetOperationUnitTests {
|
||||
@Test // DATAMONGO-1552
|
||||
public void shouldHonorProjectedFields() {
|
||||
|
||||
FacetOperation facetOperation = new FacetOperation()
|
||||
.and(project("price").and("title").as("name"), //
|
||||
bucketAuto("price", 5) //
|
||||
.andOutput("name").push().as("titles")) //
|
||||
FacetOperation facetOperation = new FacetOperation().and(project("price").and("title").as("name"), //
|
||||
bucketAuto("price", 5) //
|
||||
.andOutput("name").push().as("titles")) //
|
||||
.as("categorizedByPrice");
|
||||
|
||||
Document agg = facetOperation.toDocument(Aggregation.DEFAULT_CONTEXT);
|
||||
|
||||
assertThat(agg).isEqualTo(Document.parse("{ $facet: { categorizedByPrice: ["
|
||||
+ "{ $project: { price: 1, name: \"$title\" } }, "
|
||||
+ "{ $bucketAuto: { buckets: 5, groupBy: \"$price\", "
|
||||
+ "output: { titles: { $push: \"$name\" } } } } ] } }"));
|
||||
+ "{ $project: { price: 1, name: \"$title\" } }, " + "{ $bucketAuto: { buckets: 5, groupBy: \"$price\", "
|
||||
+ "output: { titles: { $push: \"$name\" } } } } ] } }"));
|
||||
}
|
||||
|
||||
@Test // DATAMONGO-1553
|
||||
|
||||
@@ -108,8 +108,9 @@ public class GeoNearOperationUnitTests {
|
||||
|
||||
NearQuery query = NearQuery.near(10.0, 20.0);
|
||||
|
||||
assertThat(new GeoNearOperation(query, "distance").useIndex("index-1").toPipelineStages(Aggregation.DEFAULT_CONTEXT))
|
||||
.containsExactly($geoNear().near(10.0, 20.0).key("index-1").doc());
|
||||
assertThat(
|
||||
new GeoNearOperation(query, "distance").useIndex("index-1").toPipelineStages(Aggregation.DEFAULT_CONTEXT))
|
||||
.containsExactly($geoNear().near(10.0, 20.0).key("index-1").doc());
|
||||
}
|
||||
|
||||
@Test // DATAMONGO-2264
|
||||
|
||||
@@ -67,10 +67,9 @@ public class ObjectOperatorsUnitTests {
|
||||
@Test // DATAMONGO-2053
|
||||
public void mergeMixed() {
|
||||
|
||||
assertThat(
|
||||
ObjectOperators.valueOf("kettricken").mergeWithValuesOf(EXPRESSION).mergeWithValuesOf("verity")
|
||||
.toDocument(Aggregation.DEFAULT_CONTEXT)).isEqualTo(
|
||||
Document.parse("{ $mergeObjects: [ \"$kettricken\", " + EXPRESSION_STRING + ", \"$verity\" ] } "));
|
||||
assertThat(ObjectOperators.valueOf("kettricken").mergeWithValuesOf(EXPRESSION).mergeWithValuesOf("verity")
|
||||
.toDocument(Aggregation.DEFAULT_CONTEXT)).isEqualTo(
|
||||
Document.parse("{ $mergeObjects: [ \"$kettricken\", " + EXPRESSION_STRING + ", \"$verity\" ] } "));
|
||||
}
|
||||
|
||||
@Test // DATAMONGO-2053
|
||||
|
||||
@@ -86,12 +86,10 @@ public class ReactiveAggregationUnitTests {
|
||||
|
||||
@Test // DATAMONGO-1646
|
||||
public void errorsOnExplainUsage() {
|
||||
assertThatIllegalArgumentException().isThrownBy(() -> template
|
||||
.aggregate(newAggregation(Product.class, //
|
||||
project("name", "netPrice")) //
|
||||
.withOptions(AggregationOptions.builder().explain(true).build()),
|
||||
INPUT_COLLECTION, TagCount.class)
|
||||
.subscribe());
|
||||
assertThatIllegalArgumentException().isThrownBy(() -> template.aggregate(newAggregation(Product.class, //
|
||||
project("name", "netPrice")) //
|
||||
.withOptions(AggregationOptions.builder().explain(true).build()),
|
||||
INPUT_COLLECTION, TagCount.class).subscribe());
|
||||
}
|
||||
|
||||
@Test // DATAMONGO-1646, DATAMONGO-1311
|
||||
@@ -111,10 +109,9 @@ public class ReactiveAggregationUnitTests {
|
||||
@Test // DATAMONGO-1646
|
||||
public void appliesCollationCorrectlyWhenPresent() {
|
||||
|
||||
template.aggregate(
|
||||
newAggregation(Product.class, //
|
||||
project("name", "netPrice")) //
|
||||
.withOptions(AggregationOptions.builder().collation(Collation.of("en_US")).build()),
|
||||
template.aggregate(newAggregation(Product.class, //
|
||||
project("name", "netPrice")) //
|
||||
.withOptions(AggregationOptions.builder().collation(Collation.of("en_US")).build()),
|
||||
INPUT_COLLECTION, TagCount.class).subscribe();
|
||||
|
||||
verify(publisher).collation(eq(com.mongodb.client.model.Collation.builder().locale("en_US").build()));
|
||||
@@ -134,13 +131,10 @@ public class ReactiveAggregationUnitTests {
|
||||
@Test // DATAMONGO-1646
|
||||
public void appliesDiskUsageCorrectly() {
|
||||
|
||||
template
|
||||
.aggregate(
|
||||
newAggregation(Product.class, //
|
||||
project("name", "netPrice")) //
|
||||
.withOptions(AggregationOptions.builder().allowDiskUse(true).build()),
|
||||
INPUT_COLLECTION, TagCount.class)
|
||||
.subscribe();
|
||||
template.aggregate(newAggregation(Product.class, //
|
||||
project("name", "netPrice")) //
|
||||
.withOptions(AggregationOptions.builder().allowDiskUse(true).build()),
|
||||
INPUT_COLLECTION, TagCount.class).subscribe();
|
||||
|
||||
verify(publisher).allowDiskUse(eq(true));
|
||||
}
|
||||
|
||||
@@ -15,14 +15,14 @@
|
||||
*/
|
||||
package org.springframework.data.mongodb.core.aggregation;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @author Thomas Darimont
|
||||
* @author Christoph Strobl
|
||||
|
||||
@@ -16,8 +16,7 @@
|
||||
package org.springframework.data.mongodb.core.convert;
|
||||
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.anyString;
|
||||
import static org.mockito.ArgumentMatchers.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
import java.util.Arrays;
|
||||
@@ -32,6 +31,7 @@ import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
import org.springframework.dao.InvalidDataAccessApiUsageException;
|
||||
import org.springframework.data.mongodb.MongoDatabaseFactory;
|
||||
import org.springframework.data.mongodb.core.DocumentTestUtils;
|
||||
|
||||
@@ -20,7 +20,6 @@ import static org.assertj.core.api.Assertions.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
import static org.springframework.data.mongodb.core.DocumentTestUtils.*;
|
||||
|
||||
import com.mongodb.DBObject;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
@@ -42,6 +41,7 @@ import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
import org.springframework.aop.framework.ProxyFactory;
|
||||
import org.springframework.beans.ConversionNotSupportedException;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
@@ -80,6 +80,7 @@ import org.springframework.test.util.ReflectionTestUtils;
|
||||
|
||||
import com.mongodb.BasicDBList;
|
||||
import com.mongodb.BasicDBObject;
|
||||
import com.mongodb.DBObject;
|
||||
import com.mongodb.DBRef;
|
||||
|
||||
/**
|
||||
|
||||
@@ -28,8 +28,6 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
import com.mongodb.MongoClientSettings;
|
||||
import com.mongodb.client.model.Filters;
|
||||
import org.bson.conversions.Bson;
|
||||
import org.bson.types.Code;
|
||||
import org.bson.types.ObjectId;
|
||||
@@ -38,6 +36,7 @@ import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
|
||||
import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.domain.Sort;
|
||||
import org.springframework.data.domain.Sort.Direction;
|
||||
@@ -60,6 +59,8 @@ import org.springframework.data.mongodb.core.query.Criteria;
|
||||
import org.springframework.data.mongodb.core.query.Query;
|
||||
|
||||
import com.mongodb.BasicDBObject;
|
||||
import com.mongodb.MongoClientSettings;
|
||||
import com.mongodb.client.model.Filters;
|
||||
|
||||
/**
|
||||
* Unit tests for {@link QueryMapper}.
|
||||
@@ -180,7 +181,8 @@ public class QueryMapperUnitTests {
|
||||
@Test // DATAMONGO-373
|
||||
void handlesNativelyBuiltQueryCorrectly() {
|
||||
|
||||
Bson query = new BasicDBObject(Filters.or(new BasicDBObject("foo", "bar")).toBsonDocument(org.bson.Document.class, MongoClientSettings.getDefaultCodecRegistry()));
|
||||
Bson query = new BasicDBObject(Filters.or(new BasicDBObject("foo", "bar")).toBsonDocument(org.bson.Document.class,
|
||||
MongoClientSettings.getDefaultCodecRegistry()));
|
||||
mapper.getMappedObject(query, Optional.empty());
|
||||
}
|
||||
|
||||
|
||||
@@ -52,8 +52,8 @@ public class GeoJsonModuleUnitTests {
|
||||
}
|
||||
|
||||
@Test // DATAMONGO-1181
|
||||
public void shouldDeserializeGeoJsonLineStringCorrectly() throws JsonParseException, JsonMappingException,
|
||||
IOException {
|
||||
public void shouldDeserializeGeoJsonLineStringCorrectly()
|
||||
throws JsonParseException, JsonMappingException, IOException {
|
||||
|
||||
String json = "{ \"type\": \"LineString\", \"coordinates\": [ [10.0, 20.0], [30.0, 40.0], [50.0, 60.0] ]}";
|
||||
|
||||
@@ -62,8 +62,8 @@ public class GeoJsonModuleUnitTests {
|
||||
}
|
||||
|
||||
@Test // DATAMONGO-1181
|
||||
public void shouldDeserializeGeoJsonMultiPointCorrectly() throws JsonParseException, JsonMappingException,
|
||||
IOException {
|
||||
public void shouldDeserializeGeoJsonMultiPointCorrectly()
|
||||
throws JsonParseException, JsonMappingException, IOException {
|
||||
|
||||
String json = "{ \"type\": \"MultiPoint\", \"coordinates\": [ [10.0, 20.0], [30.0, 40.0], [50.0, 60.0] ]}";
|
||||
|
||||
@@ -73,8 +73,8 @@ public class GeoJsonModuleUnitTests {
|
||||
|
||||
@Test // DATAMONGO-1181
|
||||
@SuppressWarnings("unchecked")
|
||||
public void shouldDeserializeGeoJsonMultiLineStringCorrectly() throws JsonParseException, JsonMappingException,
|
||||
IOException {
|
||||
public void shouldDeserializeGeoJsonMultiLineStringCorrectly()
|
||||
throws JsonParseException, JsonMappingException, IOException {
|
||||
|
||||
String json = "{ \"type\": \"MultiLineString\", \"coordinates\": [ [ [10.0, 20.0], [30.0, 40.0] ], [ [50.0, 60.0] , [70.0, 80.0] ] ]}";
|
||||
|
||||
@@ -92,8 +92,8 @@ public class GeoJsonModuleUnitTests {
|
||||
}
|
||||
|
||||
@Test // DATAMONGO-1181
|
||||
public void shouldDeserializeGeoJsonMultiPolygonCorrectly() throws JsonParseException, JsonMappingException,
|
||||
IOException {
|
||||
public void shouldDeserializeGeoJsonMultiPolygonCorrectly()
|
||||
throws JsonParseException, JsonMappingException, IOException {
|
||||
|
||||
String json = "{ \"type\": \"Polygon\", \"coordinates\": ["
|
||||
+ "[[[102.0, 2.0], [103.0, 2.0], [103.0, 3.0], [102.0, 3.0], [102.0, 2.0]]],"
|
||||
|
||||
@@ -25,13 +25,11 @@ import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import org.assertj.core.data.Percentage;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.dao.DataAccessException;
|
||||
@@ -52,10 +50,8 @@ import org.springframework.data.mongodb.core.query.Query;
|
||||
import org.springframework.data.mongodb.test.util.BasicDbListBuilder;
|
||||
import org.springframework.data.mongodb.test.util.Client;
|
||||
import org.springframework.data.mongodb.test.util.MongoClientExtension;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
|
||||
import com.mongodb.MongoException;
|
||||
import com.mongodb.WriteConcern;
|
||||
@@ -66,7 +62,7 @@ import com.mongodb.client.MongoCollection;
|
||||
* @author Christoph Strobl
|
||||
* @author Mark Paluch
|
||||
*/
|
||||
@ExtendWith({MongoClientExtension.class, SpringExtension.class})
|
||||
@ExtendWith({ MongoClientExtension.class, SpringExtension.class })
|
||||
@ContextConfiguration
|
||||
public class GeoJsonTests {
|
||||
|
||||
|
||||
@@ -22,7 +22,6 @@ import static org.springframework.data.mongodb.core.query.Query.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
|
||||
import org.springframework.data.domain.Sort.Direction;
|
||||
|
||||
@@ -20,7 +20,6 @@ import static org.assertj.core.api.Assertions.*;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import com.mongodb.client.MongoClient;
|
||||
import org.hamcrest.core.IsInstanceOf;
|
||||
import org.junit.ClassRule;
|
||||
import org.junit.Rule;
|
||||
@@ -28,6 +27,7 @@ import org.junit.Test;
|
||||
import org.junit.rules.ExpectedException;
|
||||
import org.junit.rules.RuleChain;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.dao.DataIntegrityViolationException;
|
||||
@@ -46,6 +46,7 @@ import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
|
||||
import com.mongodb.MongoCommandException;
|
||||
import com.mongodb.client.MongoClient;
|
||||
|
||||
/**
|
||||
* Integration tests for {@link MongoPersistentEntityIndexCreator}.
|
||||
@@ -99,7 +100,7 @@ public class MongoPersistentEntityIndexCreatorIntegrationTests {
|
||||
expectedException.expectMessage("lastname");
|
||||
expectedException.expectCause(IsInstanceOf.<Throwable> instanceOf(MongoCommandException.class));
|
||||
|
||||
try(MongoClient client = MongoTestUtils.client()) {
|
||||
try (MongoClient client = MongoTestUtils.client()) {
|
||||
MongoTemplate mongoTemplate = new MongoTemplate(client, "issue");
|
||||
|
||||
MongoPersistentEntityIndexCreator indexCreator = new MongoPersistentEntityIndexCreator(new MongoMappingContext(),
|
||||
|
||||
@@ -659,7 +659,8 @@ public class MongoPersistentEntityIndexResolverUnitTests {
|
||||
assertThat(indexDefinitions).hasSize(2);
|
||||
assertIndexPathAndCollection(new String[] { "firstname", "lastname" }, "repeatedCompoundIndex",
|
||||
indexDefinitions.get(0));
|
||||
assertIndexPathAndCollection(new String[] { "address.city", "address.street" }, "repeatedCompoundIndex", indexDefinitions.get(1));
|
||||
assertIndexPathAndCollection(new String[] { "address.city", "address.street" }, "repeatedCompoundIndex",
|
||||
indexDefinitions.get(1));
|
||||
}
|
||||
|
||||
@Document("CompoundIndexOnLevelOne")
|
||||
|
||||
@@ -6,9 +6,7 @@ import org.springframework.data.mongodb.core.mapping.Document;
|
||||
@Document
|
||||
public class SampleEntity {
|
||||
|
||||
@Id
|
||||
String id;
|
||||
@Id String id;
|
||||
|
||||
@Indexed
|
||||
String prop;
|
||||
@Indexed String prop;
|
||||
}
|
||||
|
||||
@@ -20,7 +20,6 @@ import static org.assertj.core.api.Assertions.*;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.ClassRule;
|
||||
import org.junit.Test;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -31,8 +30,6 @@ import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
import org.springframework.data.mongodb.core.mapping.Document;
|
||||
import org.springframework.data.mongodb.core.mapping.Language;
|
||||
import org.springframework.data.mongodb.core.query.Collation;
|
||||
import org.springframework.data.mongodb.test.util.MongoVersionRule;
|
||||
import org.springframework.data.util.Version;
|
||||
|
||||
import com.mongodb.WriteConcern;
|
||||
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
package org.springframework.data.mongodb.core.mapping;
|
||||
|
||||
import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.mongodb.core.mapping.Document;
|
||||
|
||||
/**
|
||||
* @author Jon Brisbin <jbrisbin@vmware.com>
|
||||
|
||||
@@ -20,8 +20,7 @@ package org.springframework.data.mongodb.core.mapping;
|
||||
*/
|
||||
public class Address implements Comparable<Address> {
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private String id;
|
||||
@SuppressWarnings("unused") private String id;
|
||||
private String[] lines;
|
||||
private String city;
|
||||
private String provinceOrState;
|
||||
|
||||
@@ -19,7 +19,8 @@ import com.querydsl.core.annotations.QuerySupertype;
|
||||
|
||||
/**
|
||||
* {@link QuerySupertype} is necessary for Querydsl 2.2.0-beta4 to compile the query classes directly. Can be removed as
|
||||
* soon as <a href="https://bugs.launchpad.net/querydsl/+bug/776219">https://bugs.launchpad.net/querydsl/+bug/776219</a> is fixed.
|
||||
* soon as <a href="https://bugs.launchpad.net/querydsl/+bug/776219">https://bugs.launchpad.net/querydsl/+bug/776219</a>
|
||||
* is fixed.
|
||||
*
|
||||
* @see <a href="https://bugs.launchpad.net/querydsl/+bug/776219">https://bugs.launchpad.net/querydsl/+bug/776219</a>
|
||||
* @author Jon Brisbin
|
||||
|
||||
@@ -24,10 +24,8 @@ import org.springframework.data.mongodb.core.index.Indexed;
|
||||
@Document("foobar")
|
||||
public class CustomCollectionWithIndex {
|
||||
|
||||
@Id
|
||||
private String id;
|
||||
@Indexed
|
||||
private String name;
|
||||
@Id private String id;
|
||||
@Indexed private String name;
|
||||
|
||||
public CustomCollectionWithIndex(String name) {
|
||||
this.name = name;
|
||||
|
||||
@@ -24,10 +24,8 @@ import org.springframework.data.mongodb.core.index.Indexed;
|
||||
@Document
|
||||
public class DetectedCollectionWithIndex {
|
||||
|
||||
@Id
|
||||
private String id;
|
||||
@Indexed
|
||||
private String name;
|
||||
@Id private String id;
|
||||
@Indexed private String name;
|
||||
|
||||
public DetectedCollectionWithIndex(String name) {
|
||||
this.name = name;
|
||||
|
||||
@@ -16,8 +16,8 @@
|
||||
package org.springframework.data.mongodb.core.mapping;
|
||||
|
||||
import org.bson.types.ObjectId;
|
||||
|
||||
import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.mongodb.core.mapping.Document;
|
||||
|
||||
/**
|
||||
* @author Jon Brisbin <jbrisbin@vmware.com>
|
||||
@@ -25,10 +25,8 @@ import org.springframework.data.mongodb.core.mapping.Document;
|
||||
@Document
|
||||
public class GeneratedId {
|
||||
|
||||
@Id
|
||||
private ObjectId id;
|
||||
@SuppressWarnings("unused")
|
||||
private String name;
|
||||
@Id private ObjectId id;
|
||||
@SuppressWarnings("unused") private String name;
|
||||
|
||||
public GeneratedId(String name) {
|
||||
this.name = name;
|
||||
|
||||
@@ -66,7 +66,7 @@ public class GeoIndexedTests {
|
||||
|
||||
private void cleanDb() {
|
||||
|
||||
try(MongoClient mongo = MongoTestUtils.client()) {
|
||||
try (MongoClient mongo = MongoTestUtils.client()) {
|
||||
|
||||
MongoDatabase db = mongo.getDatabase(GeoIndexedAppConfig.GEO_DB);
|
||||
|
||||
|
||||
@@ -16,9 +16,9 @@
|
||||
package org.springframework.data.mongodb.core.mapping;
|
||||
|
||||
import org.bson.types.ObjectId;
|
||||
|
||||
import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.mongodb.core.index.GeoSpatialIndexed;
|
||||
import org.springframework.data.mongodb.core.mapping.Document;
|
||||
|
||||
/**
|
||||
* @author Jon Brisbin <jbrisbin@vmware.com>
|
||||
@@ -26,10 +26,8 @@ import org.springframework.data.mongodb.core.mapping.Document;
|
||||
@Document("geolocation")
|
||||
public class GeoLocation {
|
||||
|
||||
@Id
|
||||
private ObjectId id;
|
||||
@GeoSpatialIndexed
|
||||
private double[] location;
|
||||
@Id private ObjectId id;
|
||||
@GeoSpatialIndexed private double[] location;
|
||||
|
||||
public GeoLocation(double[] location) {
|
||||
this.location = location;
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
package org.springframework.data.mongodb.core.mapping;
|
||||
|
||||
import org.bson.types.ObjectId;
|
||||
import org.springframework.data.mongodb.core.mapping.Document;
|
||||
|
||||
/**
|
||||
* @author Jon Brisbin <jbrisbin@vmware.com>
|
||||
|
||||
@@ -22,14 +22,11 @@ import org.springframework.data.mongodb.core.mapping.BasicMongoPersistentEntity.
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class MongoPersistentPropertyComparatorUnitTests {
|
||||
|
||||
@Mock
|
||||
MongoPersistentProperty firstName;
|
||||
@Mock MongoPersistentProperty firstName;
|
||||
|
||||
@Mock
|
||||
MongoPersistentProperty lastName;
|
||||
@Mock MongoPersistentProperty lastName;
|
||||
|
||||
@Mock
|
||||
MongoPersistentProperty ssn;
|
||||
@Mock MongoPersistentProperty ssn;
|
||||
|
||||
@Test
|
||||
public void ordersPropertiesCorrectly() {
|
||||
|
||||
@@ -23,8 +23,6 @@ import org.springframework.data.annotation.Transient;
|
||||
import org.springframework.data.mongodb.core.index.CompoundIndex;
|
||||
import org.springframework.data.mongodb.core.index.CompoundIndexes;
|
||||
import org.springframework.data.mongodb.core.index.Indexed;
|
||||
import org.springframework.data.mongodb.core.mapping.DBRef;
|
||||
import org.springframework.data.mongodb.core.mapping.Document;
|
||||
|
||||
/**
|
||||
* @author Jon Brisbin <jbrisbin@vmware.com>
|
||||
@@ -33,18 +31,13 @@ import org.springframework.data.mongodb.core.mapping.Document;
|
||||
@CompoundIndexes({ @CompoundIndex(name = "age_idx", def = "{'lastName': 1, 'age': -1}") })
|
||||
public class Person<T extends Address> {
|
||||
|
||||
@Id
|
||||
private String id;
|
||||
@Indexed(unique = true)
|
||||
private Integer ssn;
|
||||
@Id private String id;
|
||||
@Indexed(unique = true) private Integer ssn;
|
||||
private String firstName;
|
||||
@Indexed
|
||||
private String lastName;
|
||||
@Indexed private String lastName;
|
||||
private Integer age;
|
||||
@Transient
|
||||
private Integer accountTotal;
|
||||
@DBRef
|
||||
private List<Account> accounts;
|
||||
@Transient private Integer accountTotal;
|
||||
@DBRef private List<Account> accounts;
|
||||
private T address;
|
||||
|
||||
public Person(Integer ssn) {
|
||||
|
||||
@@ -23,8 +23,7 @@ import org.springframework.data.annotation.Id;
|
||||
@Document("person1")
|
||||
public class PersonCustomCollection1 extends BasePerson {
|
||||
|
||||
@Id
|
||||
private String id;
|
||||
@Id private String id;
|
||||
|
||||
public PersonCustomCollection1(Integer ssn, String firstName, String lastName) {
|
||||
super(ssn, firstName, lastName);
|
||||
|
||||
@@ -23,8 +23,7 @@ import org.springframework.data.annotation.Id;
|
||||
@Document("person2")
|
||||
public class PersonCustomCollection2 extends BasePerson {
|
||||
|
||||
@Id
|
||||
private String id;
|
||||
@Id private String id;
|
||||
|
||||
public PersonCustomCollection2(Integer ssn, String firstName, String lastName) {
|
||||
super(ssn, firstName, lastName);
|
||||
|
||||
@@ -18,7 +18,6 @@ package org.springframework.data.mongodb.core.mapping;
|
||||
import java.util.Map;
|
||||
|
||||
import org.bson.types.ObjectId;
|
||||
import org.springframework.data.mongodb.core.mapping.Document;
|
||||
|
||||
/**
|
||||
* @author Jon Brisbin <jbrisbin@vmware.com>
|
||||
|
||||
@@ -16,8 +16,8 @@
|
||||
package org.springframework.data.mongodb.core.mapping;
|
||||
|
||||
import org.bson.types.ObjectId;
|
||||
|
||||
import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.mongodb.core.mapping.Document;
|
||||
|
||||
/**
|
||||
* @author Jon Brisbin <jbrisbin@vmware.com>
|
||||
@@ -25,11 +25,9 @@ import org.springframework.data.mongodb.core.mapping.Document;
|
||||
@Document
|
||||
public class PersonNullProperties extends BasePerson {
|
||||
|
||||
@Id
|
||||
private ObjectId id;
|
||||
@Id private ObjectId id;
|
||||
|
||||
public PersonNullProperties() {
|
||||
}
|
||||
public PersonNullProperties() {}
|
||||
|
||||
public ObjectId getId() {
|
||||
return id;
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
*/
|
||||
package org.springframework.data.mongodb.core.mapping;
|
||||
|
||||
|
||||
/**
|
||||
* @author Jon Brisbin <jbrisbin@vmware.com>
|
||||
*/
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
package org.springframework.data.mongodb.core.mapping;
|
||||
|
||||
import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.mongodb.core.mapping.Document;
|
||||
|
||||
/**
|
||||
* @author Jon Brisbin <jbrisbin@vmware.com>
|
||||
@@ -24,8 +23,7 @@ import org.springframework.data.mongodb.core.mapping.Document;
|
||||
@Document
|
||||
public class PrimitiveId {
|
||||
|
||||
@Id
|
||||
int id;
|
||||
@Id int id;
|
||||
String text;
|
||||
|
||||
public PrimitiveId(Integer id) {
|
||||
|
||||
@@ -28,10 +28,11 @@ import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
|
||||
import org.springframework.data.annotation.Id;
|
||||
|
||||
@@ -26,11 +26,9 @@ import javax.validation.constraints.Size;
|
||||
*/
|
||||
public class User {
|
||||
|
||||
@Size(min = 10)
|
||||
private String name;
|
||||
@Size(min = 10) private String name;
|
||||
|
||||
@Min(18)
|
||||
private Integer age;
|
||||
@Min(18) private Integer age;
|
||||
|
||||
public User(String name, Integer age) {
|
||||
this.name = name;
|
||||
|
||||
@@ -48,6 +48,7 @@ import org.springframework.data.mongodb.core.messaging.Message.MessageProperties
|
||||
import org.springframework.data.mongodb.core.messaging.SubscriptionUtils.*;
|
||||
import org.springframework.data.mongodb.core.query.Criteria;
|
||||
import org.springframework.data.mongodb.core.query.Update;
|
||||
import org.springframework.data.mongodb.test.util.EnableIfMongoServerVersion;
|
||||
import org.springframework.data.mongodb.test.util.EnableIfReplicaSetAvailable;
|
||||
import org.springframework.data.mongodb.test.util.MongoClientExtension;
|
||||
import org.springframework.data.mongodb.test.util.MongoVersion;
|
||||
@@ -387,6 +388,7 @@ public class ChangeStreamTests {
|
||||
}
|
||||
|
||||
@Test // DATAMONGO-1803
|
||||
@EnableIfMongoServerVersion(isGreaterThanEqual = "4.0")
|
||||
public void readsFullDocumentForUpdateWhenNotMappedToDomainTypeButLookupSpecified() throws InterruptedException {
|
||||
|
||||
CollectingMessageListener<ChangeStreamDocument<Document>, Document> messageListener = new CollectingMessageListener<>();
|
||||
|
||||
@@ -30,10 +30,11 @@ import org.junit.runner.RunWith;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
import org.springframework.data.mongodb.core.MongoExceptionTranslator;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
import org.springframework.data.mongodb.core.messaging.SubscriptionRequest.RequestOptions;
|
||||
import org.springframework.data.mongodb.core.messaging.Task.State;
|
||||
import org.springframework.data.mongodb.core.messaging.SubscriptionRequest.RequestOptions;
|
||||
import org.springframework.util.ErrorHandler;
|
||||
|
||||
import com.mongodb.ServerAddress;
|
||||
|
||||
@@ -27,13 +27,10 @@ import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.bson.Document;
|
||||
import org.junit.AfterClass;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.jupiter.api.AfterAll;
|
||||
import org.junit.jupiter.api.BeforeAll;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
|
||||
import org.springframework.core.task.SimpleAsyncTaskExecutor;
|
||||
import org.springframework.dao.DataAccessException;
|
||||
import org.springframework.data.annotation.Id;
|
||||
@@ -42,10 +39,10 @@ import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
import org.springframework.data.mongodb.core.SimpleMongoClientDatabaseFactory;
|
||||
import org.springframework.data.mongodb.core.messaging.SubscriptionRequest.RequestOptions;
|
||||
import org.springframework.data.mongodb.test.util.Client;
|
||||
import org.springframework.data.mongodb.test.util.EnableIfMongoServerVersion;
|
||||
import org.springframework.data.mongodb.test.util.EnableIfReplicaSetAvailable;
|
||||
import org.springframework.data.mongodb.test.util.MongoClientExtension;
|
||||
import org.springframework.data.mongodb.test.util.MongoServerCondition;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
import org.springframework.util.ErrorHandler;
|
||||
|
||||
import com.mongodb.client.MongoClient;
|
||||
@@ -58,7 +55,7 @@ import com.mongodb.client.model.changestream.ChangeStreamDocument;
|
||||
*
|
||||
* @author Christoph Strobl
|
||||
*/
|
||||
@ExtendWith({MongoClientExtension.class, MongoServerCondition.class})
|
||||
@ExtendWith({ MongoClientExtension.class, MongoServerCondition.class })
|
||||
public class DefaultMessageListenerContainerTests {
|
||||
|
||||
public static final String DATABASE_NAME = "change-stream-events";
|
||||
@@ -93,6 +90,7 @@ public class DefaultMessageListenerContainerTests {
|
||||
|
||||
@Test // DATAMONGO-1803
|
||||
@EnableIfReplicaSetAvailable
|
||||
@EnableIfMongoServerVersion(isGreaterThanEqual = "4.0")
|
||||
public void shouldCollectMappedChangeStreamMessagesCorrectly() throws InterruptedException {
|
||||
|
||||
MessageListenerContainer container = new DefaultMessageListenerContainer(template);
|
||||
@@ -355,6 +353,7 @@ public class DefaultMessageListenerContainerTests {
|
||||
|
||||
@Test // DATAMONGO-2012
|
||||
@EnableIfReplicaSetAvailable
|
||||
@EnableIfMongoServerVersion(isGreaterThanEqual = "4.0")
|
||||
public void databaseLevelWatch() throws InterruptedException {
|
||||
|
||||
MessageListenerContainer container = new DefaultMessageListenerContainer(template);
|
||||
|
||||
@@ -19,7 +19,6 @@ import static org.assertj.core.api.Assertions.*;
|
||||
import static org.springframework.data.mongodb.core.query.Criteria.*;
|
||||
import static org.springframework.data.mongodb.core.query.Query.*;
|
||||
|
||||
import com.mongodb.client.MongoClients;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
@@ -31,6 +30,7 @@ import org.junit.AfterClass;
|
||||
import org.junit.Before;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
|
||||
import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.mongodb.core.MongoOperations;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
|
||||
@@ -24,7 +24,6 @@ import java.util.List;
|
||||
|
||||
import org.bson.Document;
|
||||
import org.junit.Before;
|
||||
import org.junit.ClassRule;
|
||||
import org.junit.Test;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -38,8 +37,6 @@ import org.springframework.data.mongodb.core.mapping.Field;
|
||||
import org.springframework.data.mongodb.core.mapping.Language;
|
||||
import org.springframework.data.mongodb.core.mapping.TextScore;
|
||||
import org.springframework.data.mongodb.core.query.TextQueryTests.FullTextDoc.FullTextDocBuilder;
|
||||
import org.springframework.data.mongodb.test.util.MongoVersionRule;
|
||||
import org.springframework.data.util.Version;
|
||||
|
||||
/**
|
||||
* @author Christoph Strobl
|
||||
@@ -201,8 +198,8 @@ public class TextQueryTests extends AbstractIntegrationTests {
|
||||
initWithDefaultDocuments();
|
||||
|
||||
// page 1
|
||||
List<FullTextDoc> result = template
|
||||
.find(new TextQuery("bake coffee cake").sortByScore().with(PageRequest.of(0, 2)), FullTextDoc.class);
|
||||
List<FullTextDoc> result = template.find(new TextQuery("bake coffee cake").sortByScore().with(PageRequest.of(0, 2)),
|
||||
FullTextDoc.class);
|
||||
assertThat(result).hasSize(2);
|
||||
assertThat(result).containsExactly(BAKE, COFFEE);
|
||||
|
||||
|
||||
@@ -479,8 +479,7 @@ public class UpdateTests {
|
||||
@Test // DATAMONGO-1777, DATAMONGO-2198
|
||||
public void toStringConsidersIsolated() {
|
||||
|
||||
assertThat(new Update().set("key", "value").isolated().toString())
|
||||
.contains("\"$isolated\"");
|
||||
assertThat(new Update().set("key", "value").isolated().toString()).contains("\"$isolated\"");
|
||||
}
|
||||
|
||||
@Test // DATAMONGO-1778
|
||||
|
||||
@@ -18,6 +18,7 @@ package org.springframework.data.mongodb.core.schema;
|
||||
import static org.springframework.data.domain.Range.from;
|
||||
import static org.springframework.data.domain.Range.Bound.*;
|
||||
import static org.springframework.data.mongodb.core.schema.JsonSchemaObject.*;
|
||||
import static org.springframework.data.mongodb.core.schema.JsonSchemaObject.array;
|
||||
import static org.springframework.data.mongodb.core.schema.JsonSchemaObject.of;
|
||||
import static org.springframework.data.mongodb.test.util.Assertions.*;
|
||||
|
||||
@@ -31,6 +32,7 @@ import java.util.Set;
|
||||
|
||||
import org.bson.Document;
|
||||
import org.junit.Test;
|
||||
|
||||
import org.springframework.data.domain.Range;
|
||||
import org.springframework.data.domain.Range.*;
|
||||
|
||||
|
||||
@@ -27,8 +27,7 @@ import org.springframework.data.mongodb.core.mapping.Document;
|
||||
@Document
|
||||
public abstract class Contact {
|
||||
|
||||
@Id
|
||||
protected String id;
|
||||
@Id protected String id;
|
||||
|
||||
public Contact() {
|
||||
this.id = new ObjectId().toString();
|
||||
|
||||
@@ -15,8 +15,6 @@
|
||||
*/
|
||||
package org.springframework.data.mongodb.repository;
|
||||
|
||||
import org.springframework.data.mongodb.repository.MongoRepository;
|
||||
|
||||
/**
|
||||
* Simple repository interface managing {@link Contact}s.
|
||||
*
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
package org.springframework.data.mongodb.repository;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author Oliver Gierke
|
||||
*/
|
||||
public interface Credentials {
|
||||
|
||||
@@ -20,7 +20,6 @@ import lombok.Value;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import org.springframework.data.annotation.Id;
|
||||
|
||||
@@ -37,6 +37,7 @@ import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
|
||||
import org.springframework.data.mongodb.test.util.AfterTransactionAssertion;
|
||||
import org.springframework.data.mongodb.test.util.EnableIfMongoServerVersion;
|
||||
import org.springframework.data.mongodb.test.util.EnableIfReplicaSetAvailable;
|
||||
import org.springframework.data.mongodb.test.util.MongoClientExtension;
|
||||
import org.springframework.data.mongodb.test.util.ReplSetClient;
|
||||
@@ -59,6 +60,7 @@ import com.mongodb.client.model.Filters;
|
||||
*/
|
||||
@ExtendWith({ MongoClientExtension.class, SpringExtension.class })
|
||||
@EnableIfReplicaSetAvailable
|
||||
@EnableIfMongoServerVersion(isGreaterThanEqual = "4.0")
|
||||
@Transactional(transactionManager = "txManager")
|
||||
public class PersonRepositoryTransactionalTests {
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@ package org.springframework.data.mongodb.repository.config;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
@@ -29,8 +30,6 @@ 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.MongoClients;
|
||||
|
||||
/**
|
||||
* Integration tests for {@link ReactiveMongoRepositoriesRegistrar}.
|
||||
*
|
||||
|
||||
@@ -16,9 +16,7 @@
|
||||
package org.springframework.data.mongodb.repository.query;
|
||||
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.anyString;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.ArgumentMatchers.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
@@ -35,6 +33,7 @@ import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
|
||||
@@ -16,9 +16,7 @@
|
||||
package org.springframework.data.mongodb.repository.query;
|
||||
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.anyString;
|
||||
import static org.mockito.ArgumentMatchers.eq;
|
||||
import static org.mockito.ArgumentMatchers.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
import reactor.core.publisher.Flux;
|
||||
@@ -34,6 +32,7 @@ import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
import org.reactivestreams.Publisher;
|
||||
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.data.domain.Range;
|
||||
|
||||
@@ -216,8 +216,8 @@ public class ReactiveStringBasedMongoQueryUnitTests {
|
||||
ReactiveStringBasedMongoQuery mongoQuery = createQueryForMethod("findByLastnameAsBinary", byte[].class);
|
||||
|
||||
org.springframework.data.mongodb.core.query.Query query = mongoQuery.createQuery(accesor);
|
||||
org.springframework.data.mongodb.core.query.Query reference = new BasicQuery("{'lastname' : { '$binary' : '"
|
||||
+ Base64Utils.encodeToString(binaryData) + "', '$type' : '" + 0 + "'}}");
|
||||
org.springframework.data.mongodb.core.query.Query reference = new BasicQuery(
|
||||
"{'lastname' : { '$binary' : '" + Base64Utils.encodeToString(binaryData) + "', '$type' : '" + 0 + "'}}");
|
||||
|
||||
assertThat(query.getQueryObject().toJson()).isEqualTo(reference.getQueryObject().toJson());
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
package org.springframework.data.mongodb.repository.support;
|
||||
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
import static org.mockito.Mockito.anyString;
|
||||
|
||||
@@ -28,6 +28,7 @@ import org.mockito.Answers;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
import org.springframework.data.domain.Sort;
|
||||
import org.springframework.data.mongodb.core.index.IndexDefinition;
|
||||
import org.springframework.data.mongodb.core.index.IndexOperations;
|
||||
|
||||
@@ -272,14 +272,12 @@ public class QuerydslRepositorySupportTests {
|
||||
.isEqualTo("find({\"lastname\":\"Matthews\",\"coworker\":{\"$ref\":\"user\",\"$id\":\"id\"}})");
|
||||
|
||||
query = query.orderBy(p.firstname.asc());
|
||||
assertThat(StringUtils.trimAllWhitespace(query.toString()))
|
||||
.isEqualTo(
|
||||
"find({\"lastname\":\"Matthews\",\"coworker\":{\"$ref\":\"user\",\"$id\":\"id\"}}).sort({\"firstname\":1})");
|
||||
assertThat(StringUtils.trimAllWhitespace(query.toString())).isEqualTo(
|
||||
"find({\"lastname\":\"Matthews\",\"coworker\":{\"$ref\":\"user\",\"$id\":\"id\"}}).sort({\"firstname\":1})");
|
||||
|
||||
query = query.offset(1).limit(5);
|
||||
assertThat(StringUtils.trimAllWhitespace(query.toString()))
|
||||
.isEqualTo(
|
||||
"find({\"lastname\":\"Matthews\",\"coworker\":{\"$ref\":\"user\",\"$id\":\"id\"}}).sort({\"firstname\":1}).skip(1).limit(5)");
|
||||
assertThat(StringUtils.trimAllWhitespace(query.toString())).isEqualTo(
|
||||
"find({\"lastname\":\"Matthews\",\"coworker\":{\"$ref\":\"user\",\"$id\":\"id\"}}).sort({\"firstname\":1}).skip(1).limit(5)");
|
||||
}
|
||||
|
||||
@Data
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
*/
|
||||
package org.springframework.data.mongodb.repository.support;
|
||||
|
||||
import org.springframework.data.mongodb.core.query.BasicQuery;
|
||||
import reactor.core.publisher.Flux;
|
||||
import reactor.core.publisher.Mono;
|
||||
import reactor.test.StepVerifier;
|
||||
@@ -39,6 +38,7 @@ 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;
|
||||
import org.springframework.data.mongodb.repository.Address;
|
||||
import org.springframework.data.mongodb.repository.Person;
|
||||
import org.springframework.data.mongodb.repository.QAddress;
|
||||
@@ -52,7 +52,6 @@ import org.springframework.test.context.junit4.SpringRunner;
|
||||
|
||||
import com.mongodb.MongoException;
|
||||
import com.mongodb.reactivestreams.client.MongoClient;
|
||||
import com.mongodb.reactivestreams.client.MongoClients;
|
||||
import com.mongodb.reactivestreams.client.MongoDatabase;
|
||||
|
||||
/**
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
package org.springframework.data.mongodb.repository.support;
|
||||
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
import org.junit.Before;
|
||||
@@ -25,6 +25,7 @@ import org.junit.runner.RunWith;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
import org.springframework.data.domain.Example;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Sort;
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
package org.springframework.data.mongodb.repository.support;
|
||||
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.*;
|
||||
import static org.mockito.Mockito.*;
|
||||
|
||||
import reactor.core.publisher.Flux;
|
||||
@@ -44,6 +44,7 @@ import org.junit.runner.RunWith;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.MockitoJUnitRunner;
|
||||
|
||||
import org.springframework.data.domain.Example;
|
||||
import org.springframework.data.domain.Sort;
|
||||
import org.springframework.data.mongodb.core.ReactiveMongoOperations;
|
||||
|
||||
@@ -23,6 +23,7 @@ import reactor.test.StepVerifier;
|
||||
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;
|
||||
@@ -36,7 +37,6 @@ import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
|
||||
import com.mongodb.reactivestreams.client.MongoClient;
|
||||
import com.mongodb.reactivestreams.client.MongoClients;
|
||||
|
||||
/**
|
||||
* @author Mark Paluch
|
||||
|
||||
@@ -21,12 +21,22 @@ import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
|
||||
/**
|
||||
* Marks a field or method as to be autowired by JUnit's dependency injection facilities for injection of a MongoDB
|
||||
* client instance. Depends on {@link MongoClientExtension}.
|
||||
*
|
||||
* @author Christoph Strobl
|
||||
* @see com.mongodb.client.MongoClient
|
||||
* @see com.mongodb.reactivestreams.client.MongoClient
|
||||
* @see ReplSetClient
|
||||
* @see MongoClientExtension
|
||||
*/
|
||||
@Target({ ElementType.FIELD, ElementType.PARAMETER })
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Documented
|
||||
@ExtendWith(MongoClientExtension.class)
|
||||
public @interface Client {
|
||||
|
||||
}
|
||||
|
||||
@@ -25,6 +25,10 @@ import org.junit.jupiter.api.Tag;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
|
||||
/**
|
||||
* {@code @EnableIfMongoServerVersion} is used to signal that the annotated test class or test method is only
|
||||
* <em>enabled</em> if the value of the specified version boundaries {@link #isGreaterThanEqual()} and
|
||||
* {@link #isLessThan()} match the connected MongoDB server version.
|
||||
*
|
||||
* @author Christoph Strobl
|
||||
* @since 3.0
|
||||
*/
|
||||
|
||||
@@ -25,8 +25,8 @@ import org.junit.jupiter.api.Tag;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
|
||||
/**
|
||||
* {@link EnableIfReplicaSetAvailable} marks a specific test class or method to be only executed against a server running in
|
||||
* replicaSet mode. Intended to be used along with {@link MongoServerCondition}.
|
||||
* {@link EnableIfReplicaSetAvailable} marks a specific test class or method to be only executed against a server
|
||||
* running in replicaSet mode. Intended to be used along with {@link MongoServerCondition}.
|
||||
*
|
||||
* @author Christoph Strobl
|
||||
* @since 3.0
|
||||
|
||||
@@ -19,7 +19,6 @@ import static org.junit.platform.commons.util.AnnotationUtils.*;
|
||||
import static org.junit.platform.commons.util.ReflectionUtils.*;
|
||||
|
||||
import java.io.Closeable;
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
@@ -37,10 +36,17 @@ import org.junit.platform.commons.util.ExceptionUtils;
|
||||
import org.junit.platform.commons.util.ReflectionUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import org.springframework.util.ClassUtils;
|
||||
|
||||
import com.mongodb.client.MongoClient;
|
||||
|
||||
/**
|
||||
* JUnit {@link Extension} providing parameter resolution for synchronous and reactive MongoDB client instances.
|
||||
*
|
||||
* @author Christoph Strobl
|
||||
* @see Client
|
||||
* @see ReplSetClient
|
||||
*/
|
||||
public class MongoClientExtension implements Extension, BeforeAllCallback, AfterAllCallback, ParameterResolver {
|
||||
|
||||
@@ -53,9 +59,7 @@ public class MongoClientExtension implements Extension, BeforeAllCallback, After
|
||||
private static final String REACTIVE_REPLSET_KEY = "mongo.client.replset.reactive";
|
||||
|
||||
@Override
|
||||
public void afterAll(ExtensionContext extensionContext) throws Exception {
|
||||
closeClients(extensionContext);
|
||||
}
|
||||
public void afterAll(ExtensionContext extensionContext) throws Exception {}
|
||||
|
||||
@Override
|
||||
public void beforeAll(ExtensionContext context) throws Exception {
|
||||
@@ -91,29 +95,29 @@ public class MongoClientExtension implements Extension, BeforeAllCallback, After
|
||||
|
||||
LOGGER.debug("Obtaining sync client from store.");
|
||||
return store.getOrComputeIfAbsent(replSet ? SYNC_REPLSET_KEY : SYNC_KEY, it -> syncClient(replSet),
|
||||
com.mongodb.client.MongoClient.class);
|
||||
SyncClientHolder.class).client;
|
||||
}
|
||||
|
||||
if (ClassUtils.isAssignable(com.mongodb.reactivestreams.client.MongoClient.class, type)) {
|
||||
|
||||
LOGGER.debug("Obtaining reactive client from store.");
|
||||
return store.getOrComputeIfAbsent(replSet ? REACTIVE_REPLSET_KEY : REACTIVE_KEY, key -> reactiveClient(replSet),
|
||||
com.mongodb.reactivestreams.client.MongoClient.class);
|
||||
ReactiveClientHolder.class).client;
|
||||
}
|
||||
|
||||
throw new IllegalStateException("Damn - something went wrong.");
|
||||
}
|
||||
|
||||
private com.mongodb.reactivestreams.client.MongoClient reactiveClient(boolean replSet) {
|
||||
private ReactiveClientHolder reactiveClient(boolean replSet) {
|
||||
|
||||
LOGGER.debug("Creating new reactive {}client.", replSet ? "replica set " : "");
|
||||
return replSet ? MongoTestUtils.reactiveReplSetClient() : MongoTestUtils.reactiveClient();
|
||||
return new ReactiveClientHolder(replSet ? MongoTestUtils.reactiveReplSetClient() : MongoTestUtils.reactiveClient());
|
||||
}
|
||||
|
||||
private com.mongodb.client.MongoClient syncClient(boolean replSet) {
|
||||
private SyncClientHolder syncClient(boolean replSet) {
|
||||
|
||||
LOGGER.debug("Creating new sync {}client.", replSet ? "replica set " : "");
|
||||
return replSet ? MongoTestUtils.replSetClient() : MongoTestUtils.client();
|
||||
return new SyncClientHolder(replSet ? MongoTestUtils.replSetClient() : MongoTestUtils.client());
|
||||
}
|
||||
|
||||
private void assertValidFieldCandidate(Field field) {
|
||||
@@ -133,29 +137,11 @@ public class MongoClientExtension implements Extension, BeforeAllCallback, After
|
||||
}
|
||||
}
|
||||
|
||||
private void closeClients(ExtensionContext extensionContext) {
|
||||
|
||||
Store store = extensionContext.getStore(NAMESPACE);
|
||||
|
||||
closeClient(store, SYNC_KEY);
|
||||
closeClient(store, SYNC_REPLSET_KEY);
|
||||
closeClient(store, REACTIVE_KEY);
|
||||
closeClient(store, REACTIVE_REPLSET_KEY);
|
||||
}
|
||||
|
||||
private void closeClient(Store store, String key) {
|
||||
|
||||
Closeable client = store.remove(key, Closeable.class);
|
||||
if (client != null) {
|
||||
|
||||
LOGGER.debug("Closing {} {}client.", key.contains("reactive") ? "reactive" : "sync",
|
||||
key.contains("replset") ? "replset " : "");
|
||||
|
||||
try {
|
||||
client.close();
|
||||
} catch (IOException e) {
|
||||
// so what?
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -173,4 +159,41 @@ public class MongoClientExtension implements Extension, BeforeAllCallback, After
|
||||
boolean replSet = parameterContext.getParameter().getAnnotation(ReplSetClient.class) != null;
|
||||
return getMongoClient(parameterType, extensionContext, replSet);
|
||||
}
|
||||
|
||||
static class SyncClientHolder implements Store.CloseableResource {
|
||||
|
||||
final MongoClient client;
|
||||
|
||||
public SyncClientHolder(MongoClient client) {
|
||||
this.client = client;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() {
|
||||
try {
|
||||
client.close();
|
||||
} catch (RuntimeException e) {
|
||||
// so what?
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static class ReactiveClientHolder implements Store.CloseableResource {
|
||||
|
||||
final com.mongodb.reactivestreams.client.MongoClient client;
|
||||
|
||||
public ReactiveClientHolder(com.mongodb.reactivestreams.client.MongoClient client) {
|
||||
this.client = client;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void close() {
|
||||
|
||||
try {
|
||||
client.close();
|
||||
} catch (RuntimeException e) {
|
||||
// so what?
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,14 @@ import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
/**
|
||||
* Marks a field or method as to be autowired by JUnit's dependency injection facilities for injection of a MongoDB
|
||||
* client instance connected to a replica set. Depends on {@link MongoClientExtension}.
|
||||
*
|
||||
* @author Christoph Strobl
|
||||
* @see com.mongodb.client.MongoClient
|
||||
* @see com.mongodb.reactivestreams.client.MongoClient
|
||||
* @see Client
|
||||
* @see MongoClientExtension
|
||||
*/
|
||||
@Target({ ElementType.FIELD, ElementType.PARAMETER })
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
-->
|
||||
|
||||
<logger name="org.springframework.data.mongodb.core" level="error"/>
|
||||
<logger name="org.springframework.data.mongodb.test.util" level="debug"/>
|
||||
<logger name="org.springframework.data.mongodb.test.util" level="info"/>
|
||||
|
||||
<root level="error">
|
||||
<appender-ref ref="console" />
|
||||
|
||||
Reference in New Issue
Block a user