@Test public void shouldBuildSelectStarFromOneTable() { query = builder.selectStar().from("table").query(); assertThatSql(query, is("SELECT * FROM table")); }
@Test public void shouldBuildSelectColumnsFromOneTableAs() { query = builder.select("col1", "col2").from("table AS nodes").query(); assertThatSql(query, is("SELECT nodes.col1, nodes.col2 FROM table AS nodes")); }
@Test public void shouldBuildSelectColumnsUsingAliasFromOneTableAs() { query = builder.select("col1", "nodes.col2").from("table AS nodes").query(); assertThatSql(query, is("SELECT nodes.col1, nodes.col2 FROM table AS nodes")); }
@Test public void shouldBuildQueryWithChildConstraint() { query = builder.selectStar().from("table AS nodes").where().isChild("nodes", "/parent/path").end().query(); assertThatSql(query, is("SELECT * FROM table AS nodes WHERE ISCHILDNODE(nodes,'/parent/path')")); }
@Test public void shouldBuildQueryWithCriteriaUsingLengthEqualTo() { query = builder.selectStar() .from("table AS nodes") .where() .length("nodes", "property") .isEqualTo("literal") .end() .query(); assertThatSql(query, is("SELECT * FROM table AS nodes " + // "WHERE LENGTH(nodes.property) = 'literal'")); }
@Test public void shouldBuildQueryWithCriteriaUsingLengthEqualToVariable() { query = builder.selectStar() .from("table AS nodes") .where() .length("nodes", "property") .isEqualToVariable("literal") .end() .query(); assertThatSql(query, is("SELECT * FROM table AS nodes " + // "WHERE LENGTH(nodes.property) = $literal")); }
@Test public void shouldBuildQueryWithCriteriaUsingLengthLike() { query = builder.selectStar().from("table AS nodes").where().length("nodes", "property").isLike("literal").end().query(); assertThatSql(query, is("SELECT * FROM table AS nodes " + // "WHERE LENGTH(nodes.property) LIKE 'literal'")); }
@Test public void shouldBuildQueryWithCriteriaUsingNodeDepthEqualToLiteral() { query = builder.selectStar().from("table AS nodes").where().depth("nodes").isEqualTo(3).end().query(); assertThatSql(query, is("SELECT * FROM table AS nodes " + // "WHERE DEPTH(nodes) = CAST('3' AS LONG)")); }
@Test public void shouldBuildQueryWithCriteriaUsingNodeNameEqualTo() { query = builder.selectStar().from("table AS nodes").where().nodeName("nodes").isEqualTo("literal").end().query(); assertThatSql(query, is("SELECT * FROM table AS nodes " + // "WHERE NAME(nodes) = 'literal'")); }
@Test public void shouldBuildQueryWithCriteriaUsingNodeNameNotEqualToVariable() { query = builder.selectStar() .from("table AS nodes") .where() .nodeName("nodes") .isNotEqualToVariable("literal") .end() .query(); assertThatSql(query, is("SELECT * FROM table AS nodes " + // "WHERE NAME(nodes) <> $literal")); }
@Test public void shouldBuildQueryWithCriteriaUsingNodeNameGreaterThanOrEqualToVariable() { query = builder.selectStar() .from("table AS nodes") .where() .nodeName("nodes") .isGreaterThanOrEqualToVariable("literal") .end() .query(); assertThatSql(query, is("SELECT * FROM table AS nodes " + // "WHERE NAME(nodes) >= $literal")); }
@Test public void shouldBuildQueryWithCriteriaUsingNodeLocalNameNotEqualTo() { query = builder.selectStar().from("table AS nodes").where().nodeLocalName("nodes").isNotEqualTo("literal").end().query(); assertThatSql(query, is("SELECT * FROM table AS nodes " + // "WHERE LOCALNAME(nodes) <> 'literal'")); }
@Test public void shouldBuildQueryWithCriteriaUsingNodeLocalNameGreaterThanVariable() { query = builder.selectStar() .from("table AS nodes") .where() .nodeLocalName("nodes") .isGreaterThanVariable("literal") .end() .query(); assertThatSql(query, is("SELECT * FROM table AS nodes " + // "WHERE LOCALNAME(nodes) > $literal")); }
@Test public void shouldBuildQueryWithCriteriaUsingNodeLocalNameLike() { query = builder.selectStar().from("table AS nodes").where().nodeLocalName("nodes").isLike("literal").end().query(); assertThatSql(query, is("SELECT * FROM table AS nodes " + // "WHERE LOCALNAME(nodes) LIKE 'literal'")); }
@Test public void shouldBuildQueryWithCriteriaUsingLengthNotEqualTo() { query = builder.selectStar() .from("table AS nodes") .where() .length("nodes", "property") .isNotEqualTo("literal") .end() .query(); assertThatSql(query, is("SELECT * FROM table AS nodes " + // "WHERE LENGTH(nodes.property) <> 'literal'")); }
@Test public void shouldBuildQueryWithCriteriaUsingLengthLikeVariable() { query = builder.selectStar() .from("table AS nodes") .where() .length("nodes", "property") .isLikeVariable("literal") .end() .query(); assertThatSql(query, is("SELECT * FROM table AS nodes " + // "WHERE LENGTH(nodes.property) LIKE $literal")); }
@Test public void shouldBuildQueryWithCriteriaUsingNodeNameLessThanOrEqualTo() { query = builder.selectStar() .from("table AS nodes") .where() .nodeName("nodes") .isLessThanOrEqualTo("literal") .end() .query(); assertThatSql(query, is("SELECT * FROM table AS nodes " + // "WHERE NAME(nodes) <= 'literal'")); }
@Test public void shouldBuildQueryWithCriteriaUsingNodeLocalNameLessThanOrEqualTo() { query = builder.selectStar() .from("table AS nodes") .where() .nodeLocalName("nodes") .isLessThanOrEqualTo("literal") .end() .query(); assertThatSql(query, is("SELECT * FROM table AS nodes " + // "WHERE LOCALNAME(nodes) <= 'literal'")); }
@Test public void shouldBuildQueryWithCriteriaUsingNodeLocalNameLessThanOrEqualToVariable() { query = builder.selectStar() .from("table AS nodes") .where() .nodeLocalName("nodes") .isLessThanOrEqualToVariable("literal") .end() .query(); assertThatSql(query, is("SELECT * FROM table AS nodes " + // "WHERE LOCALNAME(nodes) <= $literal")); }
@Test public void shouldProducePlanWhenFullTextSearchingTableWithAtLeastOneSearchableColumn() { schemata = schemataBuilder.addTable("someTable", "column1", "column2", "column3").makeSearchable("someTable", "column1") .build(); query = builder.select("column1", "column4").from("someTable").where().search("someTable", "term1").end().query(); initQueryContext(); plan = planner.createPlan(queryContext, query); assertThat(problems.hasErrors(), is(true)); }