Skip to content

Commit a30ee07

Browse files
DATAMONGO-2257 - Polishing.
Enable tests for issues already resolved.
1 parent cc45b4e commit a30ee07

File tree

4 files changed

+27
-24
lines changed

4 files changed

+27
-24
lines changed

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

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
import org.bson.conversions.Bson;
3434
import org.bson.types.ObjectId;
3535
import org.junit.Before;
36-
import org.junit.Ignore;
3736
import org.junit.Test;
3837
import org.junit.runner.RunWith;
3938
import org.mockito.ArgumentCaptor;
@@ -47,6 +46,7 @@
4746
import org.springframework.data.mongodb.core.convert.NoOpDbRefResolver;
4847
import org.springframework.data.mongodb.core.mapping.Field;
4948
import org.springframework.data.mongodb.core.mapping.MongoMappingContext;
49+
import org.springframework.data.mongodb.core.mapreduce.MapReduceOptions;
5050
import org.springframework.data.mongodb.core.query.BasicQuery;
5151
import org.springframework.data.mongodb.core.query.Collation;
5252
import org.springframework.data.mongodb.core.query.Criteria;
@@ -63,6 +63,7 @@
6363
import com.mongodb.client.model.UpdateOptions;
6464
import com.mongodb.reactivestreams.client.AggregatePublisher;
6565
import com.mongodb.reactivestreams.client.FindPublisher;
66+
import com.mongodb.reactivestreams.client.MapReducePublisher;
6667
import com.mongodb.reactivestreams.client.MongoClient;
6768
import com.mongodb.reactivestreams.client.MongoCollection;
6869
import com.mongodb.reactivestreams.client.MongoDatabase;
@@ -87,6 +88,7 @@ public class ReactiveMongoTemplateUnitTests {
8788
@Mock Publisher runCommandPublisher;
8889
@Mock Publisher updatePublisher;
8990
@Mock Publisher findAndUpdatePublisher;
91+
@Mock MapReducePublisher mapReducePublisher;
9092

9193
MongoExceptionTranslator exceptionTranslator = new MongoExceptionTranslator();
9294
MappingMongoConverter converter;
@@ -106,7 +108,9 @@ public void setUp() {
106108
when(collection.aggregate(anyList(), any(Class.class))).thenReturn(aggregatePublisher);
107109
when(collection.count(any(), any(CountOptions.class))).thenReturn(Mono.just(0L));
108110
when(collection.updateOne(any(), any(), any(UpdateOptions.class))).thenReturn(updatePublisher);
109-
when(collection.findOneAndUpdate(any(), any(), any(FindOneAndUpdateOptions.class))).thenReturn(findAndUpdatePublisher);
111+
when(collection.findOneAndUpdate(any(), any(), any(FindOneAndUpdateOptions.class)))
112+
.thenReturn(findAndUpdatePublisher);
113+
when(collection.mapReduce(anyString(), anyString(), any())).thenReturn(mapReducePublisher);
110114
when(findPublisher.projection(any())).thenReturn(findPublisher);
111115
when(findPublisher.limit(anyInt())).thenReturn(findPublisher);
112116
when(findPublisher.collation(any())).thenReturn(findPublisher);
@@ -271,14 +275,13 @@ public void replaceOneShouldUseCollationWhenPresent() {
271275
assertThat(options.getValue().getCollation().getLocale(), is("fr"));
272276
}
273277

274-
@Ignore("currently no mapReduce")
275-
@Test // DATAMONGO-1518
278+
@Test // DATAMONGO-1518, DATAMONGO-2257
276279
public void mapReduceShouldUseCollationWhenPresent() {
277280

278-
// template.mapReduce("", "", "", MapReduceOptions.options().collation(Collation.of("fr")),
279-
// AutogenerateableId.class).subscribe();
280-
//
281-
// verify(mapReduceIterable).collation(eq(com.mongodb.client.model.Collation.builder().locale("fr").build()));
281+
template.mapReduce(new BasicQuery("{}"), AutogenerateableId.class, AutogenerateableId.class, "", "",
282+
MapReduceOptions.options().collation(Collation.of("fr"))).subscribe();
283+
284+
verify(mapReducePublisher).collation(eq(com.mongodb.client.model.Collation.builder().locale("fr").build()));
282285
}
283286

284287
@Test // DATAMONGO-1518

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

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@
4444
import org.springframework.data.mongodb.core.convert.MappingMongoConverter;
4545
import org.springframework.data.mongodb.core.convert.NoOpDbRefResolver;
4646
import org.springframework.data.mongodb.core.mapping.MongoMappingContext;
47+
import org.springframework.data.mongodb.core.mapreduce.MapReduceOptions;
48+
import org.springframework.data.mongodb.core.query.BasicQuery;
4749
import org.springframework.data.mongodb.core.query.NearQuery;
4850
import org.springframework.data.mongodb.core.query.Query;
4951
import org.springframework.data.mongodb.core.query.Update;
@@ -56,6 +58,7 @@
5658
import com.mongodb.reactivestreams.client.ClientSession;
5759
import com.mongodb.reactivestreams.client.DistinctPublisher;
5860
import com.mongodb.reactivestreams.client.FindPublisher;
61+
import com.mongodb.reactivestreams.client.MapReducePublisher;
5962
import com.mongodb.reactivestreams.client.MongoClient;
6063
import com.mongodb.reactivestreams.client.MongoCollection;
6164
import com.mongodb.reactivestreams.client.MongoDatabase;
@@ -85,6 +88,7 @@ public class ReactiveSessionBoundMongoTemplateUnitTests {
8588
@Mock AggregatePublisher aggregatePublisher;
8689
@Mock DistinctPublisher distinctPublisher;
8790
@Mock Publisher resultPublisher;
91+
@Mock MapReducePublisher mapReducePublisher;
8892
@Mock MongoClient client;
8993
@Mock CodecRegistry codecRegistry;
9094

@@ -115,6 +119,7 @@ public void setUp() {
115119
when(collection.updateMany(any(ClientSession.class), any(), any(), any(UpdateOptions.class)))
116120
.thenReturn(resultPublisher);
117121
when(collection.dropIndex(any(ClientSession.class), anyString())).thenReturn(resultPublisher);
122+
when(collection.mapReduce(any(ClientSession.class), any(), any(), any())).thenReturn(mapReducePublisher);
118123
when(findPublisher.projection(any())).thenReturn(findPublisher);
119124
when(findPublisher.limit(anyInt())).thenReturn(findPublisher);
120125
when(findPublisher.collation(any())).thenReturn(findPublisher);
@@ -269,11 +274,11 @@ public void groupShouldUseProxiedDatabase() {
269274
verify(database).runCommand(eq(clientSession), any(), eq(Document.class));
270275
}
271276

272-
@Test // DATAMONGO-1880, DATAMONGO-1890
273-
@Ignore("No map reduce yet on template - DATAMONGO-1890")
277+
@Test // DATAMONGO-1880, DATAMONGO-1890, DATAMONGO-257
274278
public void mapReduceShouldUseProxiedCollection() {
275279

276-
// template.mapReduce(COLLECTION_NAME, "foo", "bar", Person.class);
280+
template.mapReduce(new BasicQuery("{}"), Person.class, COLLECTION_NAME, Person.class, "foo", "bar",
281+
MapReduceOptions.options()).subscribe();
277282

278283
verify(collection).mapReduce(eq(clientSession), anyString(), anyString(), eq(Document.class));
279284
}

spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/AbstractPersonRepositoryIntegrationTests.java

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@
3636

3737
import org.hamcrest.Matchers;
3838
import org.junit.Before;
39-
import org.junit.Ignore;
4039
import org.junit.Rule;
4140
import org.junit.Test;
4241
import org.junit.rules.ExpectedException;
@@ -1274,15 +1273,8 @@ public void annotatedQueryShouldAllowPositionalParameterInFieldsProjection() {
12741273
assertThat(target.getShippingAddresses()).hasSize(1);
12751274
}
12761275

1277-
@Test // DATAMONGO-2149, DATAMONGO-2154
1278-
@Ignore("This one fails due to Json parse exception within MongoDB")
1276+
@Test // DATAMONGO-2149, DATAMONGO-2154, DATAMONGO-2199
12791277
public void annotatedQueryShouldAllowPositionalParameterInFieldsProjectionWithDbRef() {
1280-
1281-
// the following needs to be added to PersonRepository.
1282-
1283-
// @Query(value = "{ 'fans' : { '$elemMatch' : { '$ref' : 'user' } } }", fields = "{ 'fans.$': ?0 }")
1284-
// Person findWithArrayPositionInProjectionWithDbRef(int position);
1285-
12861278
List<User> userList = IntStream.range(0, 10).mapToObj(it -> {
12871279

12881280
User user = new User();
@@ -1297,9 +1289,9 @@ public void annotatedQueryShouldAllowPositionalParameterInFieldsProjectionWithDb
12971289
alicia.setFans(userList);
12981290
operations.save(alicia);
12991291

1300-
// Person target = repository.findWithArrayPositionInProjectionWithDbRef(1);
1301-
//
1302-
// assertThat(target).isNotNull();
1303-
// assertThat(target.getShippingAddresses()).hasSize(1);
1292+
Person target = repository.findWithArrayPositionInProjectionWithDbRef(1);
1293+
1294+
assertThat(target).isNotNull();
1295+
assertThat(target.getFans()).hasSize(1);
13041296
}
13051297
}

spring-data-mongodb/src/test/java/org/springframework/data/mongodb/repository/PersonRepository.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -362,4 +362,7 @@ Page<Person> findByCustomQueryLastnameAndAddressStreetInList(String lastname, Li
362362

363363
@Query(value = "{ 'shippingAddresses' : { '$elemMatch' : { 'city' : { '$eq' : 'lnz' } } } }", fields = "{ 'shippingAddresses.$': ?0 }")
364364
Person findWithArrayPositionInProjection(int position);
365+
366+
@Query(value = "{ 'fans' : { '$elemMatch' : { '$ref' : 'user' } } }", fields = "{ 'fans.$': ?0 }")
367+
Person findWithArrayPositionInProjectionWithDbRef(int position);
365368
}

0 commit comments

Comments
 (0)