use of jakarta.nosql.Value in project jnosql-diana by eclipse.
the class PutQueryParser method prepare.
public KeyValuePreparedStatement prepare(String query, BucketManager manager) {
PutQuery putQuery = provider.apply(query);
Params params = Params.newParams();
Value key = Values.getValue(putQuery.getKey(), params);
Value value = Values.getValue(putQuery.getValue(), params);
Optional<Duration> ttl = putQuery.getTtl();
return DefaultKeyValuePreparedStatement.put(key, value, manager, params, ttl.orElse(null), query);
}
use of jakarta.nosql.Value in project jnosql-diana by eclipse.
the class DefaultKeyValueEntityTest method shouldGetValue.
@Test
public void shouldGetValue() {
Value value = Value.of("value");
KeyValueEntity entity = KeyValueEntity.of("key", value);
assertNotNull(entity);
assertEquals("value", entity.getValue());
}
use of jakarta.nosql.Value in project jnosql-diana by eclipse.
the class DefaultKeyValueEntityTest method shouldGetKeyClass.
@Test
public void shouldGetKeyClass() {
Value value = Value.of("value");
KeyValueEntity entity = KeyValueEntity.of("10", value);
assertNotNull(entity);
assertEquals(Long.valueOf(10L), entity.getKey(Long.class));
}
use of jakarta.nosql.Value in project jnosql-diana by eclipse.
the class Values method get.
private static Object get(QueryValue<?> value, Params parameters) {
ValueType type = value.getType();
switch(type) {
case NUMBER:
case STRING:
return value.get();
case PARAMETER:
return parameters.add(ParamQueryValue.class.cast(value).get());
case ARRAY:
return Stream.of(ArrayQueryValue.class.cast(value).get()).map(v -> get(v, parameters)).collect(toList());
case FUNCTION:
Function function = FunctionQueryValue.class.cast(value).get();
String name = function.getName();
Object[] params = function.getParams();
if ("convert".equals(name)) {
return executeConvert(parameters, params);
}
String message = String.format("There is not support to the function: %s with parameters %s", name, Arrays.toString(params));
throw new QueryException(message);
case JSON:
return JSONQueryValue.class.cast(value).get().toString();
case CONDITION:
default:
throw new QueryException("There is not support to the value: " + type);
}
}
use of jakarta.nosql.Value in project jnosql-diana by eclipse.
the class DefaultKeyValueQueryParserTest method shouldReturnSingleResult.
@ParameterizedTest(name = "Should parser the query {0}")
@ValueSource(strings = { "get @id" })
public void shouldReturnSingleResult(String query) {
Mockito.when(manager.get(10)).thenReturn(Optional.of(Value.of(10L)));
ArgumentCaptor<Object> captor = ArgumentCaptor.forClass(List.class);
KeyValuePreparedStatement prepare = parser.prepare(query, manager);
prepare.bind("id", 10);
final Optional<Value> result = prepare.getSingleResult();
Mockito.verify(manager).get(captor.capture());
List<Object> value = captor.getAllValues();
assertEquals(1, value.size());
MatcherAssert.assertThat(value, Matchers.contains(10));
assertEquals(10L, result.get().get());
}
Aggregations