use of org.jnosql.artemis.model.Person in project jnosql-artemis by eclipse.
the class DefaultDocumentTemplateAsyncTest method shouldReturnEmptySingleResult.
@Test
public void shouldReturnEmptySingleResult() {
ArgumentCaptor<Consumer<List<DocumentEntity>>> dianaCallbackCaptor = ArgumentCaptor.forClass(Consumer.class);
DocumentQuery query = select().from("Person").build();
AtomicBoolean condition = new AtomicBoolean(false);
AtomicReference<Person> atomicReference = new AtomicReference<>();
Consumer<Optional<Person>> callback = p -> {
condition.set(true);
p.ifPresent(atomicReference::set);
};
subject.singleResult(query, callback);
verify(managerMock).select(Mockito.any(DocumentQuery.class), dianaCallbackCaptor.capture());
Consumer<List<DocumentEntity>> dianaCallBack = dianaCallbackCaptor.getValue();
dianaCallBack.accept(emptyList());
verify(managerMock).select(Mockito.eq(query), Mockito.any());
await().untilTrue(condition);
assertNull(atomicReference.get());
}
use of org.jnosql.artemis.model.Person in project jnosql-artemis by eclipse.
the class DefaultDocumentTemplateAsyncTest method shouldFindById.
@Test
public void shouldFindById() {
ArgumentCaptor<Consumer<List<DocumentEntity>>> dianaCallbackCaptor = ArgumentCaptor.forClass(Consumer.class);
ArgumentCaptor<DocumentQuery> queryCaptor = ArgumentCaptor.forClass(DocumentQuery.class);
AtomicBoolean condition = new AtomicBoolean(false);
AtomicReference<Person> atomicReference = new AtomicReference<>();
Consumer<Optional<Person>> callback = p -> {
condition.set(true);
p.ifPresent(atomicReference::set);
};
subject.find(Person.class, 10L, callback);
verify(managerMock).select(queryCaptor.capture(), dianaCallbackCaptor.capture());
Consumer<List<DocumentEntity>> dianaCallBack = dianaCallbackCaptor.getValue();
dianaCallBack.accept(singletonList(DocumentEntity.of("Person", asList(documents))));
DocumentQuery query = queryCaptor.getValue();
assertEquals("Person", query.getDocumentCollection());
assertEquals(DocumentCondition.eq(Document.of("_id", 10L)), query.getCondition().get());
assertNotNull(atomicReference.get());
}
use of org.jnosql.artemis.model.Person in project jnosql-artemis by eclipse.
the class DefaultDocumentTemplateAsyncTest method shouldReturnSingleResult.
@Test
public void shouldReturnSingleResult() {
ArgumentCaptor<Consumer<List<DocumentEntity>>> dianaCallbackCaptor = ArgumentCaptor.forClass(Consumer.class);
DocumentQuery query = select().from("Person").build();
AtomicBoolean condition = new AtomicBoolean(false);
AtomicReference<Person> atomicReference = new AtomicReference<>();
Consumer<Optional<Person>> callback = p -> {
condition.set(true);
p.ifPresent(atomicReference::set);
};
subject.singleResult(query, callback);
verify(managerMock).select(Mockito.any(DocumentQuery.class), dianaCallbackCaptor.capture());
Consumer<List<DocumentEntity>> dianaCallBack = dianaCallbackCaptor.getValue();
dianaCallBack.accept(singletonList(DocumentEntity.of("Person", asList(documents))));
verify(managerMock).select(Mockito.eq(query), Mockito.any());
await().untilTrue(condition);
assertNotNull(atomicReference.get());
}
use of org.jnosql.artemis.model.Person in project jnosql-artemis by eclipse.
the class DefaultDocumentTemplateTest method shouldUpdate.
@Test
public void shouldUpdate() {
DocumentEntity document = DocumentEntity.of("Person");
document.addAll(Stream.of(documents).collect(Collectors.toList()));
when(managerMock.update(any(DocumentEntity.class))).thenReturn(document);
subject.update(this.person);
verify(managerMock).update(captor.capture());
verify(documentEventPersistManager).firePostEntity(any(Person.class));
verify(documentEventPersistManager).firePreEntity(any(Person.class));
verify(documentEventPersistManager).firePreDocument(any(DocumentEntity.class));
verify(documentEventPersistManager).firePostDocument(any(DocumentEntity.class));
DocumentEntity value = captor.getValue();
assertEquals("Person", value.getName());
assertEquals(4, value.getDocuments().size());
}
use of org.jnosql.artemis.model.Person in project jnosql-artemis by eclipse.
the class DefaultDocumentTemplateTest method shouldReturnSingleResult.
@Test
public void shouldReturnSingleResult() {
DocumentEntity documentEntity = DocumentEntity.of("Person");
documentEntity.addAll(Stream.of(documents).collect(Collectors.toList()));
Mockito.when(managerMock.select(any(DocumentQuery.class))).thenReturn(singletonList(documentEntity));
DocumentQuery query = select().from("person").build();
Optional<Person> result = subject.singleResult(query);
assertTrue(result.isPresent());
}
Aggregations