Skip to content

Commit b752102

Browse files
authored
Merge pull request #170 from eclipse/fixes_coucdb
Unable to Read HashMap<String, Object> from CouchDB with Artemis
2 parents fb29edf + a34968c commit b752102

File tree

3 files changed

+52
-12
lines changed

3 files changed

+52
-12
lines changed

couchdb-driver/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
<dependency>
4242
<groupId>org.apache.httpcomponents</groupId>
4343
<artifactId>httpclient-cache</artifactId>
44-
<version>4.5.12</version>
44+
<version>4.5.13</version>
4545
</dependency>
4646
<dependency>
4747
<groupId>org.slf4j</groupId>

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

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,18 @@
2222
import jakarta.nosql.document.DocumentEntity;
2323
import jakarta.nosql.document.DocumentQuery;
2424
import org.eclipse.jnosql.communication.document.Documents;
25+
import org.junit.jupiter.api.Assertions;
2526
import org.junit.jupiter.api.BeforeEach;
2627
import org.junit.jupiter.api.Test;
2728

2829
import java.util.ArrayList;
30+
import java.util.Collections;
2931
import java.util.HashMap;
3032
import java.util.List;
3133
import java.util.Map;
34+
import java.util.Optional;
35+
import java.util.UUID;
36+
import java.util.concurrent.ThreadLocalRandom;
3237
import java.util.stream.Collectors;
3338

3439
import static jakarta.nosql.document.DocumentDeleteQuery.delete;
@@ -178,22 +183,20 @@ public void shouldSelectWithCouchDBDocumentQuery() {
178183

179184
@Test
180185
public void shouldConvertFromListSubdocumentList() {
181-
DocumentEntity entity = createSubdocumentList();
186+
DocumentEntity entity = createDocumentList();
182187
entityManager.insert(entity);
183188

184189
}
185190

186191
@Test
187-
public void shouldRetrieveListSubdocumentList() {
188-
DocumentEntity entity = entityManager.insert(createSubdocumentList());
192+
public void shouldRetrieveListDocumentList() {
193+
DocumentEntity entity = entityManager.insert(createDocumentList());
189194
Document key = entity.find(CouchDBConstant.ID).get();
190195
DocumentQuery query = select().from("AppointmentBook").where(key.getName()).eq(key.get()).build();
191196

192197
DocumentEntity documentEntity = entityManager.singleResult(query).get();
193198
assertNotNull(documentEntity);
194-
195199
List<List<Document>> contacts = (List<List<Document>>) documentEntity.find("contacts").get().get();
196-
197200
assertEquals(3, contacts.size());
198201
assertTrue(contacts.stream().allMatch(d -> d.size() == 3));
199202
}
@@ -232,7 +235,24 @@ public void shouldSaveSubDocument2() {
232235
assertThat(documents, containsInAnyOrder(Document.of("mobile", "1231231"), Document.of("mobile2", "1231231")));
233236
}
234237

235-
private DocumentEntity createSubdocumentList() {
238+
@Test
239+
public void shouldSaveMap() {
240+
DocumentEntity entity = DocumentEntity.of(COLLECTION_NAME);
241+
String id = UUID.randomUUID().toString();
242+
entity.add("properties", Collections.singletonMap("hallo", "Welt"));
243+
entity.add("scope", "xxx");
244+
entity.add("_id", id);
245+
entityManager.insert(entity);
246+
final DocumentQuery query = select().from(COLLECTION_NAME)
247+
.where("_id").eq(id).and("scope").eq("xxx").build();
248+
final Optional<DocumentEntity> optional = entityManager.select(query).findFirst();
249+
Assertions.assertTrue(optional.isPresent());
250+
DocumentEntity documentEntity = optional.get();
251+
Document properties = documentEntity.find("properties").get();
252+
Assertions.assertNotNull(properties);
253+
}
254+
255+
private DocumentEntity createDocumentList() {
236256
DocumentEntity entity = DocumentEntity.of("AppointmentBook");
237257
List<List<Document>> documents = new ArrayList<>();
238258

mongodb-driver/src/test/java/org/eclipse/jnosql/communication/mongodb/document/MongoDBDocumentCollectionManagerTest.java

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import jakarta.nosql.document.DocumentQuery;
2424
import org.eclipse.jnosql.communication.document.Documents;
2525
import org.eclipse.jnosql.communication.mongodb.document.type.Money;
26+
import org.junit.jupiter.api.Assertions;
2627
import org.junit.jupiter.api.BeforeAll;
2728
import org.junit.jupiter.api.Test;
2829

@@ -448,15 +449,15 @@ public void shouldCreateDate() {
448449
}
449450

450451
@Test
451-
public void shouldConvertFromListSubdocumentList() {
452-
DocumentEntity entity = createSubdocumentList();
452+
public void shouldConvertFromListDocumentList() {
453+
DocumentEntity entity = createDocumentList();
453454
entityManager.insert(entity);
454455

455456
}
456457

457458
@Test
458-
public void shouldRetrieveListSubdocumentList() {
459-
DocumentEntity entity = entityManager.insert(createSubdocumentList());
459+
public void shouldRetrieveListDocumentList() {
460+
DocumentEntity entity = entityManager.insert(createDocumentList());
460461
Document key = entity.find("_id").get();
461462
DocumentQuery query = select().from("AppointmentBook")
462463
.where(key.getName())
@@ -493,7 +494,26 @@ public void shouldCustomTypeWork() {
493494

494495
}
495496

496-
private DocumentEntity createSubdocumentList() {
497+
@Test
498+
public void shouldSaveMap() {
499+
DocumentEntity entity = DocumentEntity.of(COLLECTION_NAME);
500+
String id = UUID.randomUUID().toString();
501+
entity.add("properties", Collections.singletonMap("hallo", "Welt"));
502+
entity.add("scope", "xxx");
503+
entity.add("_id", id);
504+
entityManager.insert(entity);
505+
final DocumentQuery query = select().from(COLLECTION_NAME)
506+
.where("_id").eq(id).and("scope").eq("xxx").build();
507+
final Optional<DocumentEntity> optional = entityManager.select(query).findFirst();
508+
Assertions.assertTrue(optional.isPresent());
509+
DocumentEntity documentEntity = optional.get();
510+
Document properties = documentEntity.find("properties").get();
511+
Map<String, Object> map = properties.get(new TypeReference<Map<String, Object>>() {
512+
});
513+
Assertions.assertNotNull(map);
514+
}
515+
516+
private DocumentEntity createDocumentList() {
497517
DocumentEntity entity = DocumentEntity.of("AppointmentBook");
498518
entity.add(Document.of("_id", new Random().nextInt()));
499519
List<List<Document>> documents = new ArrayList<>();

0 commit comments

Comments
 (0)