|
|
|
|
@ -2438,7 +2438,6 @@ class MappingMongoConverterUnitTests {
@@ -2438,7 +2438,6 @@ class MappingMongoConverterUnitTests {
|
|
|
|
|
verify(subTypeOfGenericTypeConverter).convert(eq(source)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test // GH-3660
|
|
|
|
|
void usesCustomConverterForMapTypesOnWrite() { |
|
|
|
|
|
|
|
|
|
@ -2482,9 +2481,8 @@ class MappingMongoConverterUnitTests {
@@ -2482,9 +2481,8 @@ class MappingMongoConverterUnitTests {
|
|
|
|
|
})); |
|
|
|
|
converter.afterPropertiesSet(); |
|
|
|
|
|
|
|
|
|
org.bson.Document source = new org.bson.Document("1st", "one") |
|
|
|
|
.append("2nd", 2) |
|
|
|
|
.append("_class", TypeImplementingMap.class.getName()); |
|
|
|
|
org.bson.Document source = new org.bson.Document("1st", "one").append("2nd", 2).append("_class", |
|
|
|
|
TypeImplementingMap.class.getName()); |
|
|
|
|
|
|
|
|
|
TypeImplementingMap target = converter.read(TypeImplementingMap.class, source); |
|
|
|
|
|
|
|
|
|
@ -2519,9 +2517,8 @@ class MappingMongoConverterUnitTests {
@@ -2519,9 +2517,8 @@ class MappingMongoConverterUnitTests {
|
|
|
|
|
converter.afterPropertiesSet(); |
|
|
|
|
|
|
|
|
|
org.bson.Document source = new org.bson.Document("typeImplementingMap", |
|
|
|
|
new org.bson.Document("1st", "one") |
|
|
|
|
.append("2nd", 2)) |
|
|
|
|
.append("_class", TypeWrappingTypeImplementingMap.class.getName()); |
|
|
|
|
new org.bson.Document("1st", "one").append("2nd", 2)).append("_class", |
|
|
|
|
TypeWrappingTypeImplementingMap.class.getName()); |
|
|
|
|
|
|
|
|
|
TypeWrappingTypeImplementingMap target = converter.read(TypeWrappingTypeImplementingMap.class, source); |
|
|
|
|
|
|
|
|
|
@ -2543,13 +2540,12 @@ class MappingMongoConverterUnitTests {
@@ -2543,13 +2540,12 @@ class MappingMongoConverterUnitTests {
|
|
|
|
|
@Test // GH-3686
|
|
|
|
|
void readsCollectionContainingNullValue() { |
|
|
|
|
|
|
|
|
|
org.bson.Document source = new org.bson.Document("items", Arrays.asList(new org.bson.Document("itemKey", "i1"), null, new org.bson.Document("itemKey", "i3"))); |
|
|
|
|
org.bson.Document source = new org.bson.Document("items", |
|
|
|
|
Arrays.asList(new org.bson.Document("itemKey", "i1"), null, new org.bson.Document("itemKey", "i3"))); |
|
|
|
|
|
|
|
|
|
Order target = converter.read(Order.class, source); |
|
|
|
|
|
|
|
|
|
assertThat(target.items) |
|
|
|
|
.map(it -> it != null ? it.itemKey : null) |
|
|
|
|
.containsExactly("i1", null, "i3"); |
|
|
|
|
assertThat(target.items).map(it -> it != null ? it.itemKey : null).containsExactly("i1", null, "i3"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test // GH-3686
|
|
|
|
|
@ -2565,14 +2561,13 @@ class MappingMongoConverterUnitTests {
@@ -2565,14 +2561,13 @@ class MappingMongoConverterUnitTests {
|
|
|
|
|
@Test // GH-3686
|
|
|
|
|
void readsMapContainingNullValue() { |
|
|
|
|
|
|
|
|
|
org.bson.Document source = new org.bson.Document("mapOfObjects", new org.bson.Document("item1", "i1").append("item2", null).append("item3", "i3")); |
|
|
|
|
org.bson.Document source = new org.bson.Document("mapOfObjects", |
|
|
|
|
new org.bson.Document("item1", "i1").append("item2", null).append("item3", "i3")); |
|
|
|
|
|
|
|
|
|
ClassWithMapProperty target = converter.read(ClassWithMapProperty.class, source); |
|
|
|
|
|
|
|
|
|
assertThat(target.mapOfObjects) |
|
|
|
|
.containsEntry("item1", "i1") |
|
|
|
|
.containsEntry("item2", null) |
|
|
|
|
.containsEntry("item3", "i3"); |
|
|
|
|
assertThat(target.mapOfObjects).containsEntry("item1", "i1").containsEntry("item2", null).containsEntry("item3", |
|
|
|
|
"i3"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test // GH-3670
|
|
|
|
|
@ -2584,7 +2579,7 @@ class MappingMongoConverterUnitTests {
@@ -2584,7 +2579,7 @@ class MappingMongoConverterUnitTests {
|
|
|
|
|
})); |
|
|
|
|
converter.afterPropertiesSet(); |
|
|
|
|
|
|
|
|
|
org.bson.Document source = new org.bson.Document("content", new Binary(new byte[] {0x00, 0x42})); |
|
|
|
|
org.bson.Document source = new org.bson.Document("content", new Binary(new byte[] { 0x00, 0x42 })); |
|
|
|
|
|
|
|
|
|
GenericType<Object> target = converter.read(GenericType.class, source); |
|
|
|
|
assertThat(target.content).isInstanceOf(byte[].class); |
|
|
|
|
@ -2593,17 +2588,20 @@ class MappingMongoConverterUnitTests {
@@ -2593,17 +2588,20 @@ class MappingMongoConverterUnitTests {
|
|
|
|
|
@Test // GH-3702
|
|
|
|
|
void readsRawDocument() { |
|
|
|
|
|
|
|
|
|
org.bson.Document source = new org.bson.Document("_id", "id-1").append("raw", new org.bson.Document("simple", 1).append("document", new org.bson.Document("inner-doc", 1))); |
|
|
|
|
org.bson.Document source = new org.bson.Document("_id", "id-1").append("raw", |
|
|
|
|
new org.bson.Document("simple", 1).append("document", new org.bson.Document("inner-doc", 1))); |
|
|
|
|
|
|
|
|
|
WithRawDocumentProperties target = converter.read(WithRawDocumentProperties.class, source); |
|
|
|
|
|
|
|
|
|
assertThat(target.raw).isInstanceOf(org.bson.Document.class).isEqualTo( new org.bson.Document("simple", 1).append("document", new org.bson.Document("inner-doc", 1))); |
|
|
|
|
assertThat(target.raw).isInstanceOf(org.bson.Document.class) |
|
|
|
|
.isEqualTo(new org.bson.Document("simple", 1).append("document", new org.bson.Document("inner-doc", 1))); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test // GH-3702
|
|
|
|
|
void readsListOfRawDocument() { |
|
|
|
|
|
|
|
|
|
org.bson.Document source = new org.bson.Document("_id", "id-1").append("listOfRaw", Arrays.asList(new org.bson.Document("simple", 1).append("document", new org.bson.Document("inner-doc", 1)))); |
|
|
|
|
org.bson.Document source = new org.bson.Document("_id", "id-1").append("listOfRaw", |
|
|
|
|
Arrays.asList(new org.bson.Document("simple", 1).append("document", new org.bson.Document("inner-doc", 1)))); |
|
|
|
|
|
|
|
|
|
WithRawDocumentProperties target = converter.read(WithRawDocumentProperties.class, source); |
|
|
|
|
|
|
|
|
|
@ -2614,11 +2612,12 @@ class MappingMongoConverterUnitTests {
@@ -2614,11 +2612,12 @@ class MappingMongoConverterUnitTests {
|
|
|
|
|
@Test // GH-3692
|
|
|
|
|
void readsMapThatDoesNotComeAsDocument() { |
|
|
|
|
|
|
|
|
|
org.bson.Document source = new org.bson.Document("_id", "id-1").append("mapOfObjects", Collections.singletonMap("simple", 1)); |
|
|
|
|
org.bson.Document source = new org.bson.Document("_id", "id-1").append("mapOfObjects", |
|
|
|
|
Collections.singletonMap("simple", 1)); |
|
|
|
|
|
|
|
|
|
ClassWithMapProperty target = converter.read(ClassWithMapProperty.class, source); |
|
|
|
|
|
|
|
|
|
assertThat(target.mapOfObjects).containsEntry("simple",1); |
|
|
|
|
assertThat(target.mapOfObjects).containsEntry("simple", 1); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test // GH-3851
|
|
|
|
|
@ -2638,7 +2637,8 @@ class MappingMongoConverterUnitTests {
@@ -2638,7 +2637,8 @@ class MappingMongoConverterUnitTests {
|
|
|
|
|
|
|
|
|
|
converter.writePropertyInternal(sourceValue, accessor, persistentProperty); |
|
|
|
|
|
|
|
|
|
assertThat(accessor.getDocument()).isEqualTo(new org.bson.Document("pName", new org.bson.Document("_id", id.toString()))); |
|
|
|
|
assertThat(accessor.getDocument()) |
|
|
|
|
.isEqualTo(new org.bson.Document("pName", new org.bson.Document("_id", id.toString()))); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test // GH-2860
|
|
|
|
|
@ -2652,8 +2652,7 @@ class MappingMongoConverterUnitTests {
@@ -2652,8 +2652,7 @@ class MappingMongoConverterUnitTests {
|
|
|
|
|
.and((target, underlyingType) -> !converter.conversions.isSimpleType(target)), |
|
|
|
|
mappingContext); |
|
|
|
|
|
|
|
|
|
EntityProjection<PersonProjection, Person> projection = discoverer |
|
|
|
|
.introspect(PersonProjection.class, Person.class); |
|
|
|
|
EntityProjection<PersonProjection, Person> projection = discoverer.introspect(PersonProjection.class, Person.class); |
|
|
|
|
PersonProjection person = converter.project(projection, source); |
|
|
|
|
|
|
|
|
|
assertThat(person.getBirthDate()).isEqualTo(new LocalDate(1999, 12, 1)); |
|
|
|
|
@ -2671,8 +2670,7 @@ class MappingMongoConverterUnitTests {
@@ -2671,8 +2670,7 @@ class MappingMongoConverterUnitTests {
|
|
|
|
|
.and((target, underlyingType) -> !converter.conversions.isSimpleType(target)), |
|
|
|
|
mappingContext); |
|
|
|
|
|
|
|
|
|
EntityProjection<PersonDto, Person> projection = introspector |
|
|
|
|
.introspect(PersonDto.class, Person.class); |
|
|
|
|
EntityProjection<PersonDto, Person> projection = introspector.introspect(PersonDto.class, Person.class); |
|
|
|
|
PersonDto person = converter.project(projection, source); |
|
|
|
|
|
|
|
|
|
assertThat(person.getBirthDate()).isEqualTo(new LocalDate(1999, 12, 1)); |
|
|
|
|
@ -2763,8 +2761,7 @@ class MappingMongoConverterUnitTests {
@@ -2763,8 +2761,7 @@ class MappingMongoConverterUnitTests {
|
|
|
|
|
@EqualsAndHashCode |
|
|
|
|
@Getter |
|
|
|
|
static class Address implements InterfaceType { |
|
|
|
|
@Field("s") |
|
|
|
|
String street; |
|
|
|
|
@Field("s") String street; |
|
|
|
|
String city; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -3365,7 +3362,7 @@ class MappingMongoConverterUnitTests {
@@ -3365,7 +3362,7 @@ class MappingMongoConverterUnitTests {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@EqualsAndHashCode |
|
|
|
|
static class TypeImplementingMap implements Map<String,String> { |
|
|
|
|
static class TypeImplementingMap implements Map<String, String> { |
|
|
|
|
|
|
|
|
|
String val1; |
|
|
|
|
int val2; |
|
|
|
|
@ -3480,15 +3477,9 @@ class MappingMongoConverterUnitTests {
@@ -3480,15 +3477,9 @@ class MappingMongoConverterUnitTests {
|
|
|
|
|
|
|
|
|
|
Author author = new Author(); |
|
|
|
|
|
|
|
|
|
public Book() {} |
|
|
|
|
|
|
|
|
|
public Book(String id, String name, Author author) { |
|
|
|
|
this.id = id; |
|
|
|
|
this.name = name; |
|
|
|
|
this.author = author; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Data |
|
|
|
|
static class Author { |
|
|
|
|
|
|
|
|
|
@Id String id; |
|
|
|
|
@ -3497,14 +3488,6 @@ class MappingMongoConverterUnitTests {
@@ -3497,14 +3488,6 @@ class MappingMongoConverterUnitTests {
|
|
|
|
|
|
|
|
|
|
String lastName; |
|
|
|
|
|
|
|
|
|
public Author() {} |
|
|
|
|
|
|
|
|
|
public Author(String id, String firstName, String lastName) { |
|
|
|
|
this.id = id; |
|
|
|
|
this.firstName = firstName; |
|
|
|
|
this.lastName = lastName; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|