use of jakarta.nosql.Value in project jnosql-diana by eclipse.
the class ColumnRepositoryProxyPaginationTest method shouldFindByAgeBetween.
@Test
public void shouldFindByAgeBetween() {
Person ada = Person.builder().withAge(20).withName("Ada").build();
when(template.select(any(ColumnQuery.class))).thenReturn(Stream.of(ada));
Pagination pagination = getPagination();
personRepository.findByAgeBetween(10, 15, pagination);
ArgumentCaptor<ColumnQuery> captor = ArgumentCaptor.forClass(ColumnQuery.class);
verify(template).select(captor.capture());
ColumnQuery query = captor.getValue();
ColumnCondition condition = query.getCondition().get();
assertEquals("Person", query.getColumnFamily());
assertEquals(BETWEEN, condition.getCondition());
List<Value> values = condition.getColumn().get(new TypeReference<List<Value>>() {
});
assertEquals(Arrays.asList(10, 15), values.stream().map(Value::get).collect(Collectors.toList()));
assertTrue(condition.getColumn().getName().contains("age"));
assertEquals(pagination.getSkip(), query.getSkip());
assertEquals(pagination.getLimit(), query.getLimit());
}
use of jakarta.nosql.Value in project jnosql-diana by eclipse.
the class ColumnRepositoryProxyTest method shouldFindByAgeBetween.
@Test
public void shouldFindByAgeBetween() {
Person ada = Person.builder().withAge(20).withName("Ada").build();
when(template.select(any(ColumnQuery.class))).thenReturn(Stream.of(ada));
personRepository.findByAgeBetween(10, 15);
ArgumentCaptor<ColumnQuery> captor = ArgumentCaptor.forClass(ColumnQuery.class);
verify(template).select(captor.capture());
ColumnQuery query = captor.getValue();
ColumnCondition condition = query.getCondition().get();
assertEquals("Person", query.getColumnFamily());
assertEquals(BETWEEN, condition.getCondition());
List<Value> values = condition.getColumn().get(new TypeReference<List<Value>>() {
});
assertEquals(Arrays.asList(10, 15), values.stream().map(Value::get).collect(Collectors.toList()));
assertTrue(condition.getColumn().getName().contains("age"));
}
use of jakarta.nosql.Value in project jnosql-diana by eclipse.
the class ParamsBinderTest method shouldConvert.
@Test
public void shouldConvert() {
Method method = Stream.of(PersonRepository.class.getMethods()).filter(m -> m.getName().equals("findByAge")).findFirst().get();
ClassMapping classMapping = mappings.get(Person.class);
RepositoryColumnObserverParser parser = new RepositoryColumnObserverParser(classMapping);
paramsBinder = new ParamsBinder(classMapping, converters);
SelectMethodProvider selectMethodFactory = SelectMethodProvider.get();
SelectQuery selectQuery = selectMethodFactory.apply(method, classMapping.getName());
SelectQueryConverter converter = ServiceLoaderProvider.get(SelectQueryConverter.class);
ColumnQueryParams columnQueryParams = converter.apply(selectQuery, parser);
Params params = columnQueryParams.getParams();
Object[] args = { 10 };
paramsBinder.bind(params, args, method);
ColumnQuery query = columnQueryParams.getQuery();
ColumnCondition columnCondition = query.getCondition().get();
Value value = columnCondition.getColumn().getValue();
assertEquals(10, value.get());
}
use of jakarta.nosql.Value in project jnosql-diana by eclipse.
the class EdgeEntityTest method shouldFindProperty.
@Test
public void shouldFindProperty() {
Person person = graphTemplate.insert(Person.builder().withName("Poliana").withAge().build());
Book book = graphTemplate.insert(Book.builder().withAge(2007).withName("The Shack").build());
EdgeEntity edge = graphTemplate.edge(person, "reads", book);
edge.add("where", "Brazil");
Optional<Value> where = edge.get("where");
assertTrue(where.isPresent());
assertEquals("Brazil", where.get().get());
assertFalse(edge.get("not").isPresent());
}
use of jakarta.nosql.Value in project jnosql-diana by eclipse.
the class ColumnParamsTest method shouldAddParameter.
@Test
public void shouldAddParameter() {
Params params = Params.newParams();
Value name = params.add("name");
assertNotNull(name);
MatcherAssert.<List<String>>assertThat(params.getParametersNames(), containsInAnyOrder("name"));
}
Aggregations