diff options
author | James Ahlborn <jtahlborn@yahoo.com> | 2018-10-18 23:41:02 +0000 |
---|---|---|
committer | James Ahlborn <jtahlborn@yahoo.com> | 2018-10-18 23:41:02 +0000 |
commit | 6d1e438383db09bbc7e2780cc20f127f8ac2492e (patch) | |
tree | c853d750a3357aac934d391cc7f32f5a83784249 /src/test/java/com | |
parent | e95602c37770ba5caec5810d74327234f90532d3 (diff) | |
download | jackcess-6d1e438383db09bbc7e2780cc20f127f8ac2492e.tar.gz jackcess-6d1e438383db09bbc7e2780cc20f127f8ac2492e.zip |
rework string conversion to date; add support for dates with implicit years; implement DatePart function
git-svn-id: https://svn.code.sf.net/p/jackcess/code/jackcess/trunk@1210 f203690c-595d-4dc9-a70b-905162fa7fd2
Diffstat (limited to 'src/test/java/com')
-rw-r--r-- | src/test/java/com/healthmarketscience/jackcess/PropertyExpressionTest.java | 2 | ||||
-rw-r--r-- | src/test/java/com/healthmarketscience/jackcess/impl/expr/DefaultFunctionsTest.java | 30 |
2 files changed, 29 insertions, 3 deletions
diff --git a/src/test/java/com/healthmarketscience/jackcess/PropertyExpressionTest.java b/src/test/java/com/healthmarketscience/jackcess/PropertyExpressionTest.java index d9f4932..ffb2dd3 100644 --- a/src/test/java/com/healthmarketscience/jackcess/PropertyExpressionTest.java +++ b/src/test/java/com/healthmarketscience/jackcess/PropertyExpressionTest.java @@ -294,7 +294,7 @@ public class PropertyExpressionTest extends TestCase public static void testCustomEvalConfig() throws Exception { - TemporalConfig tempConf = new TemporalConfig("yyyy/M/d", + TemporalConfig tempConf = new TemporalConfig("yyyy/M/d", "M/d", "hh.mm.ss a", "HH.mm.ss", '/', '.', Locale.US); diff --git a/src/test/java/com/healthmarketscience/jackcess/impl/expr/DefaultFunctionsTest.java b/src/test/java/com/healthmarketscience/jackcess/impl/expr/DefaultFunctionsTest.java index 575da31..c3f5f68 100644 --- a/src/test/java/com/healthmarketscience/jackcess/impl/expr/DefaultFunctionsTest.java +++ b/src/test/java/com/healthmarketscience/jackcess/impl/expr/DefaultFunctionsTest.java @@ -17,6 +17,8 @@ limitations under the License. package com.healthmarketscience.jackcess.impl.expr; import java.math.BigDecimal; +import java.util.Calendar; +import java.util.Date; import com.healthmarketscience.jackcess.expr.EvalException; import junit.framework.TestCase; @@ -34,8 +36,6 @@ public class DefaultFunctionsTest extends TestCase super(name); } - // FIXME, test more number/string functions - public void testFuncs() throws Exception { assertEquals("foo", eval("=IIf(10 > 1, \"foo\", \"bar\")")); @@ -78,15 +78,21 @@ public class DefaultFunctionsTest extends TestCase eval("=CSng(\"57.12345\")")); assertEquals("9786", eval("=CStr(9786)")); assertEquals("-42", eval("=CStr(-42)")); + assertEquals(new Date(1041483600000L), eval("=CDate('01/02/2003')")); + assertEquals(new Date(1041508800000L), eval("=CDate('01/02/2003 7:00:00 AM')")); + assertEquals(new Date(-1948781520000L), eval("=CDate(3013.45)")); + assertEquals(-1, eval("=IsNull(Null)")); assertEquals(0, eval("=IsNull(13)")); assertEquals(-1, eval("=IsDate(#01/02/2003#)")); assertEquals(0, eval("=IsDate('foo')")); + assertEquals(0, eval("=IsDate('200')")); assertEquals(0, eval("=IsNumeric(Null)")); assertEquals(0, eval("=IsNumeric('foo')")); assertEquals(0, eval("=IsNumeric(#01/02/2003#)")); + assertEquals(0, eval("=IsNumeric('01/02/2003')")); assertEquals(-1, eval("=IsNumeric(37)")); assertEquals(-1, eval("=IsNumeric(' 37 ')")); assertEquals(-1, eval("=IsNumeric(' -37.5e2 ')")); @@ -245,6 +251,8 @@ public class DefaultFunctionsTest extends TestCase assertEquals(2003, eval("=Year('01/02/2003 7:00:00 AM')")); assertEquals(1899, eval("=Year(#7:00:00 AM#)")); + assertEquals(Calendar.getInstance().get(Calendar.YEAR), + eval("=Year('01/02 7:00:00 AM')")); assertEquals("January", eval("=MonthName(1)")); assertEquals("Feb", eval("=MonthName(2,True)")); @@ -280,6 +288,24 @@ public class DefaultFunctionsTest extends TestCase assertEquals("2/12/2010", eval("=CStr(DateSerial(10,2,12))")); assertEquals("7/12/2013", eval("=CStr(DateSerial(2014,-5,12))")); assertEquals("8/7/2013", eval("=CStr(DateSerial(2014,-5,38))")); + + assertEquals(1, eval("=DatePart('ww',#01/03/2018#)")); + assertEquals(2, eval("=DatePart('ww',#01/03/2018#,4)")); + assertEquals(1, eval("=DatePart('ww',#01/03/2018#,5)")); + assertEquals(1, eval("=DatePart('ww',#01/03/2018#,4,3)")); + assertEquals(52, eval("=DatePart('ww',#01/03/2018#,5,3)")); + assertEquals(1, eval("=DatePart('ww',#01/03/2018#,4,2)")); + assertEquals(53, eval("=DatePart('ww',#01/03/2018#,5,2)")); + assertEquals(2003, eval("=DatePart('yyyy',#11/22/2003 5:45:13 AM#)")); + assertEquals(4, eval("=DatePart('q',#11/22/2003 5:45:13 AM#)")); + assertEquals(11, eval("=DatePart('m',#11/22/2003 5:45:13 AM#)")); + assertEquals(326, eval("=DatePart('y',#11/22/2003 5:45:13 AM#)")); + assertEquals(22, eval("=DatePart('d',#11/22/2003 5:45:13 AM#)")); + assertEquals(7, eval("=DatePart('w',#11/22/2003 5:45:13 AM#)")); + assertEquals(3, eval("=DatePart('w',#11/22/2003 5:45:13 AM#, 5)")); + assertEquals(5, eval("=DatePart('h',#11/22/2003 5:45:13 AM#)")); + assertEquals(45, eval("=DatePart('n',#11/22/2003 5:45:13 AM#)")); + assertEquals(13, eval("=DatePart('s',#11/22/2003 5:45:13 AM#)")); } public void testFinancialFuncs() throws Exception |