1 package xuml.tools.model.compiler.runtime.query;
2
3 import static org.junit.Assert.assertEquals;
4 import static xuml.tools.model.compiler.runtime.query.SelectBuilder.builder;
5
6 import java.io.Serializable;
7
8 import org.junit.Test;
9
10 import scala.concurrent.duration.Duration;
11 import xuml.tools.model.compiler.runtime.Entity;
12 import xuml.tools.model.compiler.runtime.EntityHelper;
13 import xuml.tools.model.compiler.runtime.Event;
14
15 public class SelectBuilderTest {
16
17 private final NumericExpressionField<Ent> f = new NumericExpressionField<Ent>(
18 new Field("field"));
19
20 private final StringExpressionField<Ent> g = new StringExpressionField<Ent>(new Field("field"));
21
22 @Test
23 public void testClauseGenerationEquals() {
24 assertEquals("(e.field = :_p1)", builder(f.eq(3)).getClause());
25 }
26
27 @Test
28 public void testClauseGenerationLessThan() {
29 assertEquals("(e.field < :_p1)", builder(f.lt(3)).getClause());
30 }
31
32 @Test
33 public void testClauseGenerationLessThanOrEquals() {
34 assertEquals("(e.field <= :_p1)", builder(f.lte(3)).getClause());
35 }
36
37 @Test
38 public void testClauseGenerationGreaterThan() {
39 assertEquals("(e.field > :_p1)", builder(f.gt(3)).getClause());
40 }
41
42 @Test
43 public void testClauseGenerationGreaterThanOrEquals() {
44 assertEquals("(e.field >= :_p1)", builder(f.gte(3)).getClause());
45 }
46
47 @Test
48 public void testClauseGenerationAnd() {
49 assertEquals("((e.field > :_p1) and (e.field < :_p2))",
50 builder(f.gt(1).and(f.lt(3))).getClause());
51 }
52
53 @Test
54 public void testClauseGenerationOr() {
55 assertEquals("((e.field > :_p1) or (e.field < :_p2))",
56 builder(f.gt(1).or(f.lt(3))).getClause());
57 }
58
59 @Test
60 public void testClauseGenerationPlus() {
61 assertEquals("((e.field + e.field) <= :_p1)", builder(f.plus(f).lte(3)).getClause());
62 }
63
64 @Test
65 public void testClauseGenerationMinus() {
66 assertEquals("((e.field - e.field) <= :_p1)", builder(f.minus(f).lte(3)).getClause());
67 }
68
69 @Test
70 public void testClauseGenerationTimes() {
71 assertEquals("((e.field * e.field) <= :_p1)", builder(f.times(f).lte(3)).getClause());
72 }
73
74 @Test
75 public void testClauseGenerationDivide() {
76 assertEquals("((e.field / e.field) <= :_p1)", builder(f.divide(f).lte(3)).getClause());
77 }
78
79 @Test
80 public void testSqlGivenNonEmptyClause() {
81 assertEquals("select e from Ent e where (e.field=1)",
82 SelectBuilder.getSql(Ent.class, "(e.field=1)"));
83 }
84
85 @Test
86 public void testSqlGivenEmptyClause() {
87 assertEquals("select e from Ent e", SelectBuilder.getSql(Ent.class, ""));
88 }
89
90 @Test
91 public void testClauseGenerationStringEquals() {
92 assertEquals("(e.field = :_p1)", builder(g.eq("hello")).getClause());
93 }
94
95
96
97
98
99
100
101
102 private static class Ent implements Entity<Ent> {
103
104 @Override
105 public Serializable getId() {
106
107 return null;
108 }
109
110 @Override
111 public String uniqueId() {
112
113 return null;
114 }
115
116 @Override
117 public Ent signal(Event<Ent> event) {
118
119 return null;
120 }
121
122 @Override
123 public Ent signal(Event<Ent> event, Duration delay) {
124
125 return null;
126 }
127
128 @Override
129 public Ent event(Event<Ent> event) {
130
131 return null;
132 }
133
134 @Override
135 public EntityHelper helper() {
136
137 return null;
138 }
139
140 @Override
141 public Ent signal(Event<Ent> event, long time) {
142
143 return null;
144 }
145
146 }
147 }