Search in sources :

Example 16 with Query

use of org.molgenis.api.model.Query in project molgenis by molgenis.

the class QueryConverterTest method testCreateQuery.

@Test
void testCreateQuery() {
    String rsqlQuery = "item==value";
    ComparisonNode node = new ComparisonNode(new ComparisonOperator("=="), "item", singletonList("value"));
    Query query = Query.builder().setItem("item").setOperator(Operator.EQUALS).build();
    when(node.accept(rsqlVisitor)).thenReturn(query);
    assertEquals(query, queryConverter.convert(rsqlQuery));
    verify(rsqlVisitor).visit(node, null);
}
Also used : ComparisonOperator(cz.jirutka.rsql.parser.ast.ComparisonOperator) ComparisonNode(cz.jirutka.rsql.parser.ast.ComparisonNode) Query(org.molgenis.api.model.Query) Test(org.junit.jupiter.api.Test) AbstractMockitoTest(org.molgenis.test.AbstractMockitoTest)

Example 17 with Query

use of org.molgenis.api.model.Query in project molgenis by molgenis.

the class QueryRsqlVisitorTest method testVisitComparisonNodeSearchQueryAllSelector.

@Test
void testVisitComparisonNodeSearchQueryAllSelector() {
    String selector = "*";
    String argument = "piet";
    ComparisonOperator operator = new ComparisonOperator("=sq=");
    ComparisonNode node = new ComparisonNode(operator, selector, singletonList(argument));
    Query query = Query.builder().setItem(null).setOperator(SEARCH_QUERY).setValue(argument).build();
    assertEquals(query, queryRsqlVisitor.visit(node));
}
Also used : ComparisonOperator(cz.jirutka.rsql.parser.ast.ComparisonOperator) ComparisonNode(cz.jirutka.rsql.parser.ast.ComparisonNode) Query(org.molgenis.api.model.Query) Test(org.junit.jupiter.api.Test) AbstractMockitoTest(org.molgenis.test.AbstractMockitoTest) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 18 with Query

use of org.molgenis.api.model.Query in project molgenis by molgenis.

the class QueryRsqlVisitorTest method testVisitOrNode.

@Test
void testVisitOrNode() {
    String argument0 = "piet";
    ComparisonOperator operator0 = new ComparisonOperator("=q=");
    ComparisonNode node0 = new ComparisonNode(operator0, "*", singletonList(argument0));
    String argument1 = "jan";
    ComparisonOperator operator1 = new ComparisonOperator("=q=");
    ComparisonNode node1 = new ComparisonNode(operator1, "*", singletonList(argument1));
    OrNode orNode = new OrNode(asList(node0, node1));
    Query query = Query.builder().setOperator(OR).setValue(asList(Query.builder().setOperator(MATCHES).setValue(argument0).build(), Query.builder().setOperator(MATCHES).setValue(argument1).build())).build();
    assertEquals(query, queryRsqlVisitor.visit(orNode));
}
Also used : ComparisonOperator(cz.jirutka.rsql.parser.ast.ComparisonOperator) ComparisonNode(cz.jirutka.rsql.parser.ast.ComparisonNode) Query(org.molgenis.api.model.Query) OrNode(cz.jirutka.rsql.parser.ast.OrNode) Test(org.junit.jupiter.api.Test) AbstractMockitoTest(org.molgenis.test.AbstractMockitoTest) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 19 with Query

use of org.molgenis.api.model.Query in project molgenis by molgenis.

the class QueryRsqlVisitorTest method testVisitComparisonNodeGreaterThanOrEqual.

@ParameterizedTest
@MethodSource("testVisitComparisonNodeGreaterThanOrEqualProvider")
void testVisitComparisonNodeGreaterThanOrEqual(String symbol) {
    String selector = "age";
    String argument = "87";
    ComparisonOperator operator = new ComparisonOperator(symbol);
    ComparisonNode node = new ComparisonNode(operator, selector, singletonList(argument));
    Query query = Query.builder().setItem(selector).setOperator(GREATER_THAN_OR_EQUAL_TO).setValue(argument).build();
    assertEquals(query, queryRsqlVisitor.visit(node));
}
Also used : ComparisonOperator(cz.jirutka.rsql.parser.ast.ComparisonOperator) ComparisonNode(cz.jirutka.rsql.parser.ast.ComparisonNode) Query(org.molgenis.api.model.Query) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) MethodSource(org.junit.jupiter.params.provider.MethodSource)

Example 20 with Query

use of org.molgenis.api.model.Query in project molgenis by molgenis.

the class QueryRsqlVisitorTest method testVisitComparisonNodeEquals.

@Test
void testVisitComparisonNodeEquals() {
    String selector = "name";
    String argument = "piet";
    ComparisonOperator operator = new ComparisonOperator("==");
    ComparisonNode node = new ComparisonNode(operator, selector, singletonList(argument));
    Query query = Query.builder().setItem(selector).setOperator(EQUALS).setValue(argument).build();
    assertEquals(query, queryRsqlVisitor.visit(node));
}
Also used : ComparisonOperator(cz.jirutka.rsql.parser.ast.ComparisonOperator) ComparisonNode(cz.jirutka.rsql.parser.ast.ComparisonNode) Query(org.molgenis.api.model.Query) Test(org.junit.jupiter.api.Test) AbstractMockitoTest(org.molgenis.test.AbstractMockitoTest) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Aggregations

Query (org.molgenis.api.model.Query)58 Test (org.junit.jupiter.api.Test)52 AbstractMockitoTest (org.molgenis.test.AbstractMockitoTest)52 Entity (org.molgenis.data.Entity)27 Attribute (org.molgenis.data.meta.model.Attribute)22 QueryImpl (org.molgenis.data.support.QueryImpl)22 ComparisonNode (cz.jirutka.rsql.parser.ast.ComparisonNode)17 ComparisonOperator (cz.jirutka.rsql.parser.ast.ComparisonOperator)17 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)16 EntityType (org.molgenis.data.meta.model.EntityType)15 Sort (org.molgenis.api.model.Sort)14 Selection (org.molgenis.api.model.Selection)9 Fetch (org.molgenis.data.Fetch)7 AttributeMetadata (org.molgenis.data.meta.model.AttributeMetadata)5 MethodSource (org.junit.jupiter.params.provider.MethodSource)4 EntitiesResponse (org.molgenis.api.data.v3.model.EntitiesResponse)2 QueryRule (org.molgenis.data.QueryRule)2 AndNode (cz.jirutka.rsql.parser.ast.AndNode)1 OrNode (cz.jirutka.rsql.parser.ast.OrNode)1 Stream (java.util.stream.Stream)1