@@ -34,7 +34,8 @@ import com.mongodb.client.gridfs.model.GridFSFile;
|
||||
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 Christoph Strobl
|
||||
@@ -63,6 +64,8 @@ public class ReactiveGridFsResource {
|
||||
*
|
||||
* @param filename filename of the absent resource.
|
||||
* @param downloadPublisher
|
||||
* @param dataBufferFactory
|
||||
* @since 3.0
|
||||
*/
|
||||
ReactiveGridFsResource(String filename, @Nullable GridFSDownloadPublisher downloadPublisher,
|
||||
DataBufferFactory dataBufferFactory) {
|
||||
|
||||
@@ -24,6 +24,7 @@ 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;
|
||||
@@ -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.Query;
|
||||
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.test.annotation.DirtiesContext;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
@@ -99,6 +102,7 @@ public class ReactiveMongoTemplateTests {
|
||||
@Autowired SimpleReactiveMongoDatabaseFactory factory;
|
||||
@Autowired ReactiveMongoTemplate template;
|
||||
@Autowired ConfigurableApplicationContext context;
|
||||
@Rule public MongoVersionRule mongoVersion = MongoVersionRule.any();
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
@@ -1614,6 +1618,7 @@ public class ReactiveMongoTemplateTests {
|
||||
}
|
||||
|
||||
@Test // DATAMONGO-2012
|
||||
@MongoVersion(asOf = "4.0")
|
||||
public void watchesDatabaseCorrectly() throws InterruptedException {
|
||||
|
||||
Assumptions.assumeThat(ReplicaSet.required().runsAsReplicaSet()).isTrue();
|
||||
@@ -1655,6 +1660,7 @@ public class ReactiveMongoTemplateTests {
|
||||
}
|
||||
|
||||
@Test // DATAMONGO-2012, DATAMONGO-2113
|
||||
@MongoVersion(asOf = "4.0")
|
||||
public void resumesAtTimestampCorrectly() throws InterruptedException {
|
||||
|
||||
Assumptions.assumeThat(ReplicaSet.required().runsAsReplicaSet()).isTrue();
|
||||
@@ -1705,6 +1711,7 @@ public class ReactiveMongoTemplateTests {
|
||||
}
|
||||
|
||||
@Test // DATAMONGO-2115
|
||||
@MongoVersion(asOf = "4.0")
|
||||
public void resumesAtBsonTimestampCorrectly() throws InterruptedException {
|
||||
|
||||
Assumptions.assumeThat(ReplicaSet.required().runsAsReplicaSet()).isTrue();
|
||||
|
||||
@@ -39,6 +39,7 @@ import org.bson.Document;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.ClassRule;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.rules.TestRule;
|
||||
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.query.Query;
|
||||
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.util.Version;
|
||||
@@ -81,9 +83,10 @@ import com.mongodb.client.MongoDatabase;
|
||||
*/
|
||||
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 @Rule MongoVersionRule REQUIRES_AT_LEAST_3_6_0 = MongoVersionRule.atLeast(Version.parse("3.6.0"));
|
||||
|
||||
MongoClient client;
|
||||
MongoTemplate template;
|
||||
SessionBoundMongoTemplate sessionBoundTemplate;
|
||||
@@ -259,6 +262,7 @@ public class SessionBoundMongoTemplateTests {
|
||||
}
|
||||
|
||||
@Test // DATAMONGO-2001
|
||||
@MongoVersion(asOf = "4.0")
|
||||
public void countShouldWorkInTransactions() {
|
||||
|
||||
if (!template.collectionExists(Person.class)) {
|
||||
@@ -283,6 +287,7 @@ public class SessionBoundMongoTemplateTests {
|
||||
}
|
||||
|
||||
@Test // DATAMONGO-2012
|
||||
@MongoVersion(asOf = "4.0")
|
||||
public void countWithGeoInTransaction() {
|
||||
|
||||
if (!template.collectionExists(Person.class)) {
|
||||
@@ -307,6 +312,7 @@ public class SessionBoundMongoTemplateTests {
|
||||
}
|
||||
|
||||
@Test // DATAMONGO-2001
|
||||
@MongoVersion(asOf = "4.0")
|
||||
public void countShouldReturnIsolatedCount() throws InterruptedException {
|
||||
|
||||
if (!template.collectionExists(Person.class)) {
|
||||
|
||||
@@ -39,6 +39,7 @@ import org.junit.AfterClass;
|
||||
import org.junit.Before;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.ClassRule;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.rules.TestRule;
|
||||
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.Update;
|
||||
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.util.Version;
|
||||
|
||||
import com.mongodb.client.model.changestream.ChangeStreamDocument;
|
||||
import com.mongodb.client.model.changestream.FullDocument;
|
||||
@@ -65,6 +69,7 @@ import com.mongodb.client.model.changestream.FullDocument;
|
||||
public class ChangeStreamTests {
|
||||
|
||||
public static @ClassRule TestRule replSet = ReplicaSet.required();
|
||||
@Rule public MongoVersionRule mongoVersion = MongoVersionRule.atLeast(Version.parse("3.6"));
|
||||
|
||||
static ThreadPoolExecutor executor;
|
||||
MongoTemplate template;
|
||||
@@ -161,6 +166,7 @@ public class ChangeStreamTests {
|
||||
}
|
||||
|
||||
@Test // DATAMONGO-1803
|
||||
@MongoVersion(asOf = "4.0")
|
||||
public void useAggregationToFilterMessages() throws InterruptedException {
|
||||
|
||||
CollectingMessageListener<ChangeStreamDocument<Document>, User> messageListener = new CollectingMessageListener<>();
|
||||
@@ -406,6 +412,7 @@ public class ChangeStreamTests {
|
||||
}
|
||||
|
||||
@Test // DATAMONGO-2012, DATAMONGO-2113
|
||||
@MongoVersion(asOf = "4.0")
|
||||
public void resumeAtTimestampCorrectly() throws InterruptedException {
|
||||
|
||||
CollectingMessageListener<ChangeStreamDocument<Document>, User> messageListener1 = new CollectingMessageListener<>();
|
||||
|
||||
@@ -31,6 +31,8 @@ import com.mongodb.client.gridfs.model.GridFSFile;
|
||||
import com.mongodb.reactivestreams.client.gridfs.GridFSDownloadPublisher;
|
||||
|
||||
/**
|
||||
* Unit tests for {@link ReactiveGridFsResource}.
|
||||
*
|
||||
* @author Christoph Strobl
|
||||
*/
|
||||
class ReactiveGridFsResourceUnitTests {
|
||||
@@ -91,7 +93,6 @@ class ReactiveGridFsResourceUnitTests {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,7 +27,6 @@ import reactor.test.StepVerifier;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.util.Arrays;
|
||||
|
||||
import org.bson.BsonObjectId;
|
||||
import org.bson.Document;
|
||||
@@ -35,7 +34,7 @@ import org.bson.types.ObjectId;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.reactivestreams.Publisher;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
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.internal.HexUtils;
|
||||
import com.mongodb.reactivestreams.client.internal.Publishers;
|
||||
|
||||
/**
|
||||
* Integration tests for {@link ReactiveGridFsTemplate}.
|
||||
@@ -293,10 +291,6 @@ public class ReactiveGridFsTemplateTests {
|
||||
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) {
|
||||
try {
|
||||
return FileCopyUtils.copyToString(new InputStreamReader(dataBuffer.asInputStream()));
|
||||
|
||||
@@ -21,28 +21,28 @@ import static org.springframework.data.mongodb.core.query.Criteria.*;
|
||||
import static org.springframework.data.mongodb.core.query.Query.*;
|
||||
|
||||
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.annotation.Configuration;
|
||||
import org.springframework.dao.OptimisticLockingFailureException;
|
||||
import org.springframework.data.mongodb.MongoTransactionManager;
|
||||
import org.springframework.data.mongodb.config.AbstractMongoClientConfiguration;
|
||||
import org.springframework.data.mongodb.core.MongoTemplate;
|
||||
import org.springframework.data.mongodb.core.mapping.BasicMongoPersistentEntity;
|
||||
import org.springframework.data.mongodb.core.mapping.MongoPersistentEntity;
|
||||
import org.springframework.data.mongodb.repository.VersionedPerson;
|
||||
import org.springframework.data.mongodb.repository.query.MongoEntityInformation;
|
||||
import org.springframework.data.mongodb.test.util.MongoTestUtils;
|
||||
import org.springframework.data.mongodb.test.util.MongoVersion;
|
||||
import org.springframework.data.mongodb.test.util.MongoVersionRule;
|
||||
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.junit4.SpringRunner;
|
||||
import org.springframework.transaction.support.TransactionTemplate;
|
||||
|
||||
import com.mongodb.client.MongoClient;
|
||||
import com.mongodb.client.MongoClients;
|
||||
|
||||
/**
|
||||
* @author Christoph Strobl
|
||||
@@ -66,6 +66,8 @@ public class SimpleMongoRepositoryVersionedEntityTests {
|
||||
}
|
||||
}
|
||||
|
||||
@Rule public MongoVersionRule mongoVersion = MongoVersionRule.any();
|
||||
|
||||
@Autowired //
|
||||
private MongoTemplate template;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user