]> source.dussan.org Git - poi.git/commitdiff
Add some more tests from bug 63819
authorDominik Stadler <centic@apache.org>
Mon, 15 Jun 2020 20:51:36 +0000 (20:51 +0000)
committerDominik Stadler <centic@apache.org>
Mon, 15 Jun 2020 20:51:36 +0000 (20:51 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1878867 13f79535-47bb-0310-9956-ffa450edef68

src/testcases/org/apache/poi/ss/formula/functions/TestDateValue.java

index fb185cc7fb9e94a3f0b5529e9c70f73634b45208..1598c7a8f01e3275a4b69a94c70cb59b17820e88 100644 (file)
 package org.apache.poi.ss.formula.functions;
 
 import org.apache.poi.ss.formula.eval.BlankEval;
-import org.apache.poi.ss.formula.eval.BoolEval;
 import org.apache.poi.ss.formula.eval.ErrorEval;
 import org.apache.poi.ss.formula.eval.NumberEval;
 import org.apache.poi.ss.formula.eval.StringEval;
 import org.apache.poi.ss.formula.eval.ValueEval;
+import org.apache.poi.util.LocaleUtil;
 import org.junit.Test;
 
+import java.util.Locale;
+
 import static org.junit.Assert.assertEquals;
 
 /**
@@ -49,10 +51,23 @@ public final class TestDateValue {
         confirmDateValue(new StringEval("FEB/1/2020"), 43862);
         confirmDateValue(new StringEval("2020/02/01"), 43862);
 
-        confirmDateValue(new StringEval(""), BlankEval.instance);
-        confirmDateValue(BlankEval.instance, BlankEval.instance);
+        confirmDateValue(new StringEval(""));
+        confirmDateValue(BlankEval.instance);
+
+        confirmDateValueError(new StringEval("non-date text"));
+
+        LocaleUtil.setUserLocale(Locale.ENGLISH);
+        try {
+            // // EXCEL
+            confirmDateValue(new StringEval("8/22/2011"), 40777); // Serial number of a date entered as text.
+            confirmDateValue(new StringEval("22-MAY-2011"), 40685); // Serial number of a date entered as text.
+            confirmDateValue(new StringEval("2011/02/23"), 40597); // Serial number of a date entered as text.
 
-        confirmDateValue(new StringEval("non-date text"), ErrorEval.VALUE_INVALID);
+            // LibreOffice compatibility
+            confirmDateValue(new StringEval("1954-07-20"), 19925);
+        } finally {
+            LocaleUtil.setUserLocale(null);
+        }
     }
 
     private ValueEval invokeDateValue(ValueEval text) {
@@ -65,14 +80,14 @@ public final class TestDateValue {
         assertEquals(expected, ((NumberEval) result).getNumberValue(), 0.0001);
     }
 
-    private void confirmDateValue(ValueEval text, BlankEval expected) {
+    private void confirmDateValue(ValueEval text) {
         ValueEval result = invokeDateValue(text);
         assertEquals(BlankEval.class, result.getClass());
     }
 
-    private void confirmDateValue(ValueEval text, ErrorEval expected) {
+    private void confirmDateValueError(ValueEval text) {
         ValueEval result = invokeDateValue(text);
         assertEquals(ErrorEval.class, result.getClass());
-        assertEquals(expected.getErrorCode(), ((ErrorEval) result).getErrorCode());
+        assertEquals(ErrorEval.VALUE_INVALID.getErrorCode(), ((ErrorEval) result).getErrorCode());
     }
 }
\ No newline at end of file