use of org.jnosql.artemis.model.Person in project jnosql-artemis by eclipse.
the class DefaultColumnTemplateAsyncTest method shouldReturnSingleResult.
@Test
public void shouldReturnSingleResult() {
ArgumentCaptor<Consumer<List<ColumnEntity>>> dianaCallbackCaptor = ArgumentCaptor.forClass(Consumer.class);
ColumnQuery query = ColumnQueryBuilder.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(ColumnQuery.class), dianaCallbackCaptor.capture());
Consumer<List<ColumnEntity>> dianaCallBack = dianaCallbackCaptor.getValue();
dianaCallBack.accept(singletonList(ColumnEntity.of("Person", asList(columns))));
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 DefaultColumnTemplateTest method shouldReturnSingleResultIsEmpty.
@Test
public void shouldReturnSingleResultIsEmpty() {
Mockito.when(managerMock.select(any(ColumnQuery.class))).thenReturn(emptyList());
ColumnQuery query = select().from("person").build();
Optional<Person> result = subject.singleResult(query);
assertFalse(result.isPresent());
}
use of org.jnosql.artemis.model.Person in project jnosql-artemis by eclipse.
the class DefaultColumnTemplateTest method shouldInsert.
@Test
public void shouldInsert() {
ColumnEntity columnEntity = ColumnEntity.of("Person");
columnEntity.addAll(Stream.of(columns).collect(Collectors.toList()));
Mockito.when(managerMock.insert(any(ColumnEntity.class))).thenReturn(columnEntity);
subject.insert(this.person);
verify(managerMock).insert(captor.capture());
verify(columnEventPersistManager).firePostEntity(any(Person.class));
verify(columnEventPersistManager).firePreEntity(any(Person.class));
verify(columnEventPersistManager).firePreColumn(any(ColumnEntity.class));
verify(columnEventPersistManager).firePostColumn(any(ColumnEntity.class));
ColumnEntity value = captor.getValue();
assertEquals("Person", value.getName());
assertEquals(4, value.getColumns().size());
}
use of org.jnosql.artemis.model.Person in project jnosql-artemis by eclipse.
the class DefaultColumnTemplateTest method shouldInsertTTL.
@Test
public void shouldInsertTTL() {
ColumnEntity columnEntity = ColumnEntity.of("Person");
columnEntity.addAll(Stream.of(columns).collect(Collectors.toList()));
Mockito.when(managerMock.insert(any(ColumnEntity.class), any(Duration.class))).thenReturn(columnEntity);
subject.insert(this.person, Duration.ofHours(2));
verify(managerMock).insert(captor.capture(), Mockito.eq(Duration.ofHours(2)));
verify(columnEventPersistManager).firePostEntity(any(Person.class));
verify(columnEventPersistManager).firePreEntity(any(Person.class));
verify(columnEventPersistManager).firePreColumn(any(ColumnEntity.class));
verify(columnEventPersistManager).firePostColumn(any(ColumnEntity.class));
ColumnEntity value = captor.getValue();
assertEquals("Person", value.getName());
assertEquals(4, value.getColumns().size());
}
use of org.jnosql.artemis.model.Person in project jnosql-artemis by eclipse.
the class ColumnRepositoryAsyncProxyTest method shoudFindByNameSortPagination.
@Test
public void shoudFindByNameSortPagination() {
Consumer<List<Person>> callback = v -> {
};
Sort sort = Sort.of("age", Sort.SortType.ASC);
Pagination pagination = Pagination.of(10, 20);
ArgumentCaptor<ColumnQuery> captor = ArgumentCaptor.forClass(ColumnQuery.class);
ArgumentCaptor<Consumer> consumerCaptor = ArgumentCaptor.forClass(Consumer.class);
personRepository.findByName("name", sort, pagination, callback);
verify(template).select(captor.capture(), consumerCaptor.capture());
ColumnQuery query = captor.getValue();
ColumnCondition condition = query.getCondition().get();
assertEquals("Person", query.getColumnFamily());
assertEquals(Condition.EQUALS, condition.getCondition());
assertEquals(Column.of("name", "name"), condition.getColumn());
assertEquals(callback, consumerCaptor.getValue());
assertEquals(sort, query.getSorts().get(0));
assertEquals(pagination.getFirstResult(), query.getFirstResult());
assertEquals(pagination.getMaxResults(), query.getMaxResults());
}
Aggregations