Bug 60031: Enhance test some more

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1780450 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Dominik Stadler 2017-01-26 19:58:18 +00:00
parent 4a5f7765bb
commit 797ea00d09

View File

@ -815,17 +815,30 @@ public class TestDataFormatter {
assertEquals("5.6789", formatter.formatCellValue(cell, evaluator)); assertEquals("5.6789", formatter.formatCellValue(cell, evaluator));
wb.close(); wb.close();
} }
/** /**
* bug 60031: DataFormatter parses months incorrectly when put at the end of date segment * bug 60031: DataFormatter parses months incorrectly when put at the end of date segment
*/ */
@Test @Test
public void testBug60031() { public void testBug60031() {
// 23-08-2016 08:51:01 which is 42605.368761574071 as double will be parsed // 23-08-2016 08:51:01 which is 42605.368761574071 as double was parsed
// with format "yyyy-dd-MM HH:mm:ss" into "2016-23-51 08:51:01". // with format "yyyy-dd-MM HH:mm:ss" into "2016-23-51 08:51:01".
DataFormatter dfUS = new DataFormatter(Locale.US); DataFormatter dfUS = new DataFormatter(Locale.US);
assertEquals("2016-23-08 08:51:01", dfUS.formatRawCellContents(42605.368761574071, -1, "yyyy-dd-MM HH:mm:ss")); assertEquals("2016-23-08 08:51:01", dfUS.formatRawCellContents(42605.368761574071, -1, "yyyy-dd-MM HH:mm:ss"));
assertEquals("2017-12-01 January 09:54:33", dfUS.formatRawCellContents(42747.412892397523, -1, "yyyy-dd-MM MMMM HH:mm:ss")); assertEquals("2016-23 08:51:01 08", dfUS.formatRawCellContents(42605.368761574071, -1, "yyyy-dd HH:mm:ss MM"));
assertEquals("2017-12-01 January 09:54:33", dfUS.formatRawCellContents(42747.412892397523, -1, "yyyy-dd-MM MMMM HH:mm:ss"));
assertEquals("08", dfUS.formatRawCellContents(42605.368761574071, -1, "MM"));
assertEquals("01", dfUS.formatRawCellContents(42605.368761574071, -1, "ss"));
// From Excel help:
/*
The "m" or "mm" code must appear immediately after the "h" or"hh"
code or immediately before the "ss" code; otherwise, Microsoft
Excel displays the month instead of minutes."
*/
assertEquals("08", dfUS.formatRawCellContents(42605.368761574071, -1, "mm"));
assertEquals("08:51", dfUS.formatRawCellContents(42605.368761574071, -1, "hh:mm"));
assertEquals("51:01", dfUS.formatRawCellContents(42605.368761574071, -1, "mm:ss"));
} }
} }