1 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 { 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 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 } 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 { 104 } 105 } 106 | Popular Tags |