8000 variance tests · arangodb/spring-data@93dea3f · GitHub
[go: up one dir, main page]

Skip to content

Commit 93dea3f

Browse files
committed
variance tests
1 parent 71625ad commit 93dea3f

File tree

3 files changed

+124
-26
lines changed

3 files changed

+124
-26
lines changed

src/main/java/com/arangodb/springframework/core/ArangoOperations.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ <T> MultiDocumentEntity<DocumentDeleteEntity<T>> deleteAll(
169169
* @return information about the document
170170
* @throws DataAccessException
171171
*/
172-
<T> DocumentDeleteEntity<T> delete(Object id, Class<T> entityClass) throws DataAccessException;
172+
DocumentDeleteEntity<?> delete(Object id, Class<?> entityClass) throws DataAccessException;
173173

174174
/**
175175
* Partially updates documents, the documents to update are specified by the _key attributes in the objects on
@@ -189,7 +189,7 @@ <T> MultiDocumentEntity<DocumentDeleteEntity<T>> deleteAll(
189189
* @throws DataAccessException
190190
*/
191191
<T> MultiDocumentEntity<DocumentUpdateEntity<T>> updateAll(
192-
Iterable<T> values,
192+
Iterable<? extends T> values,
193193
DocumentUpdateOptions options,
194194
Class<T> entityClass
195195
) throws DataAccessException;

src/main/java/com/arangodb/springframework/core/template/ArangoTemplate.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -340,13 +340,13 @@ public <T> DocumentDeleteEntity<T> delete(final Object id, final DocumentDeleteO
340340
}
341341

342342
@Override
343-
public <T> DocumentDeleteEntity<T> delete(final Object id, final Class<T> entityClass) throws DataAccessException {
343+
public DocumentDeleteEntity<?> delete(final Object id, final Class<?> entityClass) throws DataAccessException {
344344
return delete(id, new DocumentDeleteOptions(), entityClass);
345345
}
346346

347347
@Override
348348
public <T> MultiDocumentEntity<DocumentUpdateEntity<T>> updateAll(
349-
final Iterable<T> values,
349+
final Iterable<? extends T> values,
350350
final DocumentUpdateOptions options,
351351
final Class<T> entityClass
352352
) throws DataAccessException {

src/test/java/com/arangodb/springframework/example/polymorphic/template/PolymorphicTemplate.java

Lines changed: 120 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,21 @@
2121
package com.arangodb.springframework.example.polymorphic.template;
2222

2323
import com.arangodb.ArangoCursor;
24+
import com.arangodb.entity.DocumentCreateEntity;
25+
import com.arangodb.entity.DocumentDeleteEntity;
26+
import com.arangodb.entity.DocumentUpdateEntity;
27+
import com.arangodb.entity.MultiDocumentEntity;
28+
import com.arangodb.model.DocumentCreateOptions;
29+
import com.arangodb.model.DocumentDeleteOptions;
30+
import com.arangodb.model.DocumentUpdateOptions;
2431
import com.arangodb.springframework.AbstractArangoTest;
2532
import com.arangodb.springframework.example.polymorphic.entity.Animal;
2633
import com.arangodb.springframework.example.polymorphic.entity.Dog;
2734
import com.arangodb.springframework.example.polymorphic.entity.Eagle;
2835
import org.junit. 8000 jupiter.api.Test;
2936

3037
import java.util.List;
38+
import java.util.stream.Collectors;
3139

3240
import static org.hamcrest.MatcherAssert.assertThat;
3341
import static org.hamcrest.Matchers.is;
@@ -38,27 +46,117 @@
3846
*/
3947
public class PolymorphicTemplate extends AbstractArangoTest {
4048

41-
@Test
42-
public void query() {
43-
Dog dog = new Dog();
44-
dog.setId("1");
45-
dog.setName("dog");
46-
dog.setTeeths(11);
47-
48-
Eagle eagle = new Eagle();
49-
dog.setId("2");
50-
eagle.setName("eagle");
51-
eagle.setWingspan(2.5);
52-
53-
template.insert(dog);
54-
template.insert(eagle);
55-
56-
final ArangoCursor<Animal> cursor = template.query("FOR a IN animals RETURN a", Animal.class);
57-
assertThat(cursor, is(notNullValue()));
58-
final List<Animal> animals = cursor.asListRemaining();
59-
assertThat(animals.size(), is(2));
60-
assertThat(animals.stream().anyMatch(it -> it.equals(eagle)), is(true));
61-
assertThat(animals.stream().anyMatch(it -> it.equals(dog)), is(true));
62-
}
49+
@Test
50+
public void query() {
51+
Dog dog = new Dog();
52+
dog.setId("1");
53+
dog.setName("dog");
54+
dog.setTeeths(11);
55+
56+
Eagle eagle = new Eagle();
57+
dog.setId("2");
58+
eagle.setName("eagle");
59+
eagle.setWingspan(2.5);
60+
61+
template.insert(dog);
62+
template.insert(eagle);
63+
64+
final ArangoCursor<Animal> cursor = template.query("FOR a IN animals RETURN a", Animal.class);
65+
assertThat(cursor, is(notNullValue()));
66+
final List<Animal> animals = cursor.asListRemaining();
67+
assertThat(animals.size(), is(2));
68+
assertThat(animals.stream().anyMatch(it -> it.equals(eagle)), is(true));
69+
assertThat(animals.stream().anyMatch(it -> it.equals(dog)), is(true));
70+
}
71+
72+
@Test
73+
public void insertVariance() {
74+
Dog dog = new Dog();
75+
dog.setId("1");
76+
dog.setName("dog");
77+
dog.setTeeths(11);
78+
79+
DocumentCreateEntity<Animal> res = template.insert(dog, new DocumentCreateOptions().returnNew(true));
80+
assertThat(res.getNew(), is(dog));
81+
}
82+
83+
@Test
84+
public void insertAllVariance() {
85+
Dog dog1 = new Dog();
86+
dog1.setId("1");
87+
dog1.setName("dog1");
88+
dog1.setTeeths(11);
89+
90+
Dog dog2 = new Dog();
91+
dog1.setId("2");
92+
dog1.setName("dog2");
93+
dog1.setTeeths(22);
94+
95+
List<Dog> dogs = List.of(dog1, dog2);
96+
97+
MultiDocumentEntity<DocumentCreateEntity<Animal>> res =
98+
template.insertAll(dogs, new DocumentCreateOptions().returnNew(true), Animal.class);
99+
assertThat(res.getDocuments().stream().map(DocumentCreateEntity::getNew).toList().containsAll(dogs), is(true));
100+
}
101+
102+
@Test
103+
public void deleteVariance() {
104+
Dog dog = new Dog();
105+
dog.setId("1");
106+
dog.setName("dog");
107+
dog.setTeeths(11);
108+
109+
template.insert(dog);
110+
DocumentDeleteEntity<Animal> res = template.delete(dog.getId(), new DocumentDeleteOptions().returnOld(true), Animal.class);
111+
assertThat(res.getOld(), is(dog));
112+
}
113+
114+
@Test
115+
public void deleteAllVariance() {
116+
Dog dog1 = new Dog();
117+
dog1.setId("1");
118+
dog1.setName("dog1");
119+
dog1.setTeeths(11);
120+
121+
Dog dog2 = new Dog();
122+
dog1.setId("2");
123+
dog1.setName("dog2");
124+
dog1.setTeeths(22);
125+
126+
List<Dog> dogs = List.of(dog1, dog2);
127+
template.insertAll(dogs, Animal.class);
128+
MultiDocumentEntity<DocumentDeleteEntity<Animal>> res = template.deleteAll(List.of(dog1.getId(), dog2.getId()), new DocumentDeleteOptions().returnOld(true), Animal.class);
129+
assertThat(res.getDocuments().stream().map(DocumentDeleteEntity::getOld).toList().containsAll(dogs), is(true));
130+
}
131+
132+
@Test
133+
public void updateVariance() {
134+
Dog dog = new Dog();
135+
dog.setId("1");
136+
dog.setName("dog");
137+
dog.setTeeths(11);
138+
139+
template.insert(dog);
140+
DocumentUpdateEntity<Animal> res = template.update(dog.getId(), dog, new DocumentUpdateOptions().returnNew(true));
141+
assertThat(res.getNew(), is(dog));
142+
}
143+
144+
@Test
145+
public void updateAllVariance() {
146+
Dog dog1 = new Dog();
147+
dog1.setId("1");
148+
dog1.setName("dog1");
149+
dog1.setTeeths(11);
150+
151+
Dog dog2 = new Dog();
152+
dog1.setId("2");
153+
dog1.setName("dog2");
154+
dog1.setTeeths(22);
155+
156+
List<Dog> dogs = List.of(dog1, dog2);
157+
template.insertAll(dogs, Animal.class);
158+
MultiDocumentEntity<DocumentUpdateEntity<Animal>> res = template.updateAll(dogs, new DocumentUpdateOptions().returnNew(true), Animal.class);
159+
assertThat(res.getDocuments().stream().map(DocumentUpdateEntity::getNew).toList().containsAll(dogs), is(true));
160+
}
63161

64162
}

0 commit comments

Comments
 (0)
0