From 7c25675cbb393ce9918f2546d0d1b306281f7777 Mon Sep 17 00:00:00 2001 From: Mark Paluch Date: Fri, 26 Jul 2019 10:00:53 +0200 Subject: [PATCH] DATAMONGO-2326 - Upgrade to MongoDB Reactive Streams Driver 1.12.0-rc0. --- pom.xml | 2 +- .../core/ReactiveMongoTemplateUnitTests.java | 34 +++++++++---------- ...iveSessionBoundMongoTemplateUnitTests.java | 21 +++++++----- 3 files changed, 30 insertions(+), 27 deletions(-) diff --git a/pom.xml b/pom.xml index 728c77f16..08da7a446 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ spring-data-mongodb 2.2.0.BUILD-SNAPSHOT 3.11.0-rc0 - 1.11.0 + 1.12.0-rc0 1.19 diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateUnitTests.java index aabc64ff7..01e6e7f7e 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveMongoTemplateUnitTests.java @@ -126,15 +126,15 @@ public class ReactiveMongoTemplateUnitTests { when(collection.aggregate(anyList())).thenReturn(aggregatePublisher); when(collection.aggregate(anyList(), any(Class.class))).thenReturn(aggregatePublisher); when(collection.count(any(), any(CountOptions.class))).thenReturn(Mono.just(0L)); - when(collection.updateOne(any(), any(), any(UpdateOptions.class))).thenReturn(updateResultPublisher); - when(collection.updateMany(any(Bson.class), any(), any())).thenReturn(updateResultPublisher); - when(collection.findOneAndUpdate(any(), any(), any(FindOneAndUpdateOptions.class))) + when(collection.updateOne(any(), any(Bson.class), any(UpdateOptions.class))).thenReturn(updateResultPublisher); + when(collection.updateMany(any(Bson.class), any(Bson.class), any())).thenReturn(updateResultPublisher); + when(collection.findOneAndUpdate(any(), any(Bson.class), any(FindOneAndUpdateOptions.class))) .thenReturn(findAndUpdatePublisher); when(collection.findOneAndReplace(any(Bson.class), any(), any())).thenReturn(findPublisher); when(collection.findOneAndDelete(any(), any(FindOneAndDeleteOptions.class))).thenReturn(findPublisher); when(collection.distinct(anyString(), any(Document.class), any())).thenReturn(distinctPublisher); when(collection.deleteMany(any(Bson.class), any())).thenReturn(deletePublisher); - when(collection.findOneAndUpdate(any(), any(), any(FindOneAndUpdateOptions.class))) + when(collection.findOneAndUpdate(any(), any(Bson.class), any(FindOneAndUpdateOptions.class))) .thenReturn(findAndUpdatePublisher); when(collection.mapReduce(anyString(), anyString(), any())).thenReturn(mapReducePublisher); when(collection.replaceOne(any(Bson.class), any(), any(ReplaceOptions.class))).thenReturn(updateResultPublisher); @@ -222,13 +222,13 @@ public class ReactiveMongoTemplateUnitTests { @Test // DATAMONGO-1518 public void findAndModfiyShoudUseCollationWhenPresent() { - when(collection.findOneAndUpdate(any(Bson.class), any(), any())).thenReturn(Mono.empty()); + when(collection.findOneAndUpdate(any(Bson.class), any(Bson.class), any())).thenReturn(Mono.empty()); template.findAndModify(new BasicQuery("{}").collation(Collation.of("fr")), new Update(), AutogenerateableId.class) .subscribe(); ArgumentCaptor options = ArgumentCaptor.forClass(FindOneAndUpdateOptions.class); - verify(collection).findOneAndUpdate(any(), any(), options.capture()); + verify(collection).findOneAndUpdate(any(), any(Bson.class), options.capture()); assertThat(options.getValue().getCollation().getLocale()).isEqualTo("fr"); } @@ -263,13 +263,13 @@ public class ReactiveMongoTemplateUnitTests { @Test // DATAMONGO-1518 public void updateOneShouldUseCollationWhenPresent() { - when(collection.updateOne(any(Bson.class), any(), any())).thenReturn(Mono.empty()); + when(collection.updateOne(any(Bson.class), any(Bson.class), any())).thenReturn(Mono.empty()); template.updateFirst(new BasicQuery("{}").collation(Collation.of("fr")), new Update().set("foo", "bar"), AutogenerateableId.class).subscribe(); ArgumentCaptor options = ArgumentCaptor.forClass(UpdateOptions.class); - verify(collection).updateOne(any(), any(), options.capture()); + verify(collection).updateOne(any(), any(Bson.class), options.capture()); assertThat(options.getValue().getCollation().getLocale()).isEqualTo("fr"); } @@ -277,13 +277,13 @@ public class ReactiveMongoTemplateUnitTests { @Test // DATAMONGO-1518 public void updateManyShouldUseCollationWhenPresent() { - when(collection.updateMany(any(Bson.class), any(), any())).thenReturn(Mono.empty()); + when(collection.updateMany(any(Bson.class), any(Bson.class), any())).thenReturn(Mono.empty()); template.updateMulti(new BasicQuery("{}").collation(Collation.of("fr")), new Update().set("foo", "bar"), AutogenerateableId.class).subscribe(); ArgumentCaptor options = ArgumentCaptor.forClass(UpdateOptions.class); - verify(collection).updateMany(any(), any(), options.capture()); + verify(collection).updateMany(any(), any(Bson.class), options.capture()); assertThat(options.getValue().getCollation().getLocale()).isEqualTo("fr"); @@ -410,7 +410,7 @@ public class ReactiveMongoTemplateUnitTests { EntityWithListOfSimple.class).subscribe(); ArgumentCaptor options = ArgumentCaptor.forClass(UpdateOptions.class); - verify(collection).updateOne(any(), any(), options.capture()); + verify(collection).updateOne(any(), any(Bson.class), options.capture()); Assertions.assertThat((List) options.getValue().getArrayFilters()) .contains(new org.bson.Document("element", new Document("$gte", 100))); @@ -424,7 +424,7 @@ public class ReactiveMongoTemplateUnitTests { EntityWithListOfSimple.class).subscribe(); ArgumentCaptor options = ArgumentCaptor.forClass(FindOneAndUpdateOptions.class); - verify(collection).findOneAndUpdate(any(), any(), options.capture()); + verify(collection).findOneAndUpdate(any(), any(Bson.class), options.capture()); Assertions.assertThat((List) options.getValue().getArrayFilters()) .contains(new org.bson.Document("element", new Document("$gte", 100))); @@ -468,7 +468,7 @@ public class ReactiveMongoTemplateUnitTests { template.findAndModify(new BasicQuery("{}"), new Update(), Sith.class).subscribe(); ArgumentCaptor options = ArgumentCaptor.forClass(FindOneAndUpdateOptions.class); - verify(collection).findOneAndUpdate(any(), any(), options.capture()); + verify(collection).findOneAndUpdate(any(), any(Bson.class), options.capture()); assertThat(options.getValue().getCollation()) .isEqualTo(com.mongodb.client.model.Collation.builder().locale("de_AT").build()); @@ -622,7 +622,7 @@ public class ReactiveMongoTemplateUnitTests { template.updateFirst(new BasicQuery("{}"), Update.update("foo", "bar"), Sith.class).subscribe(); ArgumentCaptor options = ArgumentCaptor.forClass(UpdateOptions.class); - verify(collection).updateOne(any(), any(), options.capture()); + verify(collection).updateOne(any(), any(Bson.class), options.capture()); assertThat(options.getValue().getCollation()) .isEqualTo(com.mongodb.client.model.Collation.builder().locale("de_AT").build()); @@ -635,7 +635,7 @@ public class ReactiveMongoTemplateUnitTests { .subscribe(); ArgumentCaptor options = ArgumentCaptor.forClass(UpdateOptions.class); - verify(collection).updateOne(any(), any(), options.capture()); + verify(collection).updateOne(any(), any(Bson.class), options.capture()); assertThat(options.getValue().getCollation()) .isEqualTo(com.mongodb.client.model.Collation.builder().locale("fr").build()); @@ -647,7 +647,7 @@ public class ReactiveMongoTemplateUnitTests { template.updateMulti(new BasicQuery("{}"), Update.update("foo", "bar"), Sith.class).subscribe(); ArgumentCaptor options = ArgumentCaptor.forClass(UpdateOptions.class); - verify(collection).updateMany(any(), any(), options.capture()); + verify(collection).updateMany(any(), any(Bson.class), options.capture()); assertThat(options.getValue().getCollation()) .isEqualTo(com.mongodb.client.model.Collation.builder().locale("de_AT").build()); @@ -660,7 +660,7 @@ public class ReactiveMongoTemplateUnitTests { .subscribe(); ArgumentCaptor options = ArgumentCaptor.forClass(UpdateOptions.class); - verify(collection).updateMany(any(), any(), options.capture()); + verify(collection).updateMany(any(), any(Bson.class), options.capture()); assertThat(options.getValue().getCollation()) .isEqualTo(com.mongodb.client.model.Collation.builder().locale("fr").build()); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveSessionBoundMongoTemplateUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveSessionBoundMongoTemplateUnitTests.java index b0233611f..bee7bee0f 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveSessionBoundMongoTemplateUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/ReactiveSessionBoundMongoTemplateUnitTests.java @@ -16,7 +16,7 @@ package org.springframework.data.mongodb.core; import static org.assertj.core.api.Assertions.*; -import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; import static org.mockito.Mockito.any; import static org.mockito.Mockito.anyBoolean; @@ -29,12 +29,14 @@ import java.lang.reflect.Proxy; import org.bson.Document; import org.bson.codecs.BsonValueCodec; import org.bson.codecs.configuration.CodecRegistry; +import org.bson.conversions.Bson; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; import org.reactivestreams.Publisher; + import org.springframework.data.geo.Metrics; import org.springframework.data.geo.Point; import org.springframework.data.mongodb.ReactiveMongoDatabaseFactory; @@ -111,11 +113,12 @@ public class ReactiveSessionBoundMongoTemplateUnitTests { when(collection.aggregate(any(ClientSession.class), anyList(), any(Class.class))).thenReturn(aggregatePublisher); when(collection.count(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(), any())).thenReturn(resultPublisher); - when(collection.distinct(any(ClientSession.class), any(), any(), any())).thenReturn(distinctPublisher); - when(collection.updateOne(any(ClientSession.class), any(), any(), any(UpdateOptions.class))) + when(collection.findOneAndUpdate(any(ClientSession.class), any(), any(Bson.class), any())) .thenReturn(resultPublisher); - when(collection.updateMany(any(ClientSession.class), any(), any(), any(UpdateOptions.class))) + when(collection.distinct(any(ClientSession.class), any(), any(Bson.class), any())).thenReturn(distinctPublisher); + when(collection.updateOne(any(ClientSession.class), any(), any(Bson.class), any(UpdateOptions.class))) + .thenReturn(resultPublisher); + when(collection.updateMany(any(ClientSession.class), any(), any(Bson.class), any(UpdateOptions.class))) .thenReturn(resultPublisher); when(collection.dropIndex(any(ClientSession.class), anyString())).thenReturn(resultPublisher); when(collection.mapReduce(any(ClientSession.class), any(), any(), any())).thenReturn(mapReducePublisher); @@ -245,7 +248,7 @@ public class ReactiveSessionBoundMongoTemplateUnitTests { template.findAndModify(new Query(), new Update().set("foo", "bar"), Person.class).subscribe(); - verify(collection).findOneAndUpdate(eq(clientSession), any(), any(), any(FindOneAndUpdateOptions.class)); + verify(collection).findOneAndUpdate(eq(clientSession), any(), any(Bson.class), any(FindOneAndUpdateOptions.class)); } @Test // DATAMONGO-1880 @@ -278,7 +281,7 @@ public class ReactiveSessionBoundMongoTemplateUnitTests { template.updateFirst(new Query(), Update.update("foo", "bar"), Person.class).subscribe(); - verify(collection).updateOne(eq(clientSession), any(), any(), any(UpdateOptions.class)); + verify(collection).updateOne(eq(clientSession), any(), any(Bson.class), any(UpdateOptions.class)); } @Test // DATAMONGO-1880 @@ -286,7 +289,7 @@ public class ReactiveSessionBoundMongoTemplateUnitTests { template.updateMulti(new Query(), Update.update("foo", "bar"), Person.class).subscribe(); - verify(collection).updateMany(eq(clientSession), any(), any(), any(UpdateOptions.class)); + verify(collection).updateMany(eq(clientSession), any(), any(Bson.class), any(UpdateOptions.class)); } @Test // DATAMONGO-1880 @@ -294,7 +297,7 @@ public class ReactiveSessionBoundMongoTemplateUnitTests { template.upsert(new Query(), Update.update("foo", "bar"), Person.class).subscribe(); - verify(collection).updateOne(eq(clientSession), any(), any(), any(UpdateOptions.class)); + verify(collection).updateOne(eq(clientSession), any(), any(Bson.class), any(UpdateOptions.class)); } @Test // DATAMONGO-1880