]> source.dussan.org Git - poi.git/commitdiff
Enhance test to print out more information, it seems to fail on Apache Jenkins JDK8...
authorDominik Stadler <centic@apache.org>
Sat, 8 Mar 2014 08:41:08 +0000 (08:41 +0000)
committerDominik Stadler <centic@apache.org>
Sat, 8 Mar 2014 08:41:08 +0000 (08:41 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1575500 13f79535-47bb-0310-9956-ffa450edef68

src/testcases/org/apache/poi/ss/util/TestDateFormatConverter.java

index 3342a91409c1052f80172f05187538b0cbf97d19..e4b7c389275aef4e86f6df3ce8dd7a0104ebf788 100644 (file)
 
 package org.apache.poi.ss.util;
 
-import junit.framework.TestCase;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.ss.usermodel.*;
-import org.apache.poi.util.TempFile;
-
 import java.io.File;
 import java.io.FileOutputStream;
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
+import java.util.Arrays;
 import java.util.Date;
 import java.util.Locale;
 
+import junit.framework.TestCase;
+
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.CellStyle;
+import org.apache.poi.ss.usermodel.DataFormat;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.util.TempFile;
+
 public final class TestDateFormatConverter extends TestCase {
     private void outputLocaleDataFormats( Date date, boolean dates, boolean times, int style, String styleName ) throws Exception {
 
@@ -57,40 +64,45 @@ public final class TestDateFormatConverter extends TestCase {
 
         int rowNum = 1;
         for( Locale locale : DateFormat.getAvailableLocales() ) {
-            Row row = sheet.createRow(rowNum++);
-
-            row.createCell(0).setCellValue(locale.toString());
-            row.createCell(1).setCellValue(locale.getDisplayName());
-
-            DateFormat dateFormat;
-            if( dates ) {
-                if( times ) {
-                    dateFormat = DateFormat.getDateTimeInstance(style, style, locale);
+            try {
+                Row row = sheet.createRow(rowNum++);
+    
+                row.createCell(0).setCellValue(locale.toString());
+                row.createCell(1).setCellValue(locale.getDisplayName());
+    
+                DateFormat dateFormat;
+                if( dates ) {
+                    if( times ) {
+                        dateFormat = DateFormat.getDateTimeInstance(style, style, locale);
+                    } else {
+                        dateFormat = DateFormat.getDateInstance(style, locale);
+                    }
                 } else {
-                    dateFormat = DateFormat.getDateInstance(style, locale);
+                    dateFormat = DateFormat.getTimeInstance(style, locale);
                 }
-            } else {
-                dateFormat = DateFormat.getTimeInstance(style, locale);
+    
+                Cell cell = row.createCell(2);
+    
+                cell.setCellValue(date);
+                CellStyle cellStyle = row.getSheet().getWorkbook().createCellStyle();
+    
+                String javaDateFormatPattern = ((SimpleDateFormat)dateFormat).toPattern();
+                String excelFormatPattern = DateFormatConverter.convert(locale, javaDateFormatPattern);
+    
+                DataFormat poiFormat = row.getSheet().getWorkbook().createDataFormat();
+                cellStyle.setDataFormat(poiFormat.getFormat(excelFormatPattern));
+                row.createCell(3).setCellValue(dateFormat.format(date));
+    
+                cell.setCellStyle(cellStyle);
+    
+                // the formula returns TRUE is the formatted date in column C equals to the string in column D
+                row.createCell(4).setCellFormula("TEXT(C"+rowNum+",G"+rowNum+")=D" + rowNum);
+                row.createCell(5).setCellValue(javaDateFormatPattern);
+                row.createCell(6).setCellValue(excelFormatPattern);
+            } catch (Exception e) {
+                throw new RuntimeException("Failed for locale: " + locale + ", having locales: " + 
+                        Arrays.toString(DateFormat.getAvailableLocales()), e);
             }
-
-            Cell cell = row.createCell(2);
-
-            cell.setCellValue(date);
-            CellStyle cellStyle = row.getSheet().getWorkbook().createCellStyle();
-
-            String javaDateFormatPattern = ((SimpleDateFormat)dateFormat).toPattern();
-            String excelFormatPattern = DateFormatConverter.convert(locale, javaDateFormatPattern);
-
-            DataFormat poiFormat = row.getSheet().getWorkbook().createDataFormat();
-            cellStyle.setDataFormat(poiFormat.getFormat(excelFormatPattern));
-            row.createCell(3).setCellValue(dateFormat.format(date));
-
-            cell.setCellStyle(cellStyle);
-
-            // the formula returns TRUE is the formatted date in column C equals to the string in column D
-            row.createCell(4).setCellFormula("TEXT(C"+rowNum+",G"+rowNum+")=D" + rowNum);
-            row.createCell(5).setCellValue(javaDateFormatPattern);
-            row.createCell(6).setCellValue(excelFormatPattern);
         }
 
         File outputFile = TempFile.createTempFile("Locale" + sheetName + styleName, ".xlsx");
@@ -100,12 +112,11 @@ public final class TestDateFormatConverter extends TestCase {
         } finally {
             outputStream.close();
         }
-        System.out.println("Open " + outputFile.getAbsolutePath()+" in Excel");
 
+        System.out.println("Open " + outputFile.getAbsolutePath()+" in Excel");
     }
 
     public void testJavaDateFormatsInExcel() throws Exception {
-
         Date date = new Date();
 
         outputLocaleDataFormats(date, true, false, DateFormat.DEFAULT, "Default" );