]> source.dussan.org Git - poi.git/commitdiff
Add unit test for bug #51037, which seems to be working fine
authorNick Burch <nick@apache.org>
Thu, 14 Apr 2011 18:06:23 +0000 (18:06 +0000)
committerNick Burch <nick@apache.org>
Thu, 14 Apr 2011 18:06:23 +0000 (18:06 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1092423 13f79535-47bb-0310-9956-ffa450edef68

src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java

index 54c5b1632e5b961b4d2cd61055a7ea2f3f115640..56e8cc086704ed5c3d1c5a19005d389c03ec6a00 100644 (file)
@@ -35,6 +35,7 @@ import org.apache.poi.ss.usermodel.DataFormatter;
 import org.apache.poi.ss.usermodel.Font;
 import org.apache.poi.ss.usermodel.FormulaError;
 import org.apache.poi.ss.usermodel.FormulaEvaluator;
+import org.apache.poi.ss.usermodel.IndexedColors;
 import org.apache.poi.ss.usermodel.Name;
 import org.apache.poi.ss.usermodel.RichTextString;
 import org.apache.poi.ss.usermodel.Row;
@@ -44,6 +45,7 @@ import org.apache.poi.xssf.XSSFITestDataProvider;
 import org.apache.poi.xssf.XSSFTestDataSamples;
 import org.apache.poi.xssf.model.CalculationChain;
 import org.apache.poi.xssf.usermodel.extensions.XSSFCellFill;
+import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCols;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorksheet;
 
 public final class TestXSSFBugs extends BaseTestBugzillaIssues {
@@ -1051,6 +1053,81 @@ public final class TestXSSFBugs extends BaseTestBugzillaIssues {
        }
     }
     
+    /**
+     * Default Column style
+     */
+    public void test51037() throws Exception {
+       XSSFWorkbook wb = new XSSFWorkbook();
+       XSSFSheet s = wb.createSheet();
+       
+       CellStyle defaultStyle = wb.getCellStyleAt((short)0);
+       assertEquals(0, defaultStyle.getIndex());
+       
+       CellStyle blueStyle = wb.createCellStyle();
+       blueStyle.setFillForegroundColor(IndexedColors.AQUA.getIndex());
+       blueStyle.setFillPattern(CellStyle.SOLID_FOREGROUND);
+       assertEquals(1, blueStyle.getIndex());
+
+       CellStyle pinkStyle = wb.createCellStyle();
+       pinkStyle.setFillForegroundColor(IndexedColors.PINK.getIndex());
+       pinkStyle.setFillPattern(CellStyle.SOLID_FOREGROUND);
+       assertEquals(2, pinkStyle.getIndex());
+
+       // Starts empty
+       assertEquals(1, s.getCTWorksheet().sizeOfColsArray());
+       CTCols cols = s.getCTWorksheet().getColsArray(0);
+       assertEquals(0, cols.sizeOfColArray());
+       
+       // Add some rows and columns
+       XSSFRow r1 = s.createRow(0);
+       XSSFRow r2 = s.createRow(1);
+       r1.createCell(0);
+       r1.createCell(2);
+       r2.createCell(0);
+       r2.createCell(3);
+       
+       // Check no style is there
+       assertEquals(1, s.getCTWorksheet().sizeOfColsArray());
+       assertEquals(0, cols.sizeOfColArray());
+       
+       assertEquals(defaultStyle, s.getColumnStyle(0));
+       assertEquals(defaultStyle, s.getColumnStyle(2));
+       assertEquals(defaultStyle, s.getColumnStyle(3));
+       
+       
+       // Apply the styles
+       s.setDefaultColumnStyle(0, pinkStyle);
+       s.setDefaultColumnStyle(3, blueStyle);
+       
+       // Check
+       assertEquals(pinkStyle, s.getColumnStyle(0));
+       assertEquals(defaultStyle, s.getColumnStyle(2));
+       assertEquals(blueStyle, s.getColumnStyle(3));
+       
+       assertEquals(1, s.getCTWorksheet().sizeOfColsArray());
+       assertEquals(2, cols.sizeOfColArray());
+       
+       assertEquals(1, cols.getColArray(0).getMin());
+       assertEquals(1, cols.getColArray(0).getMax());
+       assertEquals(pinkStyle.getIndex(), cols.getColArray(0).getStyle());
+       
+       assertEquals(4, cols.getColArray(1).getMin());
+       assertEquals(4, cols.getColArray(1).getMax());
+       assertEquals(blueStyle.getIndex(), cols.getColArray(1).getStyle());
+       
+       
+       // Save, re-load and re-check 
+       wb = XSSFTestDataSamples.writeOutAndReadBack(wb);
+       s = wb.getSheetAt(0);
+       defaultStyle = wb.getCellStyleAt(defaultStyle.getIndex());
+       blueStyle = wb.getCellStyleAt(blueStyle.getIndex());
+       pinkStyle = wb.getCellStyleAt(pinkStyle.getIndex());
+       
+       assertEquals(pinkStyle, s.getColumnStyle(0));
+       assertEquals(defaultStyle, s.getColumnStyle(2));
+       assertEquals(blueStyle, s.getColumnStyle(3));
+    }
+    
     /**
      * Repeatedly writing a file.
      * Something with the SharedStringsTable currently breaks...