Skip to content

Commit 961e480

Browse files
committed
support ArangoJsonNode converters
1 parent 4ae9e81 commit 961e480

File tree

5 files changed

+40
-1
lines changed

5 files changed

+40
-1
lines changed

src/main/java/com/arangodb/springframework/core/mapping/ArangoSimpleTypes.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import java.util.HashSet;
3434
import java.util.Set;
3535

36+
import com.arangodb.springframework.core.convert.ArangoJsonNode;
3637
import org.springframework.data.mapping.model.SimpleTypeHolder;
3738

3839
import com.arangodb.springframework.core.convert.DBDocumentEntity;
@@ -51,8 +52,10 @@ public final class ArangoSimpleTypes {
5152
static {
5253
final Set<Class<?>> simpleTypes = new HashSet<>();
5354

54-
// com.arangodb.*
5555
simpleTypes.add(JsonNode.class);
56+
57+
// com.arangodb.*
58+
simpleTypes.add(ArangoJsonNode.class);
5659
simpleTypes.add(DBDocumentEntity.class);
5760

5861
// java.math.*

src/test/java/com/arangodb/springframework/ArangoMultiTenancyRepositoryTestConfiguration.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ public String database() {
6464
converters.add(new CustomMappingTest.CustomJsonNodeWriteTestConverter());
6565
converters.add(new CustomMappingTest.CustomDBEntityReadTestConverter());
6666
converters.add(new CustomMappingTest.CustomDBEntityWriteTestConverter());
67+
converters.add(new CustomMappingTest.CustomArangoJsonNodeReadTestConverter());
6768
return converters;
6869
}
6970

src/test/java/com/arangodb/springframework/ArangoMultiTenancyTestConfiguration.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ public String database() {
5959
converters.add(new CustomMappingTest.CustomJsonNodeWriteTestConverter());
6060
converters.add(new CustomMappingTest.CustomDBEntityReadTestConverter());
6161
converters.add(new CustomMappingTest.CustomDBEntityWriteTestConverter());
62+
converters.add(new CustomMappingTest.CustomArangoJsonNodeReadTestConverter());
6263
return converters;
6364
}
6465

src/test/java/com/arangodb/springframework/ArangoTestConfiguration.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ public String database() {
8787
converters.add(new CustomMappingTest.CustomJsonNodeWriteTestConverter());
8888
converters.add(new CustomMappingTest.CustomDBEntityReadTestConverter());
8989
converters.add(new CustomMappingTest.CustomDBEntityWriteTestConverter());
90+
converters.add(new CustomMappingTest.CustomArangoJsonNodeReadTestConverter());
9091
return converters;
9192
}
9293

src/test/java/com/arangodb/springframework/core/mapping/CustomMappingTest.java

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,11 @@
2727
import java.util.Optional;
2828

2929
import com.arangodb.ArangoCollection;
30+
import com.arangodb.springframework.core.convert.ArangoJsonNode;
3031
import com.fasterxml.jackson.databind.JsonNode;
3132
import com.fasterxml.jackson.databind.node.JsonNodeFactory;
33+
import lombok.AllArgsConstructor;
34+
import lombok.Data;
3235
import org.junit.jupiter.api.Test;
3336
import org.springframework.core.convert.converter.Converter;
3437

@@ -83,6 +86,13 @@ public void setValue(final String value) {
8386

8487
}
8588

89+
@Data
90+
@AllArgsConstructor
91+
@Document
92+
public static class CustomArangoJsonNodeTestEntity {
93+
private String value;
94+
}
95+
8696
public static class CustomJsonNodeWriteTestConverter implements Converter<CustomJsonNodeTestEntity, JsonNode> {
8797
@Override
8898
public JsonNode convert(final CustomJsonNodeTestEntity source) {
@@ -97,6 +107,13 @@ public CustomJsonNodeTestEntity convert(final JsonNode source) {
97107
}
98108
}
99109

110+
public static class CustomArangoJsonNodeReadTestConverter implements Converter<ArangoJsonNode, CustomArangoJsonNodeTestEntity> {
111+
@Override
112+
public CustomArangoJsonNodeTestEntity convert(final ArangoJsonNode source) {
113+
return new CustomArangoJsonNodeTestEntity(source.value().get(FIELD).textValue());
114+
}
115+
}
116+
100117
@Test
101118
public void customToJsonNode() {
102119
final DocumentEntity meta = template.insert(new CustomJsonNodeTestEntity("abc"));
@@ -114,6 +131,14 @@ public void jsonNodeToCustom() {
114131
assertThat(doc.get().getValue(), is("abc"));
115132
}
116133

134+
@Test
135+
public void arangoJsonNodeToCustom() {
136+
final DocumentEntity meta = template.insert(new TestEntity("abc"));
137+
final Optional<CustomArangoJsonNodeTestEntity> doc = template.find(meta.getId(), CustomArangoJsonNodeTestEntity.class);
138+
assertThat(doc.isPresent(), is(true));
139+
assertThat(doc.get().getValue(), is("abc"));
140+
}
141+
117142
@Test
118143
public void customToJsonNodeFromDriver() {
119144
ArangoCollection col = db.collection("customJsonNodeTestEntity");
@@ -131,6 +156,14 @@ public void jsonNodeToCustomFromDriver() {
131156
assertThat(doc.getValue(), is("abc"));
132157
}
133158

159+
@Test
160+
public void arangoJsonNodeToCustomFromDriver() {
161+
ArangoCollection col = db.collection("testEntity");
162+
final DocumentEntity meta = col.insertDocument(new TestEntity("abc"));
163+
final CustomArangoJsonNodeTestEntity doc = col.getDocument(meta.getKey(), CustomArangoJsonNodeTestEntity.class);
164+
assertThat(doc.getValue(), is("abc"));
165+
}
166+
134167
@Document()
135168
public static class CustomDBEntityTestEntity {
136169
private String value;

0 commit comments

Comments
 (0)