Search in sources :

Example 56 with Value

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());
}
Also used : ColumnQuery(jakarta.nosql.column.ColumnQuery) Pagination(jakarta.nosql.mapping.Pagination) Value(jakarta.nosql.Value) Collections.singletonList(java.util.Collections.singletonList) List(java.util.List) Person(jakarta.nosql.tck.entities.Person) ColumnCondition(jakarta.nosql.column.ColumnCondition) Test(org.junit.jupiter.api.Test)

Example 57 with Value

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"));
}
Also used : ColumnQuery(jakarta.nosql.column.ColumnQuery) Value(jakarta.nosql.Value) Collections.singletonList(java.util.Collections.singletonList) Arrays.asList(java.util.Arrays.asList) List(java.util.List) Person(jakarta.nosql.tck.entities.Person) ColumnCondition(jakarta.nosql.column.ColumnCondition) Test(org.junit.jupiter.api.Test)

Example 58 with Value

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());
}
Also used : ClassMapping(org.eclipse.jnosql.mapping.reflection.ClassMapping) ParamsBinder(org.eclipse.jnosql.mapping.util.ParamsBinder) ColumnQueryParams(jakarta.nosql.column.ColumnQueryParams) Params(jakarta.nosql.Params) Method(java.lang.reflect.Method) ColumnQueryParams(jakarta.nosql.column.ColumnQueryParams) SelectQuery(jakarta.nosql.query.SelectQuery) ColumnQuery(jakarta.nosql.column.ColumnQuery) SelectQueryConverter(jakarta.nosql.column.SelectQueryConverter) SelectMethodProvider(org.eclipse.jnosql.communication.query.method.SelectMethodProvider) Value(jakarta.nosql.Value) ColumnCondition(jakarta.nosql.column.ColumnCondition) Test(org.junit.jupiter.api.Test)

Example 59 with Value

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());
}
Also used : Book(org.eclipse.jnosql.mapping.graph.model.Book) Value(jakarta.nosql.Value) Person(org.eclipse.jnosql.mapping.graph.model.Person) Test(org.junit.jupiter.api.Test)

Example 60 with Value

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"));
}
Also used : Value(jakarta.nosql.Value) Params(jakarta.nosql.Params) List(java.util.List) Test(org.junit.jupiter.api.Test)

Aggregations

Value (jakarta.nosql.Value)66 Test (org.junit.jupiter.api.Test)53 Params (jakarta.nosql.Params)23 List (java.util.List)16 TypeReference (jakarta.nosql.TypeReference)7 KeyValueEntity (jakarta.nosql.keyvalue.KeyValueEntity)7 KeyValuePreparedStatement (jakarta.nosql.keyvalue.KeyValuePreparedStatement)7 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)7 QueryException (jakarta.nosql.QueryException)6 Column (jakarta.nosql.column.Column)6 BigInteger (java.math.BigInteger)6 Collectors.toList (java.util.stream.Collectors.toList)6 Stream (java.util.stream.Stream)6 ColumnQuery (jakarta.nosql.column.ColumnQuery)5 Map (java.util.Map)5 ServiceLoaderProvider (jakarta.nosql.ServiceLoaderProvider)4 BucketManager (jakarta.nosql.keyvalue.BucketManager)4 Person (jakarta.nosql.tck.entities.Person)4 Predicate (com.hazelcast.query.Predicate)3 ColumnCondition (jakarta.nosql.column.ColumnCondition)3