|
1 | 1 | package com.arangodb.serde;
|
2 | 2 |
|
3 | 3 | import com.arangodb.ContentType;
|
| 4 | +import com.arangodb.entity.BaseDocument; |
4 | 5 | import com.arangodb.internal.serde.InternalSerde;
|
5 | 6 | import com.arangodb.internal.serde.InternalSerdeProvider;
|
6 | 7 | import com.arangodb.internal.serde.SerdeUtils;
|
7 | 8 | import com.arangodb.util.RawBytes;
|
8 | 9 | import com.arangodb.util.RawJson;
|
9 | 10 | import com.fasterxml.jackson.databind.node.JsonNodeFactory;
|
10 | 11 | import com.fasterxml.jackson.databind.node.ObjectNode;
|
| 12 | +import org.assertj.core.api.InstanceOfAssertFactories; |
11 | 13 | import org.junit.jupiter.params.ParameterizedTest;
|
12 | 14 | import org.junit.jupiter.params.provider.EnumSource;
|
13 | 15 |
|
| 16 | +import java.util.Collections; |
| 17 | +import java.util.Map; |
| 18 | + |
14 | 19 | import static org.assertj.core.api.Assertions.assertThat;
|
15 | 20 |
|
16 | 21 |
|
@@ -38,4 +43,30 @@ void rawBytesSerde(ContentType type) {
|
38 | 43 | assertThat(deserialized).isEqualTo(raw);
|
39 | 44 | }
|
40 | 45 |
|
| 46 | + @ParameterizedTest |
| 47 | + @EnumSource(ContentType.class) |
| 48 | + void deserializeBaseDocumentWithNestedProperties(ContentType type) { |
| 49 | + InternalSerde s = new InternalSerdeProvider(type).create(); |
| 50 | + RawJson json = RawJson.of("{\"foo\":\"aaa\",\"properties\":{\"foo\":\"bbb\"}}"); |
| 51 | + BaseDocument deserialized = s.deserialize(s.serialize(json), BaseDocument.class); |
| 52 | + assertThat(deserialized.getAttribute("foo")).isEqualTo("aaa"); |
| 53 | + assertThat(deserialized.getAttribute("properties")) |
| 54 | + .isInstanceOf(Map.class) |
| 55 | + .asInstanceOf(InstanceOfAssertFactories.MAP) |
| 56 | + .containsEntry("foo", "bbb"); |
| 57 | + } |
| 58 | + |
| 59 | + @ParameterizedTest |
| 60 | + @EnumSource(ContentType.class) |
| 61 | + void serializeBaseDocumentWithNestedProperties(ContentType type) { |
| 62 | + InternalSerde s = new InternalSerdeProvider(type).create(); |
| 63 | + BaseDocument doc = new BaseDocument(); |
| 64 | + doc.addAttribute("foo", "aaa"); |
| 65 | + doc.addAttribute("properties", Collections.singletonMap("foo", "bbb")); |
| 66 | + byte[] ser = s.serialize(doc); |
| 67 | + ObjectNode on = s.deserializeUserData(ser, ObjectNode.class); |
| 68 | + assertThat(on.get("foo").textValue()).isEqualTo("aaa"); |
| 69 | + assertThat(on.get("properties").get("foo").textValue()).isEqualTo("bbb"); |
| 70 | + } |
| 71 | + |
41 | 72 | }
|
0 commit comments