diff options
author | Dominik Stadler <centic@apache.org> | 2020-03-07 15:33:46 +0000 |
---|---|---|
committer | Dominik Stadler <centic@apache.org> | 2020-03-07 15:33:46 +0000 |
commit | cbf7275a0df7547721de2e2b5757ccd983975231 (patch) | |
tree | 5eaf03cbb78373957df93af3d840554e342f6f85 /src/testcases/org/apache | |
parent | ee61d3eb56975e59bbdae564390ead3c9a33a052 (diff) | |
download | poi-cbf7275a0df7547721de2e2b5757ccd983975231.tar.gz poi-cbf7275a0df7547721de2e2b5757ccd983975231.zip |
Bug 64179: Adjust to ensure a fixed timezone for date parsing in test
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1874949 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/testcases/org/apache')
-rw-r--r-- | src/testcases/org/apache/poi/ss/format/TestCellFormat.java | 462 |
1 files changed, 232 insertions, 230 deletions
diff --git a/src/testcases/org/apache/poi/ss/format/TestCellFormat.java b/src/testcases/org/apache/poi/ss/format/TestCellFormat.java index 9b2206e8f5..af41f63750 100644 --- a/src/testcases/org/apache/poi/ss/format/TestCellFormat.java +++ b/src/testcases/org/apache/poi/ss/format/TestCellFormat.java @@ -39,23 +39,23 @@ import org.junit.BeforeClass; import org.junit.Test; public class TestCellFormat { - + private static TimeZone userTimeZone; - + @BeforeClass public static void setTimeZone() { userTimeZone = LocaleUtil.getUserTimeZone(); LocaleUtil.setUserTimeZone(TimeZone.getTimeZone("CET")); LocaleUtil.setUserLocale(Locale.US); } - + @AfterClass public static void resetTimeZone() { LocaleUtil.setUserTimeZone(userTimeZone); LocaleUtil.setUserLocale(Locale.ROOT); } - - + + private static final String _255_POUND_SIGNS; static { StringBuilder sb = new StringBuilder(); @@ -64,7 +64,7 @@ public class TestCellFormat { } _255_POUND_SIGNS = sb.toString(); } - + @Test public void testSome() { JLabel l = new JLabel(); @@ -72,35 +72,35 @@ public class TestCellFormat { "\"$\"#,##0.00_);[Red]\\(\"$\"#,##0.00\\)"); fmt.apply(l, 1.1); } - + @Test public void testPositiveFormatHasOnePart() { CellFormat fmt = CellFormat.getInstance("0.00"); CellFormatResult result = fmt.apply(12.345); assertEquals("12.35", result.text); } - + @Test public void testNegativeFormatHasOnePart() { CellFormat fmt = CellFormat.getInstance("0.00"); CellFormatResult result = fmt.apply(-12.345); assertEquals("-12.35", result.text); } - + @Test public void testZeroFormatHasOnePart() { CellFormat fmt = CellFormat.getInstance("0.00"); CellFormatResult result = fmt.apply(0.0); assertEquals("0.00", result.text); } - + @Test public void testPositiveFormatHasPosAndNegParts() { CellFormat fmt = CellFormat.getInstance("0.00;-0.00"); CellFormatResult result = fmt.apply(12.345); assertEquals("12.35", result.text); } - + @Test public void testNegativeFormatHasPosAndNegParts() { CellFormat fmt = CellFormat.getInstance("0.00;-0.00"); @@ -114,7 +114,7 @@ public class TestCellFormat { CellFormatResult result = fmt.apply(-12.345); assertEquals("(12.35)", result.text); } - + @Test public void testZeroFormatHasPosAndNegParts() { CellFormat fmt = CellFormat.getInstance("0.00;-0.00"); @@ -125,17 +125,17 @@ public class TestCellFormat { @Test public void testFormatWithThreeSections() { CellFormat fmt = CellFormat.getInstance("0.00;-0.00;-"); - + assertEquals("12.35", fmt.apply(12.345).text); assertEquals("-12.35", fmt.apply(-12.345).text); assertEquals("-", fmt.apply(0.0).text); assertEquals("abc", fmt.apply("abc").text); } - + @Test public void testFormatWithFourSections() { CellFormat fmt = CellFormat.getInstance("0.00;-0.00;-; @ "); - + assertEquals("12.35", fmt.apply(12.345).text); assertEquals("-12.35", fmt.apply(-12.345).text); assertEquals("-", fmt.apply(0.0).text); @@ -144,7 +144,7 @@ public class TestCellFormat { @Test public void testApplyCellForGeneralFormat() throws Exception { - + // Create a workbook, row and cell to test with Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet(); @@ -154,38 +154,38 @@ public class TestCellFormat { Cell cell2 = row.createCell(2); Cell cell3 = row.createCell(3); Cell cell4 = row.createCell(4); - + CellFormat cf = CellFormat.getInstance("General"); - + // case CellType.BLANK CellFormatResult result0 = cf.apply(cell0); assertEquals("", result0.text); - + // case CellType.BOOLEAN cell1.setCellValue(true); CellFormatResult result1 = cf.apply(cell1); assertEquals("TRUE", result1.text); - + // case CellType.NUMERIC cell2.setCellValue(1.23); CellFormatResult result2 = cf.apply(cell2); assertEquals("1.23", result2.text); - + cell3.setCellValue(123.0); CellFormatResult result3 = cf.apply(cell3); assertEquals("123", result3.text); - + // case CellType.STRING cell4.setCellValue("abc"); CellFormatResult result4 = cf.apply(cell4); assertEquals("abc", result4.text); - + wb.close(); } - + @Test public void testApplyCellForAtFormat() throws Exception { - + // Create a workbook, row and cell to test with Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet(); @@ -195,61 +195,61 @@ public class TestCellFormat { Cell cell2 = row.createCell(2); Cell cell3 = row.createCell(3); Cell cell4 = row.createCell(4); - + CellFormat cf = CellFormat.getInstance("@"); - + // case CellType.BLANK CellFormatResult result0 = cf.apply(cell0); assertEquals("", result0.text); - + // case CellType.BOOLEAN cell1.setCellValue(true); CellFormatResult result1 = cf.apply(cell1); assertEquals("TRUE", result1.text); - + // case CellType.NUMERIC cell2.setCellValue(1.23); CellFormatResult result2 = cf.apply(cell2); assertEquals("1.23", result2.text); - + cell3.setCellValue(123.0); CellFormatResult result3 = cf.apply(cell3); assertEquals("123", result3.text); - + // case CellType.STRING cell4.setCellValue("abc"); CellFormatResult result4 = cf.apply(cell4); assertEquals("abc", result4.text); - + wb.close(); } - + @Test public void testApplyCellForDateFormat() throws Exception { - + // Create a workbook, row and cell to test with Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet(); Row row = sheet.createRow(0); Cell cell0 = row.createCell(0); Cell cell1 = row.createCell(1); - + CellFormat cf = CellFormat.getInstance("dd/mm/yyyy"); - + cell0.setCellValue(10); CellFormatResult result0 = cf.apply(cell0); assertEquals("10/01/1900", result0.text); - + cell1.setCellValue(-1); CellFormatResult result1 = cf.apply(cell1); assertEquals(_255_POUND_SIGNS, result1.text); - + wb.close(); } - + @Test public void testApplyCellForTimeFormat() throws Exception { - + // Create a workbook, row and cell to test with Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet(); @@ -257,40 +257,40 @@ public class TestCellFormat { Cell cell = row.createCell(0); CellFormat cf = CellFormat.getInstance("hh:mm"); - - cell.setCellValue(DateUtil.convertTime("03:04:05")); + + cell.setCellValue(DateUtil.convertTime("03:04:05")); CellFormatResult result = cf.apply(cell); assertEquals("03:04", result.text); - + wb.close(); } - + @Test public void testApplyCellForDateFormatAndNegativeFormat() throws Exception { - + // Create a workbook, row and cell to test with Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet(); Row row = sheet.createRow(0); Cell cell0 = row.createCell(0); Cell cell1 = row.createCell(1); - + CellFormat cf = CellFormat.getInstance("dd/mm/yyyy;(0)"); - + cell0.setCellValue(10); CellFormatResult result0 = cf.apply(cell0); assertEquals("10/01/1900", result0.text); - + cell1.setCellValue(-1); CellFormatResult result1 = cf.apply(cell1); assertEquals("(1)", result1.text); - + wb.close(); } - + @Test public void testApplyJLabelCellForGeneralFormat() throws Exception { - + // Create a workbook, row and cell to test with Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet(); @@ -300,49 +300,49 @@ public class TestCellFormat { Cell cell2 = row.createCell(2); Cell cell3 = row.createCell(3); Cell cell4 = row.createCell(4); - + CellFormat cf = CellFormat.getInstance("General"); - + JLabel label0 = new JLabel(); JLabel label1 = new JLabel(); JLabel label2 = new JLabel(); JLabel label3 = new JLabel(); JLabel label4 = new JLabel(); - + // case CellType.BLANK CellFormatResult result0 = cf.apply(label0, cell0); assertEquals("", result0.text); assertEquals("", label0.getText()); - + // case CellType.BOOLEAN cell1.setCellValue(true); CellFormatResult result1 = cf.apply(label1, cell1); assertEquals("TRUE", result1.text); assertEquals("TRUE", label1.getText()); - + // case CellType.NUMERIC cell2.setCellValue(1.23); CellFormatResult result2 = cf.apply(label2, cell2); assertEquals("1.23", result2.text); assertEquals("1.23", label2.getText()); - + cell3.setCellValue(123.0); CellFormatResult result3 = cf.apply(label3, cell3); assertEquals("123", result3.text); assertEquals("123", label3.getText()); - + // case CellType.STRING cell4.setCellValue("abc"); CellFormatResult result4 = cf.apply(label4, cell4); assertEquals("abc", result4.text); assertEquals("abc", label4.getText()); - + wb.close(); } - + @Test public void testApplyJLabelCellForAtFormat() throws Exception { - + // Create a workbook, row and cell to test with Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet(); @@ -352,77 +352,77 @@ public class TestCellFormat { Cell cell2 = row.createCell(2); Cell cell3 = row.createCell(3); Cell cell4 = row.createCell(4); - + CellFormat cf = CellFormat.getInstance("@"); - + JLabel label0 = new JLabel(); JLabel label1 = new JLabel(); JLabel label2 = new JLabel(); JLabel label3 = new JLabel(); JLabel label4 = new JLabel(); - + // case CellType.BLANK CellFormatResult result0 = cf.apply(label0, cell0); assertEquals("", result0.text); assertEquals("", label0.getText()); - + // case CellType.BOOLEAN cell1.setCellValue(true); CellFormatResult result1 = cf.apply(label1, cell1); assertEquals("TRUE", result1.text); assertEquals("TRUE", label1.getText()); - + // case CellType.NUMERIC cell2.setCellValue(1.23); CellFormatResult result2 = cf.apply(label2, cell2); assertEquals("1.23", result2.text); assertEquals("1.23", label2.getText()); - + cell3.setCellValue(123.0); CellFormatResult result3 = cf.apply(label3, cell3); assertEquals("123", result3.text); assertEquals("123", label3.getText()); - + // case CellType.STRING cell4.setCellValue("abc"); CellFormatResult result4 = cf.apply(label4, cell4); assertEquals("abc", result4.text); assertEquals("abc", label4.getText()); - + wb.close(); } @Test public void testApplyJLabelCellForDateFormat() throws Exception { - + // Create a workbook, row and cell to test with Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet(); Row row = sheet.createRow(0); Cell cell0 = row.createCell(0); Cell cell1 = row.createCell(1); - + CellFormat cf = CellFormat.getInstance("dd/mm/yyyy"); - + JLabel label0 = new JLabel(); JLabel label1 = new JLabel(); - + cell0.setCellValue(10); CellFormatResult result0 = cf.apply(label0, cell0); assertEquals("10/01/1900", result0.text); assertEquals("10/01/1900", label0.getText()); - + cell1.setCellValue(-1); CellFormatResult result1 = cf.apply(label1, cell1); assertEquals(_255_POUND_SIGNS, result1.text); assertEquals(_255_POUND_SIGNS, label1.getText()); - + wb.close(); } @Test public void testApplyJLabelCellForTimeFormat() throws Exception { - + // Create a workbook, row and cell to test with Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet(); @@ -430,481 +430,483 @@ public class TestCellFormat { Cell cell = row.createCell(0); CellFormat cf = CellFormat.getInstance("hh:mm"); - + JLabel label = new JLabel(); - - cell.setCellValue(DateUtil.convertTime("03:04:05")); + + cell.setCellValue(DateUtil.convertTime("03:04:05")); CellFormatResult result = cf.apply(label, cell); assertEquals("03:04", result.text); assertEquals("03:04", label.getText()); - + wb.close(); } - + @Test public void testApplyJLabelCellForDateFormatAndNegativeFormat() throws Exception { - + // Create a workbook, row and cell to test with Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet(); Row row = sheet.createRow(0); Cell cell0 = row.createCell(0); Cell cell1 = row.createCell(1); - + CellFormat cf = CellFormat.getInstance("dd/mm/yyyy;(0)"); - + JLabel label0 = new JLabel(); JLabel label1 = new JLabel(); - + cell0.setCellValue(10); CellFormatResult result0 = cf.apply(label0, cell0); assertEquals("10/01/1900", result0.text); assertEquals("10/01/1900", label0.getText()); - + cell1.setCellValue(-1); CellFormatResult result1 = cf.apply(label1, cell1); assertEquals("(1)", result1.text); assertEquals("(1)", label1.getText()); - + wb.close(); } @Test public void testApplyFormatHasOnePartAndPartHasCondition() throws Exception { - + // Create a workbook, row and cell to test with Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet(); Row row = sheet.createRow(0); Cell cell = row.createCell(0); - + CellFormat cf = CellFormat.getInstance("[>=100]0.00"); - + cell.setCellValue(100); assertEquals("100.00", cf.apply(cell).text); - + cell.setCellValue(10); assertEquals("10", cf.apply(cell).text); - + cell.setCellValue(0.123456789012345); assertEquals("0.123456789", cf.apply(cell).text); - + cell.setCellValue(0); assertEquals("0", cf.apply(cell).text); - + cell.setCellValue("abc"); assertEquals("abc", cf.apply(cell).text); - + wb.close(); } - + @Test public void testApplyFormatHasTwoPartsFirstHasCondition() throws Exception { - + // Create a workbook, row and cell to test with Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet(); Row row = sheet.createRow(0); Cell cell = row.createCell(0); - + CellFormat cf = CellFormat.getInstance("[>=100]0.00;0.000"); - + cell.setCellValue(100); assertEquals("100.00", cf.apply(cell).text); - + cell.setCellValue(10); assertEquals("10.000", cf.apply(cell).text); - + cell.setCellValue(0.123456789012345); assertEquals("0.123", cf.apply(cell).text); - + cell.setCellValue(0); assertEquals("0.000", cf.apply(cell).text); - + cell.setCellValue(-10); assertEquals("-10.000", cf.apply(cell).text); - + cell.setCellValue("abc"); assertEquals("abc", cf.apply(cell).text); - + cell.setCellValue("TRUE"); assertEquals("TRUE", cf.apply(cell).text); - + wb.close(); } - + @Test public void testApplyFormatHasTwoPartsBothHaveCondition() throws Exception { - + // Create a workbook, row and cell to test with Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet(); Row row = sheet.createRow(0); Cell cell = row.createCell(0); - + CellFormat cf = CellFormat.getInstance("[>=100]0.00;[>=10]0.000"); - + cell.setCellValue(100); assertEquals("100.00", cf.apply(cell).text); - + cell.setCellValue(10); assertEquals("10.000", cf.apply(cell).text); - + cell.setCellValue(0); assertEquals(_255_POUND_SIGNS, cf.apply(cell).text); - + cell.setCellValue(-0.123456789012345); assertEquals(_255_POUND_SIGNS, cf.apply(cell).text); - + cell.setCellValue(-10); assertEquals(_255_POUND_SIGNS, cf.apply(cell).text); - + cell.setCellValue("abc"); assertEquals("abc", cf.apply(cell).text); - + wb.close(); } - + @Test public void testApplyFormatHasThreePartsFirstHasCondition() throws Exception { - + // Create a workbook, row and cell to test with Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet(); Row row = sheet.createRow(0); Cell cell = row.createCell(0); - + CellFormat cf = CellFormat.getInstance("[>=100]0.00;0.000;0.0000"); - + cell.setCellValue(100); assertEquals("100.00", cf.apply(cell).text); - + cell.setCellValue(10); assertEquals("10.0000", cf.apply(cell).text); - + cell.setCellValue(0.123456789012345); assertEquals("0.1235", cf.apply(cell).text); - + cell.setCellValue(0); assertEquals("0.0000", cf.apply(cell).text); - + // Second format part ('0.000') is used for negative numbers // so result does not have a minus sign cell.setCellValue(-10); assertEquals("10.000", cf.apply(cell).text); - + cell.setCellValue("abc"); assertEquals("abc", cf.apply(cell).text); - + wb.close(); } - + @Test public void testApplyFormatHasThreePartsFirstTwoHaveCondition() throws Exception { - + // Create a workbook, row and cell to test with Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet(); Row row = sheet.createRow(0); Cell cell = row.createCell(0); - + CellFormat cf = CellFormat.getInstance("[>=100]0.00;[>=10]0.000;0.0000"); - + cell.setCellValue(100); assertEquals("100.00", cf.apply(cell).text); - + cell.setCellValue(10); assertEquals("10.000", cf.apply(cell).text); - + cell.setCellValue(0); assertEquals("0.0000", cf.apply(cell).text); - + cell.setCellValue(-10); assertEquals("-10.0000", cf.apply(cell).text); - + cell.setCellValue("abc"); assertEquals("abc", cf.apply(cell).text); - + wb.close(); } @Test public void testApplyFormatHasThreePartsFirstIsDateFirstTwoHaveCondition() throws Exception { - + // Create a workbook, row and cell to test with Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet(); Row row = sheet.createRow(0); Cell cell = row.createCell(0); - + CellFormat cf = CellFormat.getInstance("[>=100]0.00;[>=10]dd/mm/yyyy;0.0"); - + cell.setCellValue(100); assertEquals("100.00", cf.apply(cell).text); - + cell.setCellValue(10); assertEquals("10/01/1900", cf.apply(cell).text); - + cell.setCellValue(0); assertEquals("0.0", cf.apply(cell).text); - + cell.setCellValue(-10); assertEquals("-10.0", cf.apply(cell).text); - + cell.setCellValue("abc"); assertEquals("abc", cf.apply(cell).text); - + wb.close(); } @Test public void testApplyFormatHasTwoPartsFirstHasConditionSecondIsGeneral() throws Exception { - + // Create a workbook, row and cell to test with Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet(); Row row = sheet.createRow(0); Cell cell = row.createCell(0); - + CellFormat cf = CellFormat.getInstance("[>=100]0.00;General"); - + cell.setCellValue(100); assertEquals("100.00", cf.apply(cell).text); - + cell.setCellValue(10); assertEquals("10", cf.apply(cell).text); - + cell.setCellValue(0); assertEquals("0", cf.apply(cell).text); - + cell.setCellValue(-10); assertEquals("-10", cf.apply(cell).text); - + cell.setCellValue("abc"); assertEquals("abc", cf.apply(cell).text); - + wb.close(); } @Test public void testApplyFormatHasThreePartsFirstTwoHaveConditionThirdIsGeneral() throws Exception { - + // Create a workbook, row and cell to test with Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet(); Row row = sheet.createRow(0); Cell cell = row.createCell(0); - + CellFormat cf = CellFormat.getInstance("[>=100]0.00;[>=10]0.000;General"); - + cell.setCellValue(100); assertEquals("100.00", cf.apply(cell).text); - + cell.setCellValue(10); assertEquals("10.000", cf.apply(cell).text); - + cell.setCellValue(0); assertEquals("0", cf.apply(cell).text); - + cell.setCellValue(-10); assertEquals("-10", cf.apply(cell).text); - + cell.setCellValue("abc"); assertEquals("abc", cf.apply(cell).text); - + wb.close(); } - + @Test public void testApplyFormatHasFourPartsFirstHasCondition() throws Exception { - + // Create a workbook, row and cell to test with Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet(); Row row = sheet.createRow(0); Cell cell = row.createCell(0); - + CellFormat cf = CellFormat.getInstance("[>=100]0.00;0.000;0.0000;~~@~~"); - + cell.setCellValue(100); assertEquals("100.00", cf.apply(cell).text); - + cell.setCellValue(10); assertEquals("10.0000", cf.apply(cell).text); - + cell.setCellValue(0.123456789012345); assertEquals("0.1235", cf.apply(cell).text); - + cell.setCellValue(0); assertEquals("0.0000", cf.apply(cell).text); - + // Second format part ('0.000') is used for negative numbers // so result does not have a minus sign cell.setCellValue(-10); assertEquals("10.000", cf.apply(cell).text); - + cell.setCellValue("abc"); assertEquals("~~abc~~", cf.apply(cell).text); - + wb.close(); } - + @Test public void testApplyFormatHasFourPartsSecondHasCondition() throws Exception { - + // Create a workbook, row and cell to test with Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet(); Row row = sheet.createRow(0); Cell cell = row.createCell(0); - + CellFormat cf = CellFormat.getInstance("0.00;[>=100]0.000;0.0000;~~@~~"); - + cell.setCellValue(100); assertEquals("100.00", cf.apply(cell).text); - + cell.setCellValue(10); assertEquals("10.00", cf.apply(cell).text); - + cell.setCellValue(0.123456789012345); assertEquals("0.12", cf.apply(cell).text); - + cell.setCellValue(0); assertEquals("0.0000", cf.apply(cell).text); - + cell.setCellValue(-10); assertEquals("-10.0000", cf.apply(cell).text); - + cell.setCellValue("abc"); assertEquals("~~abc~~", cf.apply(cell).text); - + cell.setCellValue(true); assertEquals("~~TRUE~~", cf.apply(cell).text); - + wb.close(); } @Test public void testApplyFormatHasFourPartsFirstTwoHaveCondition() throws Exception { - + // Create a workbook, row and cell to test with Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet(); Row row = sheet.createRow(0); Cell cell = row.createCell(0); - + CellFormat cf = CellFormat.getInstance("[>=100]0.00;[>=10]0.000;0.0000;~~@~~"); - + cell.setCellValue(100); assertEquals("100.00", cf.apply(cell).text); - + cell.setCellValue(10); assertEquals("10.000", cf.apply(cell).text); - + cell.setCellValue(0); assertEquals("0.0000", cf.apply(cell).text); - + cell.setCellValue(-10); assertEquals("-10.0000", cf.apply(cell).text); - + cell.setCellValue("abc"); assertEquals("~~abc~~", cf.apply(cell).text); - + cell.setCellValue(true); assertEquals("~~TRUE~~", cf.apply(cell).text); - + wb.close(); } - + /* * Test apply(Object value) with a number as parameter */ @Test public void testApplyObjectNumber() { - + CellFormat cf1 = CellFormat.getInstance("0.000"); - + assertEquals("1.235", cf1.apply(1.2345).text); assertEquals("-1.235", cf1.apply(-1.2345).text); - + CellFormat cf2 = CellFormat.getInstance("0.000;(0.000)"); - + assertEquals("1.235", cf2.apply(1.2345).text); assertEquals("(1.235)", cf2.apply(-1.2345).text); - + CellFormat cf3 = CellFormat.getInstance("[>1]0.000;0.0000"); - + assertEquals("1.235", cf3.apply(1.2345).text); assertEquals("-1.2345", cf3.apply(-1.2345).text); - + CellFormat cf4 = CellFormat.getInstance("0.000;[>1]0.0000"); - + assertEquals("1.235", cf4.apply(1.2345).text); assertEquals(_255_POUND_SIGNS, cf4.apply(-1.2345).text); - + } - + /* * Test apply(Object value) with a Date as parameter */ @Test public void testApplyObjectDate() throws ParseException { CellFormat cf1 = CellFormat.getInstance("m/d/yyyy"); - Date date1 = new SimpleDateFormat("M/d/y", Locale.ROOT).parse("01/11/2012"); + SimpleDateFormat sdf1 = new SimpleDateFormat("M/d/y", Locale.ROOT); + sdf1.setTimeZone(TimeZone.getTimeZone("CET")); + Date date1 = sdf1.parse("01/11/2012"); assertEquals("1/11/2012", cf1.apply(date1).text); } @Test public void testApplyCellForDateFormatWithConditions() throws Exception { - + // Create a workbook, row and cell to test with Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet(); Row row = sheet.createRow(0); Cell cell = row.createCell(0); - + CellFormat cf = CellFormat.getInstance("[<1]hh:mm:ss AM/PM;[>=1]dd/mm/yyyy hh:mm:ss AM/PM;General"); - + cell.setCellValue(0.5); assertEquals("12:00:00 PM", cf.apply(cell).text); - + cell.setCellValue(1.5); assertEquals("01/01/1900 12:00:00 PM", cf.apply(cell).text); - + cell.setCellValue(-1); assertEquals(_255_POUND_SIGNS, cf.apply(cell).text); - + wb.close(); } - + /* * Test apply(Object value) with a String as parameter */ @Test public void testApplyObjectString() { - + CellFormat cf = CellFormat.getInstance("0.00"); - + assertEquals("abc", cf.apply("abc").text); - + } - + /* * Test apply(Object value) with a Boolean as parameter */ @Test public void testApplyObjectBoolean() { - + CellFormat cf1 = CellFormat.getInstance("0"); CellFormat cf2 = CellFormat.getInstance("General"); CellFormat cf3 = CellFormat.getInstance("@"); - + assertEquals("TRUE", cf1.apply(true).text); assertEquals("FALSE", cf2.apply(false).text); assertEquals("TRUE", cf3.apply(true).text); - + } - + @Test public void testSimpleFractionFormat() throws IOException { CellFormat cf1 = CellFormat.getInstance("# ?/?"); @@ -918,12 +920,12 @@ public class TestCellFormat { assertEquals("123456 3/5", cf1.apply(cell).text); } } - + @Test public void testAccountingFormats() { char pound = '\u00A3'; char euro = '\u20AC'; - + // Accounting -> 0 decimal places, default currency symbol String formatDft = "_-\"$\"* #,##0_-;\\-\"$\"* #,##0_-;_-\"$\"* \"-\"_-;_-@_-"; // Accounting -> 0 decimal places, US currency symbol @@ -932,41 +934,41 @@ public class TestCellFormat { String formatUK = "_-[$"+pound+"-809]* #,##0_-;\\-[$"+pound+"-809]* #,##0_-;_-[$"+pound+"-809]* \"-\"??_-;_-@_-"; // French style accounting, euro sign comes after not before String formatFR = "_-#,##0* [$"+euro+"-40C]_-;\\-#,##0* [$"+euro+"-40C]_-;_-\"-\"??* [$"+euro+"-40C] _-;_-@_-"; - + // Has +ve, -ve and zero rules CellFormat cfDft = CellFormat.getInstance(formatDft); CellFormat cfUS = CellFormat.getInstance(formatUS); CellFormat cfUK = CellFormat.getInstance(formatUK); CellFormat cfFR = CellFormat.getInstance(formatFR); - + // For +ve numbers, should be Space + currency symbol + spaces + whole number with commas + space // (Except French, which is mostly reversed...) assertEquals(" $ 12 ", cfDft.apply(Double.valueOf(12.33)).text); assertEquals(" $ 12 ", cfUS.apply(Double.valueOf(12.33)).text); assertEquals(" "+pound+" 12 ", cfUK.apply(Double.valueOf(12.33)).text); assertEquals(" 12 "+euro+" ", cfFR.apply(Double.valueOf(12.33)).text); - + assertEquals(" $ 16,789 ", cfDft.apply(Double.valueOf(16789.2)).text); assertEquals(" $ 16,789 ", cfUS.apply(Double.valueOf(16789.2)).text); assertEquals(" "+pound+" 16,789 ", cfUK.apply(Double.valueOf(16789.2)).text); assertEquals(" 16,789 "+euro+" ", cfFR.apply(Double.valueOf(16789.2)).text); - + // For -ve numbers, gets a bit more complicated... assertEquals("-$ 12 ", cfDft.apply(Double.valueOf(-12.33)).text); assertEquals(" $ -12 ", cfUS.apply(Double.valueOf(-12.33)).text); assertEquals("-"+pound+" 12 ", cfUK.apply(Double.valueOf(-12.33)).text); assertEquals("-12 "+euro+" ", cfFR.apply(Double.valueOf(-12.33)).text); - + assertEquals("-$ 16,789 ", cfDft.apply(Double.valueOf(-16789.2)).text); assertEquals(" $ -16,789 ", cfUS.apply(Double.valueOf(-16789.2)).text); assertEquals("-"+pound+" 16,789 ", cfUK.apply(Double.valueOf(-16789.2)).text); assertEquals("-16,789 "+euro+" ", cfFR.apply(Double.valueOf(-16789.2)).text); - + // For zero, should be Space + currency symbol + spaces + Minus + spaces assertEquals(" $ - ", cfDft.apply(Double.valueOf(0)).text); // TODO Fix the exception this incorrectly triggers //assertEquals(" $ - ", cfUS.apply(Double.valueOf(0)).text); - // TODO Fix these to not have an incorrect bonus 0 on the end + // TODO Fix these to not have an incorrect bonus 0 on the end //assertEquals(" "+pound+" - ", cfUK.apply(Double.valueOf(0)).text); //assertEquals(" - "+euro+" ", cfFR.apply(Double.valueOf(0)).text); } @@ -977,31 +979,31 @@ public class TestCellFormat { CellFormatPart posPart = new CellFormatPart("[$-F400]h:mm:ss\\ AM/PM"); assertNotNull(posPart); assertEquals("1:00:12 AM", posPart.apply(new Date(12345)).text); - + CellFormatPart negPart = new CellFormatPart("[$-F40]h:mm:ss\\ AM/PM"); assertNotNull(negPart); assertEquals("1:00:12 AM", posPart.apply(new Date(12345)).text); //assertNotNull(new CellFormatPart("_-* \"\"??_-;_-@_-")); - + CellFormat instance = CellFormat.getInstance("[$-F400]h:mm:ss\\ AM/PM;[$-F40]h:mm:ss\\ AM/PM;_-* \"\"??_-;_-@_-"); assertNotNull(instance); assertEquals("1:00:12 AM", instance.apply(new Date(12345)).text); } - + @Test public void testThreePartComplexFormat2() { // verify a rather complex format found e.g. in http://wahl.land-oberoesterreich.gv.at/Downloads/bp10.xls CellFormatPart posPart = new CellFormatPart("dd/mm/yyyy"); assertNotNull(posPart); assertEquals("01/01/1970", posPart.apply(new Date(12345)).text); - + CellFormatPart negPart = new CellFormatPart("dd/mm/yyyy"); assertNotNull(negPart); assertEquals("01/01/1970", posPart.apply(new Date(12345)).text); //assertNotNull(new CellFormatPart("_-* \"\"??_-;_-@_-")); - + CellFormat instance = CellFormat.getInstance("dd/mm/yyyy;dd/mm/yyyy;_-* \"\"??_-;_-@_-"); assertNotNull(instance); assertEquals("01/01/1970", instance.apply(new Date(12345)).text); |