use of jakarta.nosql.document.DocumentQuery in project jnosql-diana by eclipse.
the class DocumentRepositoryProxySortTest method shouldFindAll.
@Test
public void shouldFindAll() {
when(template.select(any(DocumentQuery.class))).thenReturn(Stream.of(Person.builder().build()));
Pagination pagination = getPagination();
personRepository.findAll(pagination, Sorts.sorts().asc("name"));
ArgumentCaptor<DocumentQuery> captor = ArgumentCaptor.forClass(DocumentQuery.class);
verify(template).select(captor.capture());
DocumentQuery query = captor.getValue();
assertEquals("Person", query.getDocumentCollection());
assertEquals(pagination.getSkip(), query.getSkip());
assertEquals(pagination.getLimit(), query.getLimit());
assertThat(query.getSorts(), Matchers.contains(Sort.asc("name")));
}
use of jakarta.nosql.document.DocumentQuery in project jnosql-diana by eclipse.
the class DefaultDocumentQueryPaginationTest method shouldOverrideSkipLimit.
@Test
public void shouldOverrideSkipLimit() {
DocumentQuery query = select().from("column").build();
Pagination pagination = Pagination.page(1).size(2);
DocumentQueryPagination queryPagination = DocumentQueryPagination.of(query, pagination);
assertNotNull(queryPagination);
assertEquals(pagination.getLimit(), queryPagination.getLimit());
assertEquals(pagination.getSkip(), queryPagination.getSkip());
}
use of jakarta.nosql.document.DocumentQuery in project jnosql-diana by eclipse.
the class DefaultDocumentQueryPaginationTest method shouldNext.
@Test
public void shouldNext() {
DocumentQuery query = select().from("column").where("name").eq("Ada").build();
Pagination pagination = Pagination.page(1).size(2);
Pagination secondPage = pagination.next();
DocumentQueryPagination queryPagination = DocumentQueryPagination.of(query, pagination);
assertNotNull(queryPagination);
assertEquals(pagination.getLimit(), queryPagination.getLimit());
assertEquals(pagination.getSkip(), queryPagination.getSkip());
isQueryEquals(query, pagination, queryPagination);
DocumentQueryPagination next = queryPagination.next();
isQueryEquals(query, secondPage, next);
}
use of jakarta.nosql.document.DocumentQuery in project jnosql-diana by eclipse.
the class ParamsBinderTest method shouldConvert2.
@Test
public void shouldConvert2() {
Method method = Stream.of(PersonRepository.class.getMethods()).filter(m -> m.getName().equals("findByAgeAndName")).findFirst().get();
ClassMapping classMapping = mappings.get(Person.class);
RepositoryDocumentObserverParser parser = new RepositoryDocumentObserverParser(classMapping);
paramsBinder = new ParamsBinder(classMapping, converters);
SelectMethodProvider selectMethodFactory = SelectMethodProvider.get();
SelectQuery selectQuery = selectMethodFactory.apply(method, classMapping.getName());
SelectQueryConverter converter = ServiceLoaderProvider.get(SelectQueryConverter.class);
DocumentQueryParams queryParams = converter.apply(selectQuery, parser);
Params params = queryParams.getParams();
paramsBinder.bind(params, new Object[] { 10L, "Ada" }, method);
DocumentQuery query = queryParams.getQuery();
DocumentCondition columnCondition = query.getCondition().get();
List<DocumentCondition> conditions = columnCondition.getDocument().get(new TypeReference<List<DocumentCondition>>() {
});
List<Object> values = conditions.stream().map(DocumentCondition::getDocument).map(Document::getValue).map(Value::get).collect(Collectors.toList());
assertEquals(10, values.get(0));
assertEquals("Ada", values.get(1));
}
use of jakarta.nosql.document.DocumentQuery in project jnosql-diana by eclipse.
the class DocumentPageTest method shouldExecutePaginationAsQuery.
@Test
public void shouldExecutePaginationAsQuery() {
Pagination pagination = Pagination.page(1).size(1);
DocumentQueryPagination queryPagination = DocumentQueryPagination.of(select().from("person").build(), pagination);
DocumentQuery query = queryPagination;
List<Person> people = subject.<Person>select(query).collect(Collectors.toList());
assertEquals(0L, people.stream().map(Person::getId).findFirst().orElse(-0L));
queryPagination = queryPagination.next();
query = queryPagination;
people = subject.<Person>select(query).collect(Collectors.toList());
assertEquals(1L, people.stream().map(Person::getId).findFirst().orElse(-0L));
queryPagination = queryPagination.next();
query = queryPagination;
people = subject.<Person>select(query).collect(Collectors.toList());
assertEquals(2L, people.stream().map(Person::getId).findFirst().orElse(-0L));
queryPagination = queryPagination.next();
query = queryPagination;
people = subject.<Person>select(query).collect(Collectors.toList());
assertEquals(3L, people.stream().map(Person::getId).findFirst().orElse(-0L));
queryPagination = queryPagination.next();
query = queryPagination;
people = subject.<Person>select(query).collect(Collectors.toList());
assertEquals(4L, people.stream().map(Person::getId).findFirst().orElse(-0L));
queryPagination = queryPagination.next();
query = queryPagination;
people = subject.<Person>select(query).collect(Collectors.toList());
assertEquals(5L, people.stream().map(Person::getId).findFirst().orElse(-0L));
}
Aggregations