Skip to content

Commit fb29edf

Browse files
committed
adds couchdb test
1 parent 9a2bedc commit fb29edf

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

couchdb-driver/src/test/java/org/eclipse/jnosql/communication/couchdb/document/DefaultCouchDBDocumentCollectionManagerTest.java

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
*/
1717
package org.eclipse.jnosql.communication.couchdb.document;
1818

19+
import jakarta.nosql.TypeReference;
1920
import jakarta.nosql.document.Document;
2021
import jakarta.nosql.document.DocumentDeleteQuery;
2122
import jakarta.nosql.document.DocumentEntity;
@@ -34,6 +35,9 @@
3435
import static jakarta.nosql.document.DocumentQuery.select;
3536
import static java.util.Arrays.asList;
3637
import static org.eclipse.jnosql.communication.couchdb.document.configuration.CouchDBDocumentTcConfiguration.INSTANCE;
38+
import static org.hamcrest.MatcherAssert.assertThat;
39+
import static org.hamcrest.Matchers.contains;
40+
import static org.hamcrest.Matchers.containsInAnyOrder;
3741
import static org.junit.jupiter.api.Assertions.assertEquals;
3842
import static org.junit.jupiter.api.Assertions.assertFalse;
3943
import static org.junit.jupiter.api.Assertions.assertNotEquals;
@@ -194,6 +198,40 @@ public void shouldRetrieveListSubdocumentList() {
194198
assertTrue(contacts.stream().allMatch(d -> d.size() == 3));
195199
}
196200

201+
@Test
202+
public void shouldSaveSubDocument() {
203+
DocumentEntity entity = getEntity();
204+
entity.add(Document.of("phones", Document.of("mobile", "1231231")));
205+
DocumentEntity entitySaved = entityManager.insert(entity);
206+
Document id = entitySaved.find("_id").get();
207+
DocumentQuery query = select().from(COLLECTION_NAME)
208+
.where("_id").eq(id.get())
209+
.build();
210+
211+
DocumentEntity entityFound = entityManager.select(query).collect(Collectors.toList()).get(0);
212+
Document subDocument = entityFound.find("phones").get();
213+
List<Document> documents = subDocument.get(new TypeReference<List<Document>>() {
214+
});
215+
assertThat(documents, contains(Document.of("mobile", "1231231")));
216+
}
217+
218+
@Test
219+
public void shouldSaveSubDocument2() {
220+
DocumentEntity entity = getEntity();
221+
entity.add(Document.of("phones", asList(Document.of("mobile", "1231231"), Document.of("mobile2", "1231231"))));
222+
DocumentEntity entitySaved = entityManager.insert(entity);
223+
Document id = entitySaved.find("_id").get();
224+
225+
DocumentQuery query = select().from(COLLECTION_NAME)
226+
.where(id.getName()).eq(id.get())
227+
.build();
228+
DocumentEntity entityFound = entityManager.select(query).collect(Collectors.toList()).get(0);
229+
Document subDocument = entityFound.find("phones").get();
230+
List<Document> documents = subDocument.get(new TypeReference<List<Document>>() {
231+
});
232+
assertThat(documents, containsInAnyOrder(Document.of("mobile", "1231231"), Document.of("mobile2", "1231231")));
233+
}
234+
197235
private DocumentEntity createSubdocumentList() {
198236
DocumentEntity entity = DocumentEntity.of("AppointmentBook");
199237
List<List<Document>> documents = new ArrayList<>();

0 commit comments

Comments
 (0)