Search in sources :

Example 21 with StringQueryValue

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

the class InsertQueryProviderTest method shouldReturnParserQuery.

@ParameterizedTest(name = "Should parser the query {0}")
@ValueSource(strings = { "insert God (name = \"Diana\")" })
public void shouldReturnParserQuery(String query) {
    InsertQuery insertQuery = checkInsertFromStart(query);
    List<Condition> conditions = insertQuery.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());
    assertFalse(insertQuery.getTtl().isPresent());
}
Also used : Condition(jakarta.nosql.query.Condition) InsertQuery(jakarta.nosql.query.InsertQuery) StringQueryValue(jakarta.nosql.query.StringQueryValue) ValueSource(org.junit.jupiter.params.provider.ValueSource) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 22 with StringQueryValue

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

the class InsertQueryProviderTest method checkTTL.

private void checkTTL(InsertQuery insertQuery, Duration duration) {
    List<Condition> conditions = insertQuery.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());
    Optional<Duration> ttl = insertQuery.getTtl();
    assertTrue(ttl.isPresent());
    assertEquals(duration, ttl.get());
}
Also used : Condition(jakarta.nosql.query.Condition) Duration(java.time.Duration) StringQueryValue(jakarta.nosql.query.StringQueryValue)

Example 23 with StringQueryValue

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

the class DeleteQueryProviderTest method shouldReturnParserQuery18.

@ParameterizedTest(name = "Should parser the query {0}")
@ValueSource(strings = { "delete from God where name = \"Ada\" and age = 20 and" + " siblings = {\"apollo\": \"Brother\", \"Zeus\": \"Father\"}" })
public void shouldReturnParserQuery18(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.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.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 : Condition(jakarta.nosql.query.Condition) NumberQueryValue(jakarta.nosql.query.NumberQueryValue) ConditionQueryValue(jakarta.nosql.query.ConditionQueryValue) JsonObject(javax.json.JsonObject) DeleteQuery(jakarta.nosql.query.DeleteQuery) 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 24 with StringQueryValue

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

the class DeleteQueryProviderTest method shouldReturnParserQuery17.

@ParameterizedTest(name = "Should parser the query {0}")
@ValueSource(strings = { "delete from God where name not like \"Ada\"" })
public void shouldReturnParserQuery17(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.NOT, condition.getOperator());
    assertEquals("_NOT", condition.getName());
    assertTrue(value instanceof ConditionQueryValue);
    List<Condition> conditions = ConditionQueryValue.class.cast(value).get();
    assertEquals(1, conditions.size());
    condition = conditions.get(0);
    value = condition.getValue();
    Assertions.assertEquals(Operator.LIKE, condition.getOperator());
    assertEquals("name", condition.getName());
    assertTrue(value instanceof StringQueryValue);
    assertEquals("Ada", StringQueryValue.class.cast(value).get());
}
Also used : Condition(jakarta.nosql.query.Condition) ConditionQueryValue(jakarta.nosql.query.ConditionQueryValue) DeleteQuery(jakarta.nosql.query.DeleteQuery) StringQueryValue(jakarta.nosql.query.StringQueryValue) Where(jakarta.nosql.query.Where) ValueSource(org.junit.jupiter.params.provider.ValueSource) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 25 with StringQueryValue

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

the class DeleteQueryProviderTest method shouldReturnParserQuery19.

@ParameterizedTest(name = "Should parser the query {0}")
@ValueSource(strings = { "delete from God where name = \"Ada\" or age = 20 or" + " siblings = {\"apollo\": \"Brother\", \"Zeus\": \"Father\"}" })
public void shouldReturnParserQuery19(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.OR, condition.getOperator());
    assertEquals("_OR", 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.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 : Condition(jakarta.nosql.query.Condition) NumberQueryValue(jakarta.nosql.query.NumberQueryValue) ConditionQueryValue(jakarta.nosql.query.ConditionQueryValue) JsonObject(javax.json.JsonObject) DeleteQuery(jakarta.nosql.query.DeleteQuery) 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)

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