Search in sources :

Example 16 with StringQueryValue

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

the class SelectQueryProviderTest method shouldReturnParserQuery29.

@ParameterizedTest(name = "Should parser the query {0}")
@ValueSource(strings = { "select  * from God where name = \"Ada\" and age = 20 or" + " siblings = {\"apollo\": \"Brother\", \"Zeus\": \"Father\"} and birthday =" + " convert(\"2007-12-03\", java.time.LocalDate)" })
public void shouldReturnParserQuery29(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(4, 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);
    Assertions.assertEquals(Operator.OR, condition.getOperator());
    assertEquals(1, ConditionQueryValue.class.cast(condition.getValue()).get().size());
    Condition c = ConditionQueryValue.class.cast(condition.getValue()).get().get(0);
    value = c.getValue();
    Assertions.assertEquals(Operator.EQUALS, c.getOperator());
    assertEquals("siblings", c.getName());
    assertTrue(value instanceof JSONQueryValue);
    JsonObject jsonObject = JSONQueryValue.class.cast(value).get();
    assertEquals("Brother", jsonObject.getString("apollo"));
    assertEquals("Father", jsonObject.getString("Zeus"));
    condition = conditions.get(3);
    value = condition.getValue();
    Assertions.assertEquals(Operator.EQUALS, condition.getOperator());
    assertEquals("birthday", condition.getName());
    assertTrue(value instanceof FunctionQueryValue);
    Function function = FunctionQueryValue.class.cast(value).get();
    assertEquals("convert", function.getName());
    Object[] params = function.getParams();
    assertEquals("2007-12-03", StringQueryValue.class.cast(params[0]).get());
    assertEquals(LocalDate.class, params[1]);
}
Also used : Condition(jakarta.nosql.query.Condition) JsonObject(javax.json.JsonObject) StringQueryValue(jakarta.nosql.query.StringQueryValue) JSONQueryValue(jakarta.nosql.query.JSONQueryValue) SelectQuery(jakarta.nosql.query.SelectQuery) NumberQueryValue(jakarta.nosql.query.NumberQueryValue) Function(jakarta.nosql.query.Function) ConditionQueryValue(jakarta.nosql.query.ConditionQueryValue) JsonObject(javax.json.JsonObject) FunctionQueryValue(jakarta.nosql.query.FunctionQueryValue) Where(jakarta.nosql.query.Where) ValueSource(org.junit.jupiter.params.provider.ValueSource) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 17 with StringQueryValue

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

the class SelectQueryProviderTest method shouldReturnParserQuery16.

@ParameterizedTest(name = "Should parser the query {0}")
@ValueSource(strings = { "select  * from God where name = 'diana'" })
public void shouldReturnParserQuery16(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 StringQueryValue);
    assertEquals("diana", value.get());
}
Also used : SelectQuery(jakarta.nosql.query.SelectQuery) Condition(jakarta.nosql.query.Condition) StringQueryValue(jakarta.nosql.query.StringQueryValue) Where(jakarta.nosql.query.Where) ValueSource(org.junit.jupiter.params.provider.ValueSource) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 18 with StringQueryValue

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

the class UpdateQueryProviderTest method shouldReturnParserQuery.

@ParameterizedTest(name = "Should parser the query {0}")
@ValueSource(strings = { "update God (name = \"Diana\")" })
public void shouldReturnParserQuery(String query) {
    UpdateQuery updateQuery = checkUpdateFromStart(query);
    List<Condition> conditions = updateQuery.getConditions();
    assertEquals(1, conditions.size());
    Condition condition = conditions.get(0);
    assertEquals("name", condition.getName());
    assertEquals(Operator.EQUALS, condition.getOperator());
    QueryValue<?> value = condition.getValue();
    assertTrue(value instanceof StringQueryValue);
    assertEquals("Diana", StringQueryValue.class.cast(value).get());
}
Also used : Condition(jakarta.nosql.query.Condition) UpdateQuery(jakarta.nosql.query.UpdateQuery) StringQueryValue(jakarta.nosql.query.StringQueryValue) ValueSource(org.junit.jupiter.params.provider.ValueSource) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 19 with StringQueryValue

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

the class PutProviderTest method shouldReturnParserQuery.

@ParameterizedTest(name = "Should parser the query {0}")
@ValueSource(strings = { "put {\"Ada\", \"Hunt\"}\n" })
public void shouldReturnParserQuery(String query) {
    PutQuery putQuery = provider.apply(query);
    QueryValue<?> key = putQuery.getKey();
    QueryValue<?> value = putQuery.getValue();
    Optional<Duration> ttl = putQuery.getTtl();
    assertTrue(key instanceof StringQueryValue);
    assertEquals("Ada", StringQueryValue.class.cast(key).get());
    assertFalse(ttl.isPresent());
    assertTrue(value instanceof StringQueryValue);
    assertEquals("Hunt", StringQueryValue.class.cast(value).get());
    assertFalse(ttl.isPresent());
}
Also used : Duration(java.time.Duration) PutQuery(jakarta.nosql.query.PutQuery) StringQueryValue(jakarta.nosql.query.StringQueryValue) ValueSource(org.junit.jupiter.params.provider.ValueSource) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 20 with StringQueryValue

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

the class GetProviderTest method shouldReturnParserQuery.

@ParameterizedTest(name = "Should parser the query {0}")
@ValueSource(strings = { "get \"Diana\"" })
public void shouldReturnParserQuery(String query) {
    GetQuery getQuery = queryProvider.apply(query);
    List<QueryValue<?>> keys = getQuery.getKeys();
    assertEquals(1, keys.size());
    QueryValue<?> key = keys.get(0);
    assertTrue(key instanceof StringQueryValue);
    assertEquals("Diana", StringQueryValue.class.cast(key).get());
}
Also used : GetQuery(jakarta.nosql.query.GetQuery) StringQueryValue(jakarta.nosql.query.StringQueryValue) NumberQueryValue(jakarta.nosql.query.NumberQueryValue) QueryValue(jakarta.nosql.query.QueryValue) ArrayQueryValue(jakarta.nosql.query.ArrayQueryValue) StringQueryValue(jakarta.nosql.query.StringQueryValue) ValueSource(org.junit.jupiter.params.provider.ValueSource) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Aggregations

StringQueryValue (jakarta.nosql.query.StringQueryValue)27 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)25 ValueSource (org.junit.jupiter.params.provider.ValueSource)25 Condition (jakarta.nosql.query.Condition)22 Where (jakarta.nosql.query.Where)17 NumberQueryValue (jakarta.nosql.query.NumberQueryValue)15 ConditionQueryValue (jakarta.nosql.query.ConditionQueryValue)12 JSONQueryValue (jakarta.nosql.query.JSONQueryValue)10 JsonObject (javax.json.JsonObject)10 SelectQuery (jakarta.nosql.query.SelectQuery)9 DeleteQuery (jakarta.nosql.query.DeleteQuery)8 Function (jakarta.nosql.query.Function)4 FunctionQueryValue (jakarta.nosql.query.FunctionQueryValue)4 Duration (java.time.Duration)3 ArrayQueryValue (jakarta.nosql.query.ArrayQueryValue)2 InsertQuery (jakarta.nosql.query.InsertQuery)2 PutQuery (jakarta.nosql.query.PutQuery)2 QueryValue (jakarta.nosql.query.QueryValue)2 UpdateQuery (jakarta.nosql.query.UpdateQuery)2 DelQuery (jakarta.nosql.query.DelQuery)1