DATAMONGO-2257 - Polishing.

Enable tests for issues already resolved.
This commit is contained in:
Christoph Strobl
2019-04-15 08:30:27 +02:00
parent cc45b4e081
commit a30ee07b4a
4 changed files with 27 additions and 24 deletions

View File

@@ -33,7 +33,6 @@ import org.bson.Document;
import org.bson.conversions.Bson;
import org.bson.types.ObjectId;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor;
@@ -47,6 +46,7 @@ import org.springframework.data.mongodb.core.convert.MappingMongoConverter;
import org.springframework.data.mongodb.core.convert.NoOpDbRefResolver;
import org.springframework.data.mongodb.core.mapping.Field;
import org.springframework.data.mongodb.core.mapping.MongoMappingContext;
import org.springframework.data.mongodb.core.mapreduce.MapReduceOptions;
import org.springframework.data.mongodb.core.query.BasicQuery;
import org.springframework.data.mongodb.core.query.Collation;
import org.springframework.data.mongodb.core.query.Criteria;
@@ -63,6 +63,7 @@ import com.mongodb.client.model.ReplaceOptions;
import com.mongodb.client.model.UpdateOptions;
import com.mongodb.reactivestreams.client.AggregatePublisher;
import com.mongodb.reactivestreams.client.FindPublisher;
import com.mongodb.reactivestreams.client.MapReducePublisher;
import com.mongodb.reactivestreams.client.MongoClient;
import com.mongodb.reactivestreams.client.MongoCollection;
import com.mongodb.reactivestreams.client.MongoDatabase;
@@ -87,6 +88,7 @@ public class ReactiveMongoTemplateUnitTests {
@Mock Publisher runCommandPublisher;
@Mock Publisher updatePublisher;
@Mock Publisher findAndUpdatePublisher;
@Mock MapReducePublisher mapReducePublisher;
MongoExceptionTranslator exceptionTranslator = new MongoExceptionTranslator();
MappingMongoConverter converter;
@@ -106,7 +108,9 @@ public class ReactiveMongoTemplateUnitTests {
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(updatePublisher);
when(collection.findOneAndUpdate(any(), any(), any(FindOneAndUpdateOptions.class))).thenReturn(findAndUpdatePublisher);
when(collection.findOneAndUpdate(any(), any(), any(FindOneAndUpdateOptions.class)))
.thenReturn(findAndUpdatePublisher);
when(collection.mapReduce(anyString(), anyString(), any())).thenReturn(mapReducePublisher);
when(findPublisher.projection(any())).thenReturn(findPublisher);
when(findPublisher.limit(anyInt())).thenReturn(findPublisher);
when(findPublisher.collation(any())).thenReturn(findPublisher);
@@ -271,14 +275,13 @@ public class ReactiveMongoTemplateUnitTests {
assertThat(options.getValue().getCollation().getLocale(), is("fr"));
}
@Ignore("currently no mapReduce")
@Test // DATAMONGO-1518
@Test // DATAMONGO-1518, DATAMONGO-2257
public void mapReduceShouldUseCollationWhenPresent() {
// template.mapReduce("", "", "", MapReduceOptions.options().collation(Collation.of("fr")),
// AutogenerateableId.class).subscribe();
//
// verify(mapReduceIterable).collation(eq(com.mongodb.client.model.Collation.builder().locale("fr").build()));
template.mapReduce(new BasicQuery("{}"), AutogenerateableId.class, AutogenerateableId.class, "", "",
MapReduceOptions.options().collation(Collation.of("fr"))).subscribe();
verify(mapReducePublisher).collation(eq(com.mongodb.client.model.Collation.builder().locale("fr").build()));
}
@Test // DATAMONGO-1518

View File

@@ -44,6 +44,8 @@ import org.springframework.data.mongodb.core.aggregation.Aggregation;
import org.springframework.data.mongodb.core.convert.MappingMongoConverter;
import org.springframework.data.mongodb.core.convert.NoOpDbRefResolver;
import org.springframework.data.mongodb.core.mapping.MongoMappingContext;
import org.springframework.data.mongodb.core.mapreduce.MapReduceOptions;
import org.springframework.data.mongodb.core.query.BasicQuery;
import org.springframework.data.mongodb.core.query.NearQuery;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
@@ -56,6 +58,7 @@ import com.mongodb.reactivestreams.client.AggregatePublisher;
import com.mongodb.reactivestreams.client.ClientSession;
import com.mongodb.reactivestreams.client.DistinctPublisher;
import com.mongodb.reactivestreams.client.FindPublisher;
import com.mongodb.reactivestreams.client.MapReducePublisher;
import com.mongodb.reactivestreams.client.MongoClient;
import com.mongodb.reactivestreams.client.MongoCollection;
import com.mongodb.reactivestreams.client.MongoDatabase;
@@ -85,6 +88,7 @@ public class ReactiveSessionBoundMongoTemplateUnitTests {
@Mock AggregatePublisher aggregatePublisher;
@Mock DistinctPublisher distinctPublisher;
@Mock Publisher resultPublisher;
@Mock MapReducePublisher mapReducePublisher;
@Mock MongoClient client;
@Mock CodecRegistry codecRegistry;
@@ -115,6 +119,7 @@ public class ReactiveSessionBoundMongoTemplateUnitTests {
when(collection.updateMany(any(ClientSession.class), any(), any(), 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);
when(findPublisher.projection(any())).thenReturn(findPublisher);
when(findPublisher.limit(anyInt())).thenReturn(findPublisher);
when(findPublisher.collation(any())).thenReturn(findPublisher);
@@ -269,11 +274,11 @@ public class ReactiveSessionBoundMongoTemplateUnitTests {
verify(database).runCommand(eq(clientSession), any(), eq(Document.class));
}
@Test // DATAMONGO-1880, DATAMONGO-1890
@Ignore("No map reduce yet on template - DATAMONGO-1890")
@Test // DATAMONGO-1880, DATAMONGO-1890, DATAMONGO-257
public void mapReduceShouldUseProxiedCollection() {
// template.mapReduce(COLLECTION_NAME, "foo", "bar", Person.class);
template.mapReduce(new BasicQuery("{}"), Person.class, COLLECTION_NAME, Person.class, "foo", "bar",
MapReduceOptions.options()).subscribe();
verify(collection).mapReduce(eq(clientSession), anyString(), anyString(), eq(Document.class));
}

View File

@@ -36,7 +36,6 @@ import java.util.stream.Stream;
import org.hamcrest.Matchers;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
@@ -1274,15 +1273,8 @@ public abstract class AbstractPersonRepositoryIntegrationTests {
assertThat(target.getShippingAddresses()).hasSize(1);
}
@Test // DATAMONGO-2149, DATAMONGO-2154
@Ignore("This one fails due to Json parse exception within MongoDB")
@Test // DATAMONGO-2149, DATAMONGO-2154, DATAMONGO-2199
public void annotatedQueryShouldAllowPositionalParameterInFieldsProjectionWithDbRef() {
// the following needs to be added to PersonRepository.
// @Query(value = "{ 'fans' : { '$elemMatch' : { '$ref' : 'user' } } }", fields = "{ 'fans.$': ?0 }")
// Person findWithArrayPositionInProjectionWithDbRef(int position);
List<User> userList = IntStream.range(0, 10).mapToObj(it -> {
User user = new User();
@@ -1297,9 +1289,9 @@ public abstract class AbstractPersonRepositoryIntegrationTests {
alicia.setFans(userList);
operations.save(alicia);
// Person target = repository.findWithArrayPositionInProjectionWithDbRef(1);
//
// assertThat(target).isNotNull();
// assertThat(target.getShippingAddresses()).hasSize(1);
Person target = repository.findWithArrayPositionInProjectionWithDbRef(1);
assertThat(target).isNotNull();
assertThat(target.getFans()).hasSize(1);
}
}

View File

@@ -362,4 +362,7 @@ public interface PersonRepository extends MongoRepository<Person, String>, Query
@Query(value = "{ 'shippingAddresses' : { '$elemMatch' : { 'city' : { '$eq' : 'lnz' } } } }", fields = "{ 'shippingAddresses.$': ?0 }")
Person findWithArrayPositionInProjection(int position);
@Query(value = "{ 'fans' : { '$elemMatch' : { '$ref' : 'user' } } }", fields = "{ 'fans.$': ?0 }")
Person findWithArrayPositionInProjectionWithDbRef(int position);
}