Browse Source

DATAMONGO-2427 - Polishing.

Guard tests.

Original pull request: #823.
pull/830/head
Mark Paluch 6 years ago
parent
commit
9abf098bdb
No known key found for this signature in database
GPG Key ID: 51A00FA751B91849
  1. 5
      spring-data-mongodb/src/main/java/org/springframework/data/mongodb/gridfs/ReactiveGridFsResource.java
  2. 7
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateTests.java
  3. 8
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/SessionBoundMongoTemplateTests.java
  4. 7
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/messaging/ChangeStreamTests.java
  5. 3
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/gridfs/ReactiveGridFsResourceUnitTests.java
  6. 8
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/gridfs/ReactiveGridFsTemplateTests.java
  7. 8
      spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/support/SimpleMongoRepositoryVersionedEntityTests.java

5
spring-data-mongodb/src/main/java/org/springframework/data/mongodb/gridfs/ReactiveGridFsResource.java

@ -34,7 +34,8 @@ import com.mongodb.client.gridfs.model.GridFSFile;
import com.mongodb.reactivestreams.client.gridfs.GridFSDownloadPublisher; import com.mongodb.reactivestreams.client.gridfs.GridFSDownloadPublisher;
/** /**
* Reactive {@link GridFSFile} based {@link Resource} implementation. * Reactive {@link GridFSFile} based {@link Resource} implementation. Note that the {@link #getDownloadStream() content}
* can be consumed only once.
* *
* @author Mark Paluch * @author Mark Paluch
* @author Christoph Strobl * @author Christoph Strobl
@ -63,6 +64,8 @@ public class ReactiveGridFsResource {
* *
* @param filename filename of the absent resource. * @param filename filename of the absent resource.
* @param downloadPublisher * @param downloadPublisher
* @param dataBufferFactory
* @since 3.0
*/ */
ReactiveGridFsResource(String filename, @Nullable GridFSDownloadPublisher downloadPublisher, ReactiveGridFsResource(String filename, @Nullable GridFSDownloadPublisher downloadPublisher,
DataBufferFactory dataBufferFactory) { DataBufferFactory dataBufferFactory) {

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

@ -24,6 +24,7 @@ import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.experimental.Wither; import lombok.experimental.Wither;
import org.junit.Rule;
import reactor.core.Disposable; import reactor.core.Disposable;
import reactor.core.publisher.Flux; import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono; import reactor.core.publisher.Mono;
@ -79,6 +80,8 @@ import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.NearQuery; import org.springframework.data.mongodb.core.query.NearQuery;
import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update; import org.springframework.data.mongodb.core.query.Update;
import org.springframework.data.mongodb.test.util.MongoVersion;
import org.springframework.data.mongodb.test.util.MongoVersionRule;
import org.springframework.data.mongodb.test.util.ReplicaSet; import org.springframework.data.mongodb.test.util.ReplicaSet;
import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.ContextConfiguration;
@ -99,6 +102,7 @@ public class ReactiveMongoTemplateTests {
@Autowired SimpleReactiveMongoDatabaseFactory factory; @Autowired SimpleReactiveMongoDatabaseFactory factory;
@Autowired ReactiveMongoTemplate template; @Autowired ReactiveMongoTemplate template;
@Autowired ConfigurableApplicationContext context; @Autowired ConfigurableApplicationContext context;
@Rule public MongoVersionRule mongoVersion = MongoVersionRule.any();
@Before @Before
public void setUp() { public void setUp() {
@ -1614,6 +1618,7 @@ public class ReactiveMongoTemplateTests {
} }
@Test // DATAMONGO-2012 @Test // DATAMONGO-2012
@MongoVersion(asOf = "4.0")
public void watchesDatabaseCorrectly() throws InterruptedException { public void watchesDatabaseCorrectly() throws InterruptedException {
Assumptions.assumeThat(ReplicaSet.required().runsAsReplicaSet()).isTrue(); Assumptions.assumeThat(ReplicaSet.required().runsAsReplicaSet()).isTrue();
@ -1655,6 +1660,7 @@ public class ReactiveMongoTemplateTests {
} }
@Test // DATAMONGO-2012, DATAMONGO-2113 @Test // DATAMONGO-2012, DATAMONGO-2113
@MongoVersion(asOf = "4.0")
public void resumesAtTimestampCorrectly() throws InterruptedException { public void resumesAtTimestampCorrectly() throws InterruptedException {
Assumptions.assumeThat(ReplicaSet.required().runsAsReplicaSet()).isTrue(); Assumptions.assumeThat(ReplicaSet.required().runsAsReplicaSet()).isTrue();
@ -1705,6 +1711,7 @@ public class ReactiveMongoTemplateTests {
} }
@Test // DATAMONGO-2115 @Test // DATAMONGO-2115
@MongoVersion(asOf = "4.0")
public void resumesAtBsonTimestampCorrectly() throws InterruptedException { public void resumesAtBsonTimestampCorrectly() throws InterruptedException {
Assumptions.assumeThat(ReplicaSet.required().runsAsReplicaSet()).isTrue(); Assumptions.assumeThat(ReplicaSet.required().runsAsReplicaSet()).isTrue();

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

@ -39,6 +39,7 @@ import org.bson.Document;
import org.junit.After; import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.junit.ClassRule; import org.junit.ClassRule;
import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.rules.TestRule; import org.junit.rules.TestRule;
import org.mockito.Mockito; import org.mockito.Mockito;
@ -63,6 +64,7 @@ import org.springframework.data.mongodb.core.mapping.DBRef;
import org.springframework.data.mongodb.core.mapping.MongoMappingContext; import org.springframework.data.mongodb.core.mapping.MongoMappingContext;
import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.test.util.MongoTestUtils; import org.springframework.data.mongodb.test.util.MongoTestUtils;
import org.springframework.data.mongodb.test.util.MongoVersion;
import org.springframework.data.mongodb.test.util.MongoVersionRule; import org.springframework.data.mongodb.test.util.MongoVersionRule;
import org.springframework.data.mongodb.test.util.ReplicaSet; import org.springframework.data.mongodb.test.util.ReplicaSet;
import org.springframework.data.util.Version; import org.springframework.data.util.Version;
@ -81,9 +83,10 @@ import com.mongodb.client.MongoDatabase;
*/ */
public class SessionBoundMongoTemplateTests { public class SessionBoundMongoTemplateTests {
public static @ClassRule MongoVersionRule REQUIRES_AT_LEAST_3_6_0 = MongoVersionRule.atLeast(Version.parse("3.6.0"));
public static @ClassRule TestRule replSet = ReplicaSet.required(); public static @ClassRule TestRule replSet = ReplicaSet.required();
public @Rule MongoVersionRule REQUIRES_AT_LEAST_3_6_0 = MongoVersionRule.atLeast(Version.parse("3.6.0"));
MongoClient client; MongoClient client;
MongoTemplate template; MongoTemplate template;
SessionBoundMongoTemplate sessionBoundTemplate; SessionBoundMongoTemplate sessionBoundTemplate;
@ -259,6 +262,7 @@ public class SessionBoundMongoTemplateTests {
} }
@Test // DATAMONGO-2001 @Test // DATAMONGO-2001
@MongoVersion(asOf = "4.0")
public void countShouldWorkInTransactions() { public void countShouldWorkInTransactions() {
if (!template.collectionExists(Person.class)) { if (!template.collectionExists(Person.class)) {
@ -283,6 +287,7 @@ public class SessionBoundMongoTemplateTests {
} }
@Test // DATAMONGO-2012 @Test // DATAMONGO-2012
@MongoVersion(asOf = "4.0")
public void countWithGeoInTransaction() { public void countWithGeoInTransaction() {
if (!template.collectionExists(Person.class)) { if (!template.collectionExists(Person.class)) {
@ -307,6 +312,7 @@ public class SessionBoundMongoTemplateTests {
} }
@Test // DATAMONGO-2001 @Test // DATAMONGO-2001
@MongoVersion(asOf = "4.0")
public void countShouldReturnIsolatedCount() throws InterruptedException { public void countShouldReturnIsolatedCount() throws InterruptedException {
if (!template.collectionExists(Person.class)) { if (!template.collectionExists(Person.class)) {

7
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/messaging/ChangeStreamTests.java

@ -39,6 +39,7 @@ import org.junit.AfterClass;
import org.junit.Before; import org.junit.Before;
import org.junit.BeforeClass; import org.junit.BeforeClass;
import org.junit.ClassRule; import org.junit.ClassRule;
import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.rules.TestRule; import org.junit.rules.TestRule;
import org.springframework.data.annotation.Id; import org.springframework.data.annotation.Id;
@ -50,7 +51,10 @@ import org.springframework.data.mongodb.core.messaging.SubscriptionUtils.*;
import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Update; import org.springframework.data.mongodb.core.query.Update;
import org.springframework.data.mongodb.test.util.MongoTestUtils; import org.springframework.data.mongodb.test.util.MongoTestUtils;
import org.springframework.data.mongodb.test.util.MongoVersion;
import org.springframework.data.mongodb.test.util.MongoVersionRule;
import org.springframework.data.mongodb.test.util.ReplicaSet; import org.springframework.data.mongodb.test.util.ReplicaSet;
import org.springframework.data.util.Version;
import com.mongodb.client.model.changestream.ChangeStreamDocument; import com.mongodb.client.model.changestream.ChangeStreamDocument;
import com.mongodb.client.model.changestream.FullDocument; import com.mongodb.client.model.changestream.FullDocument;
@ -65,6 +69,7 @@ import com.mongodb.client.model.changestream.FullDocument;
public class ChangeStreamTests { public class ChangeStreamTests {
public static @ClassRule TestRule replSet = ReplicaSet.required(); public static @ClassRule TestRule replSet = ReplicaSet.required();
@Rule public MongoVersionRule mongoVersion = MongoVersionRule.atLeast(Version.parse("3.6"));
static ThreadPoolExecutor executor; static ThreadPoolExecutor executor;
MongoTemplate template; MongoTemplate template;
@ -161,6 +166,7 @@ public class ChangeStreamTests {
} }
@Test // DATAMONGO-1803 @Test // DATAMONGO-1803
@MongoVersion(asOf = "4.0")
public void useAggregationToFilterMessages() throws InterruptedException { public void useAggregationToFilterMessages() throws InterruptedException {
CollectingMessageListener<ChangeStreamDocument<Document>, User> messageListener = new CollectingMessageListener<>(); CollectingMessageListener<ChangeStreamDocument<Document>, User> messageListener = new CollectingMessageListener<>();
@ -406,6 +412,7 @@ public class ChangeStreamTests {
} }
@Test // DATAMONGO-2012, DATAMONGO-2113 @Test // DATAMONGO-2012, DATAMONGO-2113
@MongoVersion(asOf = "4.0")
public void resumeAtTimestampCorrectly() throws InterruptedException { public void resumeAtTimestampCorrectly() throws InterruptedException {
CollectingMessageListener<ChangeStreamDocument<Document>, User> messageListener1 = new CollectingMessageListener<>(); CollectingMessageListener<ChangeStreamDocument<Document>, User> messageListener1 = new CollectingMessageListener<>();

3
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/gridfs/ReactiveGridFsResourceUnitTests.java

@ -31,6 +31,8 @@ import com.mongodb.client.gridfs.model.GridFSFile;
import com.mongodb.reactivestreams.client.gridfs.GridFSDownloadPublisher; import com.mongodb.reactivestreams.client.gridfs.GridFSDownloadPublisher;
/** /**
* Unit tests for {@link ReactiveGridFsResource}.
*
* @author Christoph Strobl * @author Christoph Strobl
*/ */
class ReactiveGridFsResourceUnitTests { class ReactiveGridFsResourceUnitTests {
@ -91,7 +93,6 @@ class ReactiveGridFsResourceUnitTests {
} }
}); });
} }
} }
} }

8
spring-data-mongodb/src/test/java/org/springframework/data/mongodb/gridfs/ReactiveGridFsTemplateTests.java

@ -27,7 +27,6 @@ import reactor.test.StepVerifier;
import java.io.IOException; import java.io.IOException;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.util.Arrays;
import org.bson.BsonObjectId; import org.bson.BsonObjectId;
import org.bson.Document; import org.bson.Document;
@ -35,7 +34,7 @@ import org.bson.types.ObjectId;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.reactivestreams.Publisher;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource; import org.springframework.core.io.Resource;
@ -58,7 +57,6 @@ import org.springframework.util.StreamUtils;
import com.mongodb.client.gridfs.model.GridFSFile; import com.mongodb.client.gridfs.model.GridFSFile;
import com.mongodb.internal.HexUtils; import com.mongodb.internal.HexUtils;
import com.mongodb.reactivestreams.client.internal.Publishers;
/** /**
* Integration tests for {@link ReactiveGridFsTemplate}. * Integration tests for {@link ReactiveGridFsTemplate}.
@ -293,10 +291,6 @@ public class ReactiveGridFsTemplateTests {
String version; String version;
} }
private static Publisher<ByteBuffer> toPublisher(final ByteBuffer... byteBuffers) {
return Publishers.publishAndFlatten(callback -> callback.onResult(Arrays.asList(byteBuffers), null));
}
public static String readToString(DataBuffer dataBuffer) { public static String readToString(DataBuffer dataBuffer) {
try { try {
return FileCopyUtils.copyToString(new InputStreamReader(dataBuffer.asInputStream())); return FileCopyUtils.copyToString(new InputStreamReader(dataBuffer.asInputStream()));

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

@ -21,28 +21,28 @@ 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.Query.*;
import org.junit.Before; import org.junit.Before;
import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.dao.OptimisticLockingFailureException; import org.springframework.dao.OptimisticLockingFailureException;
import org.springframework.data.mongodb.MongoTransactionManager; import org.springframework.data.mongodb.MongoTransactionManager;
import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration; import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration;
import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.mapping.BasicMongoPersistentEntity;
import org.springframework.data.mongodb.core.mapping.MongoPersistentEntity; import org.springframework.data.mongodb.core.mapping.MongoPersistentEntity;
import org.springframework.data.mongodb.repository.VersionedPerson; import org.springframework.data.mongodb.repository.VersionedPerson;
import org.springframework.data.mongodb.repository.query.MongoEntityInformation; import org.springframework.data.mongodb.repository.query.MongoEntityInformation;
import org.springframework.data.mongodb.test.util.MongoTestUtils; import org.springframework.data.mongodb.test.util.MongoTestUtils;
import org.springframework.data.mongodb.test.util.MongoVersion; import org.springframework.data.mongodb.test.util.MongoVersion;
import org.springframework.data.mongodb.test.util.MongoVersionRule;
import org.springframework.data.mongodb.test.util.ReplicaSet; import org.springframework.data.mongodb.test.util.ReplicaSet;
import org.springframework.data.util.ClassTypeInformation;
import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.transaction.support.TransactionTemplate; import org.springframework.transaction.support.TransactionTemplate;
import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
/** /**
* @author Christoph Strobl * @author Christoph Strobl
@ -66,6 +66,8 @@ public class SimpleMongoRepositoryVersionedEntityTests {
} }
} }
@Rule public MongoVersionRule mongoVersion = MongoVersionRule.any();
@Autowired // @Autowired //
private MongoTemplate template; private MongoTemplate template;

Loading…
Cancel
Save