use of jakarta.nosql.query.DeleteQuery in project jnosql-diana by eclipse.
the class BaseDocumentRepository method getDeleteQuery.
protected DocumentDeleteQuery getDeleteQuery(Method method, Object[] args) {
DeleteMethodProvider methodProvider = DeleteMethodProvider.get();
DeleteQuery deleteQuery = methodProvider.apply(method, getClassMapping().getName());
DeleteQueryConverter converter = ServiceLoaderProvider.get(DeleteQueryConverter.class);
DocumentDeleteQueryParams queryParams = converter.apply(deleteQuery, getParser());
DocumentDeleteQuery query = queryParams.getQuery();
Params params = queryParams.getParams();
getParamsBinder().bind(params, args, method);
return query;
}
use of jakarta.nosql.query.DeleteQuery in project jnosql-diana by eclipse.
the class DeleteByMethodQueryProviderTest method checkAppendCondition.
private void checkAppendCondition(String query, Operator operator, Operator operator2, String variable, String variable2, Operator operatorAppender) {
String entity = "entity";
DeleteQuery deleteQuery = queryProvider.apply(query, entity);
assertNotNull(deleteQuery);
assertEquals(entity, deleteQuery.getEntity());
assertTrue(deleteQuery.getFields().isEmpty());
Optional<Where> where = deleteQuery.getWhere();
assertTrue(where.isPresent());
Condition condition = where.get().getCondition();
QueryValue<?> value = condition.getValue();
assertEquals(operatorAppender, condition.getOperator());
assertTrue(value instanceof ConditionQueryValue);
Condition condition1 = ConditionQueryValue.class.cast(value).get().get(0);
Condition condition2 = ConditionQueryValue.class.cast(value).get().get(1);
assertEquals(operator, condition1.getOperator());
QueryValue<?> param = condition1.getValue();
assertEquals(operator, condition1.getOperator());
assertTrue(ParamQueryValue.class.cast(param).get().contains(variable));
assertEquals(operator2, condition2.getOperator());
QueryValue<?> param2 = condition2.getValue();
assertEquals(condition2.getOperator(), operator2);
assertTrue(ParamQueryValue.class.cast(param2).get().contains(variable2));
}
use of jakarta.nosql.query.DeleteQuery in project jnosql-diana by eclipse.
the class DeleteQueryProviderTest method shouldReturnParserQuery7.
@ParameterizedTest(name = "Should parser the query {0}")
@ValueSource(strings = { "delete from God where stamina < 10.23" })
public void shouldReturnParserQuery7(String query) {
DeleteQuery deleteQuery = checkDeleteFromStart(query);
assertTrue(deleteQuery.getWhere().isPresent());
Where where = deleteQuery.getWhere().get();
Condition condition = where.getCondition();
QueryValue<?> value = condition.getValue();
Assertions.assertEquals(Operator.LESSER_THAN, condition.getOperator());
assertEquals("stamina", condition.getName());
assertTrue(value instanceof NumberQueryValue);
assertEquals(10.23, value.get());
}
use of jakarta.nosql.query.DeleteQuery in project jnosql-diana by eclipse.
the class DeleteQueryProviderTest method shouldReturnParserQuery12.
@ParameterizedTest(name = "Should parser the query {0}")
@ValueSource(strings = { "delete from God where siblings = {\"apollo\": \"Brother\", \"Zeus\": \"Father\"}" })
public void shouldReturnParserQuery12(String query) {
DeleteQuery deleteQuery = checkDeleteFromStart(query);
assertTrue(deleteQuery.getWhere().isPresent());
Where where = deleteQuery.getWhere().get();
Condition condition = where.getCondition();
QueryValue<?> value = condition.getValue();
Assertions.assertEquals(Operator.EQUALS, condition.getOperator());
assertEquals("siblings", condition.getName());
assertTrue(value instanceof JSONQueryValue);
JsonObject jsonObject = JSONQueryValue.class.cast(value).get();
assertEquals("Brother", jsonObject.getString("apollo"));
assertEquals("Father", jsonObject.getString("Zeus"));
}
use of jakarta.nosql.query.DeleteQuery in project jnosql-diana by eclipse.
the class DeleteQueryProviderTest method shouldReturnParserQuery2.
@ParameterizedTest(name = "Should parser the query {0}")
@ValueSource(strings = { "delete name, address from God" })
public void shouldReturnParserQuery2(String query) {
DeleteQuery deleteQuery = selectProvider.apply(query);
assertEquals("God", deleteQuery.getEntity());
assertFalse(deleteQuery.getFields().isEmpty());
assertThat(deleteQuery.getFields(), contains("name", "address"));
assertFalse(deleteQuery.getWhere().isPresent());
}
Aggregations