Browse Source

more tests

git-svn-id: https://svn.code.sf.net/p/jackcess/code/jackcess/trunk@1177 f203690c-595d-4dc9-a70b-905162fa7fd2
tags/jackcess-2.2.0
James Ahlborn 5 years ago
parent
commit
0a182fbac9

+ 1
- 0
src/main/java/com/healthmarketscience/jackcess/impl/expr/Expressionator.java View File

@@ -923,6 +923,7 @@ public class Expressionator
buf.next();
t = buf.peekNext();
if(isString(t, "null")) {
buf.next();
return SpecOp.IS_NOT_NULL;
}
}

+ 35
- 0
src/test/java/com/healthmarketscience/jackcess/impl/expr/ExpressionatorTest.java View File

@@ -45,6 +45,9 @@ public class ExpressionatorTest extends TestCase
-1.0000002d,-1.0d,-0.0002013d,0.0d, 0.9234d,1.0d,1.954d,2.200032d,3.001d,
4.9321d,5.0d,6.66666d,7.396d,8.1d,9.20456200d,10.325d};

private static final int TRUE_NUM = -1;
private static final int FALSE_NUM = 0;

public ExpressionatorTest(String name) {
super(name);
}
@@ -273,6 +276,36 @@ public class ExpressionatorTest extends TestCase
}
}

public void testComparison() throws Exception
{
assertEquals(TRUE_NUM, eval("='blah'<'fuzz'"));
assertEquals(FALSE_NUM, eval("=23>56"));
assertEquals(TRUE_NUM, eval("=13.2<=45.8"));
assertEquals(FALSE_NUM, eval("='blah'='fuzz'"));
assertEquals(TRUE_NUM, eval("='blah'<>'fuzz'"));
assertEquals(TRUE_NUM, eval("=CDbl(13.2)<=CDbl(45.8)"));

assertEquals(FALSE_NUM, eval("='blah' Is Null"));
assertEquals(TRUE_NUM, eval("='blah' Is Not Null"));

assertEquals(TRUE_NUM, eval("='blah' Between 'a' And 'z'"));
assertEquals(FALSE_NUM, eval("='blah' Not Between 'a' And 'z'"));

assertEquals(TRUE_NUM, eval("='blah' In ('foo','bar','blah')"));
assertEquals(FALSE_NUM, eval("='blah' Not In ('foo','bar','blah')"));

assertEquals(TRUE_NUM, eval("=True Xor False"));
assertEquals(TRUE_NUM, eval("=True Or False"));
assertEquals(FALSE_NUM, eval("=True Imp False"));
assertEquals(FALSE_NUM, eval("=True Eqv False"));
assertEquals(TRUE_NUM, eval("=Not(True Eqv False)"));
}

public void testDateArith() throws Exception
{
assertEquals(new Date(1041508800000L), eval("=#01/02/2003# + #7:00:00#"));
}

public void testTrickyMathExpressions() throws Exception
{
assertEquals(37, eval("=30+7"));
@@ -323,6 +356,8 @@ public class ExpressionatorTest extends TestCase
"<THIS_COL> Like \"[abc*\"");
assertFalse(evalCondition("Like \"[abc*\"", "afcd"));
assertFalse(evalCondition("Like \"[abc*\"", "fcd"));
// FIXME, does access support "not like"
//assertTrue(evalCondition("Not Like \"[abc*\"", "fcd"));
assertFalse(evalCondition("Like \"[abc*\"", ""));
}


Loading…
Cancel
Save