KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > db4o > test > nativequery > expr > build > ExpressionBuilderTestCase


1 /* Copyright (C) 2004 - 2006 db4objects Inc. http://www.db4o.com
2
3 This file is part of the db4o open source object database.
4
5 db4o is free software; you can redistribute it and/or modify it under
6 the terms of version 2 of the GNU General Public License as published
7 by the Free Software Foundation and as clarified by db4objects' GPL
8 interpretation policy, available at
9 http://www.db4o.com/about/company/legalpolicies/gplinterpretation/
10 Alternatively you can write to db4objects, Inc., 1900 S Norfolk Street,
11 Suite 350, San Mateo, CA 94403, USA.
12
13 db4o is distributed in the hope that it will be useful, but WITHOUT ANY
14 WARRANTY; without even the implied warranty of MERCHANTABILITY or
15 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16 for more details.
17
18 You should have received a copy of the GNU General Public License along
19 with this program; if not, write to the Free Software Foundation, Inc.,
20 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */

21 package com.db4o.test.nativequery.expr.build;
22
23 import com.db4o.nativequery.expr.*;
24 import com.db4o.nativequery.expr.build.*;
25 import com.db4o.nativequery.expr.cmp.*;
26 import com.db4o.nativequery.expr.cmp.field.*;
27 import com.db4o.test.nativequery.expr.*;
28
29 import db4ounit.*;
30
31 public class ExpressionBuilderTestCase implements TestCase, TestLifeCycle {
32     private MockComparisonExpressionBuilder mockBuilder;
33     private ExpressionBuilder builder;
34     private Expression expr;
35     private Expression other;
36     
37     public void setUp() throws Exception JavaDoc {
38         mockBuilder=new MockComparisonExpressionBuilder();
39         builder=new ExpressionBuilder();
40         expr=mockBuilder.build();
41         other=mockBuilder.build();
42     }
43     
44     public void testConstant() {
45         Assert.areSame(BoolConstExpression.TRUE,builder.constant(Boolean.TRUE));
46         Assert.areSame(BoolConstExpression.FALSE,builder.constant(Boolean.FALSE));
47         // TODO: Move to const expr (or expr) test
48
Assert.areEqual(BoolConstExpression.FALSE,BoolConstExpression.expr(false));
49         Assert.areEqual(BoolConstExpression.TRUE,BoolConstExpression.expr(true));
50     }
51
52     public void testNot() {
53         Assert.areSame(BoolConstExpression.FALSE,builder.not(BoolConstExpression.TRUE));
54         Assert.areSame(BoolConstExpression.TRUE,builder.not(BoolConstExpression.FALSE));
55         Assert.areSame(BoolConstExpression.TRUE,builder.not(builder.not(BoolConstExpression.TRUE)));
56         Assert.areSame(BoolConstExpression.FALSE,builder.not(builder.not(BoolConstExpression.FALSE)));
57         Assert.areEqual(new NotExpression(expr),builder.not(expr));
58         Assert.areEqual(new ComparisonExpression(new FieldValue(CandidateFieldRoot.INSTANCE,"foo"),new ConstValue(Boolean.TRUE),ComparisonOperator.EQUALS),
59                     builder.not(new ComparisonExpression(new FieldValue(CandidateFieldRoot.INSTANCE,"foo"),new ConstValue(Boolean.FALSE),ComparisonOperator.EQUALS)));
60     }
61     
62     public void testAnd() {
63         Assert.areSame(BoolConstExpression.FALSE,builder.and(BoolConstExpression.FALSE,expr));
64         Assert.areSame(BoolConstExpression.FALSE,builder.and(expr,BoolConstExpression.FALSE));
65         Assert.areSame(expr,builder.and(BoolConstExpression.TRUE,expr));
66         Assert.areSame(expr,builder.and(expr,BoolConstExpression.TRUE));
67         Assert.areEqual(expr,builder.and(expr,expr));
68         Assert.areEqual(BoolConstExpression.FALSE,builder.and(expr,builder.not(expr)));
69         Assert.areEqual(new AndExpression(expr,other),builder.and(expr,other));
70     }
71
72     public void testOr() {
73         Assert.areSame(BoolConstExpression.TRUE,builder.or(BoolConstExpression.TRUE,expr));
74         Assert.areSame(BoolConstExpression.TRUE,builder.or(expr,BoolConstExpression.TRUE));
75         Assert.areSame(expr,builder.or(BoolConstExpression.FALSE,expr));
76         Assert.areSame(expr,builder.or(expr,BoolConstExpression.FALSE));
77         Assert.areSame(expr,builder.or(expr,expr));
78         Assert.areEqual(BoolConstExpression.TRUE,builder.or(expr,builder.not(expr)));
79         Assert.areEqual(new OrExpression(expr,other),builder.or(expr,other));
80     }
81     
82     public void testIfThenElse() {
83         Assert.areSame(expr,builder.ifThenElse(BoolConstExpression.TRUE,expr,other));
84         Assert.areSame(other,builder.ifThenElse(BoolConstExpression.FALSE,expr,other));
85         Assert.areSame(BoolConstExpression.TRUE,builder.ifThenElse(expr,BoolConstExpression.TRUE,BoolConstExpression.TRUE));
86         Assert.areSame(BoolConstExpression.FALSE,builder.ifThenElse(expr,BoolConstExpression.FALSE,BoolConstExpression.FALSE));
87         Assert.areSame(expr,builder.ifThenElse(expr,BoolConstExpression.TRUE,BoolConstExpression.FALSE));
88         Assert.areEqual(new NotExpression(expr),builder.ifThenElse(expr,BoolConstExpression.FALSE,BoolConstExpression.TRUE));
89         Assert.areEqual(builder.or(expr,other),builder.ifThenElse(expr,BoolConstExpression.TRUE,other));
90         // FIXME more compund boolean constraint tests
91
//Assert.areEqual(builder.or(expr,builder.and(builder.not(expr),other)),builder.ifThenElse(expr,BoolConstExpression.TRUE,other));
92
}
93     
94     public void testCombined() {
95         Expression a=mockBuilder.build();
96         Expression b=mockBuilder.build();
97         Expression exp1=builder.and(a,builder.constant(Boolean.TRUE));
98         Expression exp2=builder.and(BoolConstExpression.FALSE,builder.not(b));
99         Expression exp=builder.or(exp1,exp2);
100         Assert.areEqual(a,exp);
101     }
102
103     public void tearDown() throws Exception JavaDoc {
104     }
105 }
106
Popular Tags