Search in sources :

Example 41 with Condition

use of jakarta.nosql.query.Condition in project jnosql-diana by eclipse.

the class FindByMethodQueryProviderTest method shouldReturnParserQuery28.

@ParameterizedTest(name = "Should parser the query {0}")
@ValueSource(strings = { "findByAgeNotBetween" })
public void shouldReturnParserQuery28(String query) {
    String entity = "entity";
    SelectQuery selectQuery = queryProvider.apply(query, entity);
    assertNotNull(selectQuery);
    assertEquals(entity, selectQuery.getEntity());
    assertTrue(selectQuery.getFields().isEmpty());
    assertTrue(selectQuery.getOrderBy().isEmpty());
    assertEquals(0, selectQuery.getLimit());
    assertEquals(0, selectQuery.getSkip());
    Optional<Where> where = selectQuery.getWhere();
    assertTrue(where.isPresent());
    Condition condition = where.get().getCondition();
    QueryValue<?> value = condition.getValue();
    assertEquals(Operator.NOT, condition.getOperator());
    Condition notCondition = MethodConditionValue.class.cast(value).get().get(0);
    assertEquals(Operator.BETWEEN, notCondition.getOperator());
    QueryValue<?>[] values = MethodArrayValue.class.cast(notCondition.getValue()).get();
    ParamQueryValue param1 = (ParamQueryValue) values[0];
    ParamQueryValue param2 = (ParamQueryValue) values[1];
    assertNotEquals(param2.get(), param1.get());
}
Also used : SelectQuery(jakarta.nosql.query.SelectQuery) Condition(jakarta.nosql.query.Condition) ParamQueryValue(jakarta.nosql.query.ParamQueryValue) Where(jakarta.nosql.query.Where) ParamQueryValue(jakarta.nosql.query.ParamQueryValue) ConditionQueryValue(jakarta.nosql.query.ConditionQueryValue) QueryValue(jakarta.nosql.query.QueryValue) ValueSource(org.junit.jupiter.params.provider.ValueSource) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 42 with Condition

use of jakarta.nosql.query.Condition in project jnosql-diana by eclipse.

the class SelectQueryProviderTest method shouldReturnParserQuery18.

@ParameterizedTest(name = "Should parser the query {0}")
@ValueSource(strings = { "select  * from God where name = {\"diana\", 17, 20.21}" })
public void shouldReturnParserQuery18(String query) {
    SelectQuery selectQuery = checkSelectFromStart(query);
    assertTrue(selectQuery.getWhere().isPresent());
    Where where = selectQuery.getWhere().get();
    Condition condition = where.getCondition();
    QueryValue<?> value = condition.getValue();
    Assertions.assertEquals(Operator.EQUALS, condition.getOperator());
    assertEquals("name", condition.getName());
    assertTrue(value instanceof ArrayQueryValue);
    List<?> values = Stream.of(ArrayQueryValue.class.cast(value).get()).map(QueryValue::get).collect(toList());
    assertThat(values, contains("diana", 17L, 20.21));
}
Also used : SelectQuery(jakarta.nosql.query.SelectQuery) Condition(jakarta.nosql.query.Condition) Where(jakarta.nosql.query.Where) ArrayQueryValue(jakarta.nosql.query.ArrayQueryValue) ValueSource(org.junit.jupiter.params.provider.ValueSource) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 43 with Condition

use of jakarta.nosql.query.Condition in project jnosql-diana by eclipse.

the class SelectQueryProviderTest method shouldReturnParserQuery27.

@ParameterizedTest(name = "Should parser the query {0}")
@ValueSource(strings = { "select  * from God where name = \"Ada\" and age = 20 or" + " siblings = {\"apollo\": \"Brother\", \"Zeus\": \"Father\"}" })
public void shouldReturnParserQuery27(String query) {
    SelectQuery selectQuery = checkSelectFromStart(query);
    assertTrue(selectQuery.getWhere().isPresent());
    Where where = selectQuery.getWhere().get();
    Condition condition = where.getCondition();
    QueryValue<?> value = condition.getValue();
    Assertions.assertEquals(Operator.AND, condition.getOperator());
    assertEquals("_AND", condition.getName());
    assertTrue(value instanceof ConditionQueryValue);
    List<Condition> conditions = ConditionQueryValue.class.cast(value).get();
    assertEquals(3, conditions.size());
    condition = conditions.get(0);
    value = condition.getValue();
    Assertions.assertEquals(Operator.EQUALS, condition.getOperator());
    assertEquals("name", condition.getName());
    assertTrue(value instanceof StringQueryValue);
    assertEquals("Ada", StringQueryValue.class.cast(value).get());
    condition = conditions.get(1);
    value = condition.getValue();
    Assertions.assertEquals(Operator.EQUALS, condition.getOperator());
    assertEquals("age", condition.getName());
    assertTrue(value instanceof NumberQueryValue);
    assertEquals(20L, NumberQueryValue.class.cast(value).get());
    condition = conditions.get(2);
    value = condition.getValue();
    Assertions.assertEquals(Operator.OR, condition.getOperator());
    conditions = ConditionQueryValue.class.cast(condition.getValue()).get();
    assertEquals(1, conditions.size());
    condition = conditions.get(0);
    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"));
}
Also used : SelectQuery(jakarta.nosql.query.SelectQuery) Condition(jakarta.nosql.query.Condition) NumberQueryValue(jakarta.nosql.query.NumberQueryValue) ConditionQueryValue(jakarta.nosql.query.ConditionQueryValue) JsonObject(javax.json.JsonObject) StringQueryValue(jakarta.nosql.query.StringQueryValue) Where(jakarta.nosql.query.Where) JSONQueryValue(jakarta.nosql.query.JSONQueryValue) ValueSource(org.junit.jupiter.params.provider.ValueSource) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 44 with Condition

use of jakarta.nosql.query.Condition in project jnosql-diana by eclipse.

the class SelectQueryProviderTest method shouldReturnParserQuery14.

@ParameterizedTest(name = "Should parser the query {0}")
@ValueSource(strings = { "select  * from God where age between 10 and 30" })
public void shouldReturnParserQuery14(String query) {
    SelectQuery selectQuery = checkSelectFromStart(query);
    assertTrue(selectQuery.getWhere().isPresent());
    Where where = selectQuery.getWhere().get();
    Condition condition = where.getCondition();
    QueryValue<?> value = condition.getValue();
    Assertions.assertEquals(Operator.BETWEEN, condition.getOperator());
    assertEquals("age", condition.getName());
    assertTrue(value instanceof ArrayQueryValue);
    ArrayQueryValue arrayValue = ArrayQueryValue.class.cast(value);
    QueryValue<?>[] values = arrayValue.get();
    assertThat(Stream.of(values).map(QueryValue::get).collect(toList()), contains(10L, 30L));
}
Also used : SelectQuery(jakarta.nosql.query.SelectQuery) Condition(jakarta.nosql.query.Condition) Where(jakarta.nosql.query.Where) ArrayQueryValue(jakarta.nosql.query.ArrayQueryValue) ParamQueryValue(jakarta.nosql.query.ParamQueryValue) FunctionQueryValue(jakarta.nosql.query.FunctionQueryValue) ConditionQueryValue(jakarta.nosql.query.ConditionQueryValue) StringQueryValue(jakarta.nosql.query.StringQueryValue) NumberQueryValue(jakarta.nosql.query.NumberQueryValue) QueryValue(jakarta.nosql.query.QueryValue) ArrayQueryValue(jakarta.nosql.query.ArrayQueryValue) JSONQueryValue(jakarta.nosql.query.JSONQueryValue) ValueSource(org.junit.jupiter.params.provider.ValueSource) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 45 with Condition

use of jakarta.nosql.query.Condition in project jnosql-diana by eclipse.

the class SelectQueryProviderTest method shouldReturnParserQuery17.

@ParameterizedTest(name = "Should parser the query {0}")
@ValueSource(strings = { "select  * from God where name = {\"diana\"}" })
public void shouldReturnParserQuery17(String query) {
    SelectQuery selectQuery = checkSelectFromStart(query);
    assertTrue(selectQuery.getWhere().isPresent());
    Where where = selectQuery.getWhere().get();
    Condition condition = where.getCondition();
    QueryValue<?> value = condition.getValue();
    Assertions.assertEquals(Operator.EQUALS, condition.getOperator());
    assertEquals("name", condition.getName());
    assertTrue(value instanceof ArrayQueryValue);
    List<?> values = Stream.of(ArrayQueryValue.class.cast(value).get()).map(QueryValue::get).collect(toList());
    assertThat(values, contains("diana"));
}
Also used : SelectQuery(jakarta.nosql.query.SelectQuery) Condition(jakarta.nosql.query.Condition) Where(jakarta.nosql.query.Where) ArrayQueryValue(jakarta.nosql.query.ArrayQueryValue) ValueSource(org.junit.jupiter.params.provider.ValueSource) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Aggregations

Condition (jakarta.nosql.query.Condition)79 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)66 ValueSource (org.junit.jupiter.params.provider.ValueSource)66 Where (jakarta.nosql.query.Where)61 SelectQuery (jakarta.nosql.query.SelectQuery)31 DeleteQuery (jakarta.nosql.query.DeleteQuery)29 NumberQueryValue (jakarta.nosql.query.NumberQueryValue)28 ConditionQueryValue (jakarta.nosql.query.ConditionQueryValue)25 StringQueryValue (jakarta.nosql.query.StringQueryValue)24 ParamQueryValue (jakarta.nosql.query.ParamQueryValue)18 JsonObject (javax.json.JsonObject)18 JSONQueryValue (jakarta.nosql.query.JSONQueryValue)16 FunctionQueryValue (jakarta.nosql.query.FunctionQueryValue)10 ArrayQueryValue (jakarta.nosql.query.ArrayQueryValue)8 Function (jakarta.nosql.query.Function)8 InsertQuery (jakarta.nosql.query.InsertQuery)7 UpdateQuery (jakarta.nosql.query.UpdateQuery)7 QueryValue (jakarta.nosql.query.QueryValue)6 Operator (jakarta.nosql.query.Operator)3 ArrayList (java.util.ArrayList)2