Search in sources :

Example 26 with Node

use of org.apache.cayenne.access.sqlbuilder.sqltree.Node in project cayenne by apache.

the class OrderingStageTest method perform.

@Test
public void perform() {
    OrderingStage orderingStage = new OrderingStage();
    orderingStage.perform(context);
    Node select = context.getSelectBuilder().build();
    // Content of "select" node:
    // 
    // OrderBy
    // |
    // Empty
    // /     \
    // Column    "DESC"
    Node child = select.getChild(0);
    assertEquals(1, select.getChildrenCount());
    assertThat(child, instanceOf(OrderByNode.class));
    assertEquals(1, child.getChildrenCount());
    assertThat(child.getChild(0), instanceOf(EmptyNode.class));
    assertEquals(2, child.getChild(0).getChildrenCount());
    assertThat(child.getChild(0).getChild(0), instanceOf(ColumnNode.class));
    assertThat(child.getChild(0).getChild(1), instanceOf(TextNode.class));
    ColumnNode columnNode = (ColumnNode) child.getChild(0).getChild(0);
    assertEquals("path", columnNode.getColumn());
    assertEquals("Node { DESC}", child.getChild(0).getChild(1).toString());
}
Also used : EmptyNode(org.apache.cayenne.access.sqlbuilder.sqltree.EmptyNode) TextNode(org.apache.cayenne.access.sqlbuilder.sqltree.TextNode) Node(org.apache.cayenne.access.sqlbuilder.sqltree.Node) EmptyNode(org.apache.cayenne.access.sqlbuilder.sqltree.EmptyNode) OrderByNode(org.apache.cayenne.access.sqlbuilder.sqltree.OrderByNode) ColumnNode(org.apache.cayenne.access.sqlbuilder.sqltree.ColumnNode) ColumnNode(org.apache.cayenne.access.sqlbuilder.sqltree.ColumnNode) OrderByNode(org.apache.cayenne.access.sqlbuilder.sqltree.OrderByNode) TextNode(org.apache.cayenne.access.sqlbuilder.sqltree.TextNode) Test(org.junit.Test)

Example 27 with Node

use of org.apache.cayenne.access.sqlbuilder.sqltree.Node in project cayenne by apache.

the class GroupByStageTest method noAggregates.

// result column but no aggregates
@Test
public void noAggregates() {
    context.addResultNode(new ColumnNode("t0", "column", null, null));
    GroupByStage stage = new GroupByStage();
    stage.perform(context);
    Node node = context.getSelectBuilder().build();
    assertEquals(0, node.getChildrenCount());
}
Also used : GroupByNode(org.apache.cayenne.access.sqlbuilder.sqltree.GroupByNode) ColumnNode(org.apache.cayenne.access.sqlbuilder.sqltree.ColumnNode) Node(org.apache.cayenne.access.sqlbuilder.sqltree.Node) EmptyNode(org.apache.cayenne.access.sqlbuilder.sqltree.EmptyNode) ColumnNode(org.apache.cayenne.access.sqlbuilder.sqltree.ColumnNode) Test(org.junit.Test)

Example 28 with Node

use of org.apache.cayenne.access.sqlbuilder.sqltree.Node in project cayenne by apache.

the class GroupByStageTest method emptyContext.

// no result columns
@Test
public void emptyContext() {
    GroupByStage stage = new GroupByStage();
    stage.perform(context);
    Node node = context.getSelectBuilder().build();
    assertEquals(0, node.getChildrenCount());
}
Also used : GroupByNode(org.apache.cayenne.access.sqlbuilder.sqltree.GroupByNode) ColumnNode(org.apache.cayenne.access.sqlbuilder.sqltree.ColumnNode) Node(org.apache.cayenne.access.sqlbuilder.sqltree.Node) EmptyNode(org.apache.cayenne.access.sqlbuilder.sqltree.EmptyNode) Test(org.junit.Test)

Example 29 with Node

use of org.apache.cayenne.access.sqlbuilder.sqltree.Node in project cayenne by apache.

the class InsertBuilderTest method testInsertDbEntityCatalogAndSchema.

@Test
public void testInsertDbEntityCatalogAndSchema() {
    DbEntity entity = new DbEntity("test");
    entity.setSchema("schema");
    entity.setCatalog("catalog");
    InsertBuilder builder = new InsertBuilder(entity);
    Node node = builder.build();
    assertThat(node, instanceOf(InsertNode.class));
    assertSQL("INSERT INTO catalog.schema.test", node);
    assertQuotedSQL("INSERT INTO `catalog`.`schema`.`test`", node);
}
Also used : DbEntity(org.apache.cayenne.map.DbEntity) Node(org.apache.cayenne.access.sqlbuilder.sqltree.Node) InsertNode(org.apache.cayenne.access.sqlbuilder.sqltree.InsertNode) InsertNode(org.apache.cayenne.access.sqlbuilder.sqltree.InsertNode) Test(org.junit.Test)

Example 30 with Node

use of org.apache.cayenne.access.sqlbuilder.sqltree.Node in project cayenne by apache.

the class UpdateBuilderTest method testUpdateWithFields.

@Test
public void testUpdateWithFields() {
    UpdateBuilder builder = new UpdateBuilder("test");
    builder.set(column("col1").eq(value(1))).set(column("col2").eq(value("test"))).set(column("col3").eq(value(null)));
    Node node = builder.build();
    assertThat(node, instanceOf(UpdateNode.class));
    assertSQL("UPDATE test SET col1 = 1, col2 = 'test', col3 = NULL", node);
}
Also used : UpdateNode(org.apache.cayenne.access.sqlbuilder.sqltree.UpdateNode) Node(org.apache.cayenne.access.sqlbuilder.sqltree.Node) UpdateNode(org.apache.cayenne.access.sqlbuilder.sqltree.UpdateNode) Test(org.junit.Test)

Aggregations

Node (org.apache.cayenne.access.sqlbuilder.sqltree.Node)67 Test (org.junit.Test)32 ColumnNode (org.apache.cayenne.access.sqlbuilder.sqltree.ColumnNode)15 OpExpressionNode (org.apache.cayenne.access.sqlbuilder.sqltree.OpExpressionNode)15 FunctionNode (org.apache.cayenne.access.sqlbuilder.sqltree.FunctionNode)14 LimitOffsetNode (org.apache.cayenne.access.sqlbuilder.sqltree.LimitOffsetNode)13 TextNode (org.apache.cayenne.access.sqlbuilder.sqltree.TextNode)11 EmptyNode (org.apache.cayenne.access.sqlbuilder.sqltree.EmptyNode)9 ValueNode (org.apache.cayenne.access.sqlbuilder.sqltree.ValueNode)9 DbEntity (org.apache.cayenne.map.DbEntity)9 SelectNode (org.apache.cayenne.access.sqlbuilder.sqltree.SelectNode)8 InsertNode (org.apache.cayenne.access.sqlbuilder.sqltree.InsertNode)6 TrimmingColumnNode (org.apache.cayenne.access.sqlbuilder.sqltree.TrimmingColumnNode)6 QuotingAppendable (org.apache.cayenne.access.sqlbuilder.QuotingAppendable)5 UpdateNode (org.apache.cayenne.access.sqlbuilder.sqltree.UpdateNode)5 DeleteNode (org.apache.cayenne.access.sqlbuilder.sqltree.DeleteNode)4 InNode (org.apache.cayenne.access.sqlbuilder.sqltree.InNode)4 MysqlLimitOffsetNode (org.apache.cayenne.dba.mysql.sqltree.MysqlLimitOffsetNode)4 Expression (org.apache.cayenne.exp.Expression)4 SimpleNode (org.apache.cayenne.exp.parser.SimpleNode)4