View Javadoc
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      // TODO do the other tests
96  
97      /*********************/
98  
99      /** Utility Methods **/
100     /*********************/
101 
102     private static class Ent implements Entity<Ent> {
103 
104         @Override
105         public Serializable getId() {
106             // TODO Auto-generated method stub
107             return null;
108         }
109 
110         @Override
111         public String uniqueId() {
112             // TODO Auto-generated method stub
113             return null;
114         }
115 
116         @Override
117         public Ent signal(Event<Ent> event) {
118             // TODO Auto-generated method stub
119             return null;
120         }
121 
122         @Override
123         public Ent signal(Event<Ent> event, Duration delay) {
124             // TODO Auto-generated method stub
125             return null;
126         }
127 
128         @Override
129         public Ent event(Event<Ent> event) {
130             // TODO Auto-generated method stub
131             return null;
132         }
133 
134         @Override
135         public EntityHelper helper() {
136             // TODO Auto-generated method stub
137             return null;
138         }
139 
140         @Override
141         public Ent signal(Event<Ent> event, long time) {
142             // TODO Auto-generated method stub
143             return null;
144         }
145 
146     }
147 }