Search in sources :

Example 1 with JSONQueryValue

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

the class SelectQueryProviderTest method shouldReturnParserQuery25.

@ParameterizedTest(name = "Should parser the query {0}")
@ValueSource(strings = { "select  * from God where name = \"Ada\" and age = 20 and" + " siblings = {\"apollo\": \"Brother\", \"Zeus\": \"Father\"}" })
public void shouldReturnParserQuery25(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.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 2 with JSONQueryValue

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

the class SelectQueryProviderTest method shouldReturnParserQuery26.

@ParameterizedTest(name = "Should parser the query {0}")
@ValueSource(strings = { "select  * from God where name = \"Ada\" or age = 20 or" + " siblings = {\"apollo\": \"Brother\", \"Zeus\": \"Father\"}" })
public void shouldReturnParserQuery26(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.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 : 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 3 with JSONQueryValue

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

the class UpdateQueryProviderTest method shouldReturnParserQuery3.

@ParameterizedTest(name = "Should parser the query {0}")
@ValueSource(strings = { "update God (siblings = {\"Apollo\": \"Brother\", \"Zeus\": \"Father\"})" })
public void shouldReturnParserQuery3(String query) {
    UpdateQuery updateQuery = checkUpdateFromStart(query);
    List<Condition> conditions = updateQuery.getConditions();
    assertEquals(1, conditions.size());
    Condition condition = conditions.get(0);
    assertEquals("siblings", condition.getName());
    assertEquals(Operator.EQUALS, condition.getOperator());
    QueryValue<?> value = condition.getValue();
    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) UpdateQuery(jakarta.nosql.query.UpdateQuery) JsonObject(javax.json.JsonObject) JSONQueryValue(jakarta.nosql.query.JSONQueryValue) ValueSource(org.junit.jupiter.params.provider.ValueSource) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 4 with JSONQueryValue

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

the class UpdateQueryProviderTest method shouldReturnParserQuery8.

@ParameterizedTest(name = "Should parser the query {0}")
@ValueSource(strings = { "update Person {\"name\": \"Ada Lovelace\", \"age\": 12, \"sibling\":" + " [\"Ana\" ,\"Maria\"]," + " \"address\":{\"country\": \"United Kingdom\", \"city\": \"London\"}}" })
public void shouldReturnParserQuery8(String query) {
    UpdateQuery updateQuery = update.apply(query);
    assertEquals("Person", updateQuery.getEntity());
    Assertions.assertTrue(updateQuery.getConditions().isEmpty());
    Assertions.assertTrue(updateQuery.getValue().isPresent());
    JSONQueryValue JSONQueryValue = updateQuery.getValue().get();
    JsonObject jsonObject = JSONQueryValue.get();
    JsonArray sibling = jsonObject.getJsonArray("sibling");
    JsonObject address = jsonObject.getJsonObject("address");
    assertEquals("Ada Lovelace", jsonObject.getString("name"));
    assertEquals("Ana", sibling.getString(0));
    assertEquals("Maria", sibling.getString(1));
    assertEquals("United Kingdom", address.getString("country"));
    assertEquals("London", address.getString("city"));
}
Also used : JsonArray(javax.json.JsonArray) UpdateQuery(jakarta.nosql.query.UpdateQuery) JsonObject(javax.json.JsonObject) JSONQueryValue(jakarta.nosql.query.JSONQueryValue) ValueSource(org.junit.jupiter.params.provider.ValueSource) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 5 with JSONQueryValue

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

the class UpdateQueryProviderTest method shouldReturnParserQuery7.

@ParameterizedTest(name = "Should parser the query {0}")
@ValueSource(strings = { "update Person {\"name\":\"Ada Lovelace\"}" })
public void shouldReturnParserQuery7(String query) {
    UpdateQuery updateQuery = update.apply(query);
    assertEquals("Person", updateQuery.getEntity());
    Assertions.assertTrue(updateQuery.getConditions().isEmpty());
    Assertions.assertTrue(updateQuery.getValue().isPresent());
    JSONQueryValue JSONQueryValue = updateQuery.getValue().get();
    JsonObject jsonObject = JSONQueryValue.get();
    assertEquals("Ada Lovelace", jsonObject.getString("name"));
}
Also used : UpdateQuery(jakarta.nosql.query.UpdateQuery) JsonObject(javax.json.JsonObject) JSONQueryValue(jakarta.nosql.query.JSONQueryValue) ValueSource(org.junit.jupiter.params.provider.ValueSource) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Aggregations

JSONQueryValue (jakarta.nosql.query.JSONQueryValue)21 JsonObject (javax.json.JsonObject)19 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)18 ValueSource (org.junit.jupiter.params.provider.ValueSource)18 Condition (jakarta.nosql.query.Condition)14 Where (jakarta.nosql.query.Where)12 ConditionQueryValue (jakarta.nosql.query.ConditionQueryValue)10 NumberQueryValue (jakarta.nosql.query.NumberQueryValue)10 StringQueryValue (jakarta.nosql.query.StringQueryValue)10 DeleteQuery (jakarta.nosql.query.DeleteQuery)6 SelectQuery (jakarta.nosql.query.SelectQuery)6 Function (jakarta.nosql.query.Function)4 FunctionQueryValue (jakarta.nosql.query.FunctionQueryValue)4 InsertQuery (jakarta.nosql.query.InsertQuery)4 UpdateQuery (jakarta.nosql.query.UpdateQuery)3 QueryException (jakarta.nosql.QueryException)2 JsonArray (javax.json.JsonArray)2 Column (jakarta.nosql.column.Column)1 ColumnEntity (jakarta.nosql.column.ColumnEntity)1 Document (jakarta.nosql.document.Document)1