diff --git a/pom.xml b/pom.xml index 657607148..a18c83b4d 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ multi spring-data-mongodb 2.2.0.BUILD-SNAPSHOT - 3.8.2 + 3.10.1 1.9.2 1.19 diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/gridfs/AsyncInputStreamAdapter.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/gridfs/AsyncInputStreamAdapter.java index d57268388..167281276 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/gridfs/AsyncInputStreamAdapter.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/gridfs/AsyncInputStreamAdapter.java @@ -123,6 +123,10 @@ class AsyncInputStreamAdapter implements AsyncInputStream { }); } + public Publisher skip(long bytesToSkip) { + throw new UnsupportedOperationException("Skip is currently not implemented"); + } + /* * (non-Javadoc) * @see com.mongodb.reactivestreams.client.gridfs.AsyncInputStream#close() diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultIndexOperationsIntegrationTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultIndexOperationsIntegrationTests.java index ab44ec9a5..3ea557063 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultIndexOperationsIntegrationTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultIndexOperationsIntegrationTests.java @@ -90,7 +90,7 @@ public class DefaultIndexOperationsIntegrationTests { assertThat(info.getIndexFields().get(0).isGeo()).isEqualTo(true); } - @Test // DATAMONGO-1467 + @Test // DATAMONGO-1467, DATAMONGO-2198 public void shouldApplyPartialFilterCorrectly() { assumeThat(mongoVersion.isGreaterThanOrEqualTo(THREE_DOT_TWO), is(true)); @@ -101,10 +101,10 @@ public class DefaultIndexOperationsIntegrationTests { indexOps.ensureIndex(id); IndexInfo info = findAndReturnIndexInfo(indexOps.getIndexInfo(), "partial-with-criteria"); - assertThat(info.getPartialFilterExpression()).isEqualTo("{ \"q-t-y\" : { \"$gte\" : 10 } }"); + assertThat(Document.parse(info.getPartialFilterExpression())).isEqualTo(Document.parse("{ \"q-t-y\" : { \"$gte\" : 10 } }")); } - @Test // DATAMONGO-1467 + @Test // DATAMONGO-1467, DATAMONGO-2198 public void shouldApplyPartialFilterWithMappedPropertyCorrectly() { assumeThat(mongoVersion.isGreaterThanOrEqualTo(THREE_DOT_TWO), is(true)); @@ -115,10 +115,10 @@ public class DefaultIndexOperationsIntegrationTests { indexOps.ensureIndex(id); IndexInfo info = findAndReturnIndexInfo(indexOps.getIndexInfo(), "partial-with-mapped-criteria"); - assertThat(info.getPartialFilterExpression()).isEqualTo("{ \"qty\" : { \"$gte\" : 10 } }"); + assertThat(Document.parse(info.getPartialFilterExpression())).isEqualTo(Document.parse("{ \"qty\" : { \"$gte\" : 10 } }")); } - @Test // DATAMONGO-1467 + @Test // DATAMONGO-1467, DATAMONGO-2198 public void shouldApplyPartialDBOFilterCorrectly() { assumeThat(mongoVersion.isGreaterThanOrEqualTo(THREE_DOT_TWO), is(true)); @@ -129,10 +129,10 @@ public class DefaultIndexOperationsIntegrationTests { indexOps.ensureIndex(id); IndexInfo info = findAndReturnIndexInfo(indexOps.getIndexInfo(), "partial-with-dbo"); - assertThat(info.getPartialFilterExpression()).isEqualTo("{ \"qty\" : { \"$gte\" : 10 } }"); + assertThat(Document.parse(info.getPartialFilterExpression())).isEqualTo(Document.parse("{ \"qty\" : { \"$gte\" : 10 } }")); } - @Test // DATAMONGO-1467 + @Test // DATAMONGO-1467, DATAMONGO-2198 public void shouldFavorExplicitMappingHintViaClass() { assumeThat(mongoVersion.isGreaterThanOrEqualTo(THREE_DOT_TWO), is(true)); @@ -147,7 +147,7 @@ public class DefaultIndexOperationsIntegrationTests { indexOps.ensureIndex(id); IndexInfo info = findAndReturnIndexInfo(indexOps.getIndexInfo(), "partial-with-inheritance"); - assertThat(info.getPartialFilterExpression()).isEqualTo("{ \"a_g_e\" : { \"$gte\" : 10 } }"); + assertThat(Document.parse(info.getPartialFilterExpression())).isEqualTo(Document.parse("{ \"a_g_e\" : { \"$gte\" : 10 } }")); } @Test // DATAMONGO-1518 diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultReactiveIndexOperationsTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultReactiveIndexOperationsTests.java index 45a723ce2..33ac33041 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultReactiveIndexOperationsTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/DefaultReactiveIndexOperationsTests.java @@ -133,7 +133,7 @@ public class DefaultReactiveIndexOperationsTests { .verifyComplete(); } - @Test // DATAMONGO-1682 + @Test // DATAMONGO-1682, DATAMONGO-2198 public void shouldApplyPartialFilterCorrectly() { assumeTrue(mongoVersion.isGreaterThanOrEqualTo(THREE_DOT_TWO)); @@ -145,12 +145,12 @@ public class DefaultReactiveIndexOperationsTests { StepVerifier.create(indexOps.getIndexInfo().filter(this.indexByName("partial-with-criteria"))) // .consumeNextWith(indexInfo -> { - assertThat(indexInfo.getPartialFilterExpression()).isEqualTo("{ \"q-t-y\" : { \"$gte\" : 10 } }"); + assertThat(Document.parse(indexInfo.getPartialFilterExpression())).isEqualTo(Document.parse("{ \"q-t-y\" : { \"$gte\" : 10 } }")); }) // .verifyComplete(); } - @Test // DATAMONGO-1682 + @Test // DATAMONGO-1682, DATAMONGO-2198 public void shouldApplyPartialFilterWithMappedPropertyCorrectly() { assumeTrue(mongoVersion.isGreaterThanOrEqualTo(THREE_DOT_TWO)); @@ -162,11 +162,11 @@ public class DefaultReactiveIndexOperationsTests { StepVerifier.create(indexOps.getIndexInfo().filter(this.indexByName("partial-with-mapped-criteria"))) // .consumeNextWith(indexInfo -> { - assertThat(indexInfo.getPartialFilterExpression()).isEqualTo("{ \"qty\" : { \"$gte\" : 10 } }"); + assertThat(Document.parse(indexInfo.getPartialFilterExpression())).isEqualTo(Document.parse("{ \"qty\" : { \"$gte\" : 10 } }")); }).verifyComplete(); } - @Test // DATAMONGO-1682 + @Test // DATAMONGO-1682, DATAMONGO-2198 public void shouldApplyPartialDBOFilterCorrectly() { assumeTrue(mongoVersion.isGreaterThanOrEqualTo(THREE_DOT_TWO)); @@ -178,13 +178,13 @@ public class DefaultReactiveIndexOperationsTests { StepVerifier.create(indexOps.getIndexInfo().filter(this.indexByName("partial-with-dbo"))) // .consumeNextWith(indexInfo -> { - assertThat(indexInfo.getPartialFilterExpression()).isEqualTo("{ \"qty\" : { \"$gte\" : 10 } }"); + assertThat(Document.parse(indexInfo.getPartialFilterExpression())).isEqualTo(Document.parse("{ \"qty\" : { \"$gte\" : 10 } }")); }) // .verifyComplete(); } - @Test // DATAMONGO-1682 + @Test // DATAMONGO-1682, DATAMONGO-2198 public void shouldFavorExplicitMappingHintViaClass() { assumeTrue(mongoVersion.isGreaterThanOrEqualTo(THREE_DOT_TWO)); @@ -200,7 +200,7 @@ public class DefaultReactiveIndexOperationsTests { StepVerifier.create(indexOps.getIndexInfo().filter(this.indexByName("partial-with-inheritance"))) // .consumeNextWith(indexInfo -> { - assertThat(indexInfo.getPartialFilterExpression()).isEqualTo("{ \"a_g_e\" : { \"$gte\" : 10 } }"); + assertThat(Document.parse(indexInfo.getPartialFilterExpression())).isEqualTo(Document.parse("{ \"a_g_e\" : { \"$gte\" : 10 } }")); }) // .verifyComplete(); } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/SerializationUtilsUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/SerializationUtilsUnitTests.java index 55ced92f8..492d80d01 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/SerializationUtilsUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/SerializationUtilsUnitTests.java @@ -41,7 +41,7 @@ public class SerializationUtilsUnitTests { public void writesSimpleDocument() { Document document = new Document("foo", "bar"); - assertThat(serializeToJsonSafely(document), is("{ \"foo\" : \"bar\" }")); + assertThat(serializeToJsonSafely(document), is(document.toJson())); } @Test diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MappingMongoConverterUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MappingMongoConverterUnitTests.java index 2039ea5a2..b44e7706d 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MappingMongoConverterUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/convert/MappingMongoConverterUnitTests.java @@ -1191,11 +1191,16 @@ public class MappingMongoConverterUnitTests { assertThat(((Person) value).lastname, is("converter")); } - @Test // DATAMONGO-743 + @Test // DATAMONGO-743, DATAMONGO-2198 public void readsIntoStringsOutOfTheBox() { - org.bson.Document document = new org.bson.Document("firstname", "Dave"); - assertThat(converter.read(String.class, document), is("{ \"firstname\" : \"Dave\" }")); + + String target = converter.read(String.class, new org.bson.Document("firstname", "Dave")); + + assertThat(target, Matchers.startsWith("{")); + assertThat(target, Matchers.endsWith("}")); + assertThat(target, Matchers.containsString( "\"firstname\"")); + assertThat(target, Matchers.containsString( "\"Dave\"")); } @Test // DATAMONGO-766 diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/IndexInfoUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/IndexInfoUnitTests.java index b328040e5..6a0b0081a 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/IndexInfoUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/index/IndexInfoUnitTests.java @@ -52,8 +52,8 @@ public class IndexInfoUnitTests { @Test // DATAMONGO-2170 public void partialFilterExpressionShouldMatchSource() { - assertThat(getIndexInfo(INDEX_WITH_PARTIAL_FILTER).getPartialFilterExpression()) - .isEqualTo("{ \"quantity\" : { \"$gte\" : 10 } }"); + assertThat(Document.parse(getIndexInfo(INDEX_WITH_PARTIAL_FILTER).getPartialFilterExpression())) + .isEqualTo(Document.parse("{ \"quantity\" : { \"$gte\" : 10 } }")); } private static IndexInfo getIndexInfo(String documentJson) { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/QueryTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/QueryTests.java index 710554235..43bcb2643 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/QueryTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/QueryTests.java @@ -204,13 +204,12 @@ public class QueryTests { new Query().with(Sort.by(new Sort.Order("foo").ignoreCase())); } - @Test // DATAMONGO-709, DATAMONGO-1735 + @Test // DATAMONGO-709, DATAMONGO-1735, // DATAMONGO-2198 @SuppressWarnings("unchecked") public void shouldReturnClassHierarchyOfRestrictedTypes() { Query query = new Query(where("name").is("foo")).restrict(SpecialDoc.class); - assertThat(query.toString(), is( - "Query: { \"name\" : \"foo\", \"_$RESTRICTED_TYPES\" : [ { \"$java\" : class org.springframework.data.mongodb.core.SpecialDoc } ] }, Fields: { }, Sort: { }")); + assertThat(query.getRestrictedTypes(), is(notNullValue())); assertThat(query.getRestrictedTypes().size(), is(1)); assertThat(query.getRestrictedTypes(), hasItems(Arrays.asList(SpecialDoc.class).toArray(new Class[0]))); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/UpdateTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/UpdateTests.java index ffc8c44d3..a191bef86 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/UpdateTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/UpdateTests.java @@ -474,11 +474,11 @@ public class UpdateTests { "{ \"$push\" : { \"key\" : { \"$java\" : { \"$position\" : { \"$java\" : { \"$position\" : 0} }, \"$each\" : { \"$java\" : { \"$each\" : [ \"Arya\"]} } } } } }"); } - @Test // DATAMONGO-1777 + @Test // DATAMONGO-1777, DATAMONGO-2198 public void toStringConsidersIsolated() { assertThat(new Update().set("key", "value").isolated().toString()) - .isEqualTo("{ \"$set\" : { \"key\" : \"value\" }, \"$isolated\" : 1 }"); + .contains("\"$isolated\""); } @Test // DATAMONGO-1778