]> source.dussan.org Git - poi.git/commitdiff
adjust tests, javadoc, ...
authorDominik Stadler <centic@apache.org>
Wed, 11 Oct 2017 18:31:34 +0000 (18:31 +0000)
committerDominik Stadler <centic@apache.org>
Wed, 11 Oct 2017 18:31:34 +0000 (18:31 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1811865 13f79535-47bb-0310-9956-ffa450edef68

14 files changed:
src/java/org/apache/poi/ss/usermodel/BorderFormatting.java
src/ooxml/java/org/apache/poi/xssf/model/StylesTable.java
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFColor.java
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFFont.java
src/ooxml/testcases/org/apache/poi/TestDetectAsOOXML.java
src/ooxml/testcases/org/apache/poi/xssf/model/TestStylesTable.java
src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java
src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFCell.java
src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFCellStyle.java
src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java
src/testcases/org/apache/poi/hssf/usermodel/TestBugs.java
src/testcases/org/apache/poi/hssf/usermodel/TestHSSFFormulaEvaluator.java
src/testcases/org/apache/poi/ss/usermodel/BaseTestBugzillaIssues.java
src/testcases/org/apache/poi/ss/usermodel/BaseTestFont.java

index 3e53865ed2c5f3da624b861a0741f100c25b0595..31ec32cfe95b118e7a9d4f6d85c7663e5c5e6dae 100644 (file)
@@ -130,7 +130,7 @@ public interface BorderFormatting {
     /**
      * Set bottom border.
      *
-     * @param border
+     * @param border The style of border to set.
      */
     void setBorderBottom(BorderStyle border);
     
@@ -145,7 +145,7 @@ public interface BorderFormatting {
     /**
      * Set diagonal border.
      *
-     * @param border
+     * @param border The style of border to set.
      */
     void setBorderDiagonal(BorderStyle border);
 
@@ -160,7 +160,7 @@ public interface BorderFormatting {
     /**
      * Set left border.
      *
-     * @param border
+     * @param border The style of border to set.
      */
     void setBorderLeft(BorderStyle border);
 
@@ -175,7 +175,7 @@ public interface BorderFormatting {
     /**
      * Set right border.
      *
-     * @param border
+     * @param border The style of border to set.
      */
     void setBorderRight(BorderStyle border);
 
@@ -190,7 +190,7 @@ public interface BorderFormatting {
     /**
      * Set top border.
      *
-     * @param border
+     * @param border The style of border to set.
      */
     void setBorderTop(BorderStyle border);
     
@@ -198,7 +198,7 @@ public interface BorderFormatting {
      * Set range internal horizontal borders.
      *
      * @since 3.17 beta 1
-     * @param border
+     * @param border The style of border to set.
      */
     void setBorderHorizontal(BorderStyle border);
     
@@ -206,7 +206,7 @@ public interface BorderFormatting {
      * Set range internal vertical borders.
      *
      * @since 3.17 beta 1
-     * @param border
+     * @param border The style of border to set.
      */
     void setBorderVertical(BorderStyle border);
 
index 6186bfe5fffa6ab3b110e7a28862f4b1235a79a9..a2fc88dfe0651b42cb85f310699506b8f772d43e 100644 (file)
@@ -269,7 +269,7 @@ public class StylesTable extends POIXMLDocumentPart {
     }
     
     private short getNumberFormatId(String fmt) {
-     // Find the key, and return that
+        // Find the key, and return that
         for (Entry<Short,String> numFmt : numberFormats.entrySet()) {
             if(numFmt.getValue().equals(fmt)) {
                 return numFmt.getKey();
index e7cd869f129c67b48bc13b9c1c7c4f1799894bcb..bb4e422d1bd1015e27e757ea3fd323275edfaef4 100644 (file)
@@ -34,7 +34,7 @@ public class XSSFColor extends ExtendedColor {
 
     /**
      * Create an instance of XSSFColor from the supplied XML bean, with default color indexes
-     * @param color 
+     * @param color The {@link CTColor} to use as color-value.
      * @deprecated 3.17 beta 1 - pass the workbook styles indexed color map, if any
      */
     @Deprecated
@@ -45,8 +45,8 @@ public class XSSFColor extends ExtendedColor {
     
     /**
      * Create an instance of XSSFColor from the supplied XML bean, with the given color indexes
-     * @param color
-     * @param map
+     * @param color The {@link CTColor} to use as color-value.
+     * @param map The IndexedColorMap to use instead of the default one
      */
     public XSSFColor(CTColor color, IndexedColorMap map) {
         this.ctColor = color;
@@ -72,8 +72,8 @@ public class XSSFColor extends ExtendedColor {
 
     /**
      *
-     * @param rgb bytes
-     * @param colorMap 
+     * @param rgb The RGB-byte-values for the Color
+     * @param colorMap The IndexedColorMap to use instead of the default one
      */
     public XSSFColor(byte[] rgb, IndexedColorMap colorMap) {
         this(CTColor.Factory.newInstance(), colorMap);
@@ -82,7 +82,7 @@ public class XSSFColor extends ExtendedColor {
     
     /**
      * @param indexedColor color index (Enum named for default colors)
-     * @param colorMap 
+     * @param colorMap The IndexedColorMap to use instead of the default one
      */
     public XSSFColor(IndexedColors indexedColor, IndexedColorMap colorMap) {
         this(CTColor.Factory.newInstance(), colorMap);
@@ -131,20 +131,14 @@ public class XSSFColor extends ExtendedColor {
      * @return true if the ctColor has a alpha
      */
     public boolean hasAlpha() {
-        if (! ctColor.isSetRgb()) {
-            return false;
-        }
-        return ctColor.getRgb().length == 4;
+        return ctColor.isSetRgb() && ctColor.getRgb().length == 4;
     }
 
     /**
      * @return true if the ctColor has a tint
      */
     public boolean hasTint() {
-        if (!ctColor.isSetTint()) {
-            return false;
-        }
-        return ctColor.getTint() != 0;
+        return ctColor.isSetTint() && ctColor.getTint() != 0;
     }
 
     /**
@@ -377,37 +371,25 @@ public class XSSFColor extends ExtendedColor {
     // Helper methods for {@link #equals(Object)}
     private boolean sameIndexed(XSSFColor other) {
         if (isIndexed() == other.isIndexed()) {
-            if (isIndexed()) {
-                return getIndexed() == other.getIndexed();
-            }
-            return true;
+            return !isIndexed() || getIndexed() == other.getIndexed();
         }
         return false;
     }
     private boolean sameARGB(XSSFColor other) {
         if (isRGB() == other.isRGB()) {
-            if (isRGB()) {
-                return Arrays.equals(getARGB(), other.getARGB());
-            }
-            return true;
+            return !isRGB() || Arrays.equals(getARGB(), other.getARGB());
         }
         return false;
     }
     private boolean sameTheme(XSSFColor other) {
         if (isThemed() == other.isThemed()) {
-            if (isThemed()) {
-                return getTheme() == other.getTheme();
-            }
-            return true;
+            return !isThemed() || getTheme() == other.getTheme();
         }
         return false;
     }
     private boolean sameTint(XSSFColor other) {
         if (hasTint() == other.hasTint()) {
-            if (hasTint()) {
-                return getTint() == other.getTint();
-            }
-            return true;
+            return !hasTint() || getTint() == other.getTint();
         }
         return false;
     }
index 6fcbc32ec8b26b633d0bee132baeb72bb46b325c..3a23be04b906c96c37f4fcc02686ef05490b83ac 100644 (file)
@@ -118,7 +118,7 @@ public class XSSFFont implements Font {
      * get character-set to use.
      *
      * @return int - character-set (0-255)
-     * @see org.apache.poi.ss.usermodel.FontCharset
+     * @see FontCharset
      */
     public int getCharSet() {
         CTIntProperty charset = _ctFont.sizeOfCharsetArray() == 0 ? null : _ctFont.getCharsetArray(0);
@@ -297,7 +297,7 @@ public class XSSFFont implements Font {
     public void setBold(boolean bold) {
         if(bold){
             CTBooleanProperty ctBold = _ctFont.sizeOfBArray() == 0 ? _ctFont.addNewB() : _ctFont.getBArray(0);
-            ctBold.setVal(bold);
+            ctBold.setVal(true);
         } else {
             _ctFont.setBArray(null);
         }
@@ -448,7 +448,7 @@ public class XSSFFont implements Font {
     public void setItalic(boolean italic) {
         if(italic){
             CTBooleanProperty bool = _ctFont.sizeOfIArray() == 0 ? _ctFont.addNewI() : _ctFont.getIArray(0);
-            bool.setVal(italic);
+            bool.setVal(true);
         } else {
             _ctFont.setIArray(null);
         }
@@ -462,10 +462,11 @@ public class XSSFFont implements Font {
      * @param strikeout - value for strikeout or not
      */
     public void setStrikeout(boolean strikeout) {
-        if(!strikeout) _ctFont.setStrikeArray(null);
-        else {
+        if(strikeout) {
             CTBooleanProperty strike = _ctFont.sizeOfStrikeArray() == 0 ? _ctFont.addNewStrike() : _ctFont.getStrikeArray(0);
-            strike.setVal(strikeout);
+            strike.setVal(true);
+        } else {
+            _ctFont.setStrikeArray(null);
         }
     }
 
index 4275c83599b5486ce5d614e627fdce9e13424877..89f80532529760ef6181956ee5c76524b6a88751 100644 (file)
@@ -1,4 +1,3 @@
-
 /* ====================================================================
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
-        
-
 package org.apache.poi;
 
 import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
@@ -40,6 +36,7 @@ import org.junit.Test;
  * Class to test that HXF correctly detects OOXML
  *  documents
  */
+@SuppressWarnings("deprecation")
 public class TestDetectAsOOXML {
     @Test
        public void testOpensProperly() throws IOException, InvalidFormatException {
@@ -59,10 +56,9 @@ public class TestDetectAsOOXML {
                is = FileMagic.prepareToCheckMagic(is);
                FileMagic act = FileMagic.valueOf(is);
                
-               if (act == FileMagic.OOXML) {
-                   assertTrue(DocumentFactoryHelper.hasOOXMLHeader(is));
-               }
-               
+                       assertEquals("OOXML files should be detected, others not",
+                                       act == FileMagic.OOXML, DocumentFactoryHelper.hasOOXMLHeader(is));
+
                assertEquals("file magic failed for "+fm[0], fm[1], act);
                is.close();
            }
@@ -70,7 +66,6 @@ public class TestDetectAsOOXML {
     
     @Test
     public void testFileCorruption() throws Exception {
-           
            // create test InputStream
            byte[] testData = { 1, 2, 3 };
         ByteArrayInputStream testInput = new ByteArrayInputStream(testData);
index 8cbdfe270d6646895086d98b2cd518a6d5ba278a..1a207c2366bcd1adf6716fb0389ee1fbdac5d3a9 100644 (file)
@@ -124,6 +124,7 @@ public final class TestStylesTable {
         assertEquals(165, st.getStyleAt(3).getDataFormat());
 
         assertEquals("yyyy/mm/dd", st.getStyleAt(3).getDataFormatString());
+        assertEquals("[]", st.getExplicitTableStyleNames().toString());
     }
 
     @Test
@@ -186,8 +187,7 @@ public final class TestStylesTable {
     
     @Test
     public void exceedNumberFormatLimit() throws IOException {
-        XSSFWorkbook wb = new XSSFWorkbook();
-        try {
+        try (XSSFWorkbook wb = new XSSFWorkbook()) {
             StylesTable styles = wb.getStylesSource();
             for (int i = 0; i < styles.getMaxNumberOfDataFormats(); i++) {
                 wb.getStylesSource().putNumberFormat("\"test" + i + " \"0");
@@ -195,15 +195,10 @@ public final class TestStylesTable {
             try {
                 wb.getStylesSource().putNumberFormat("\"anotherformat \"0");
             } catch (final IllegalStateException e) {
-                if (e.getMessage().startsWith("The maximum number of Data Formats was exceeded.")) {
-                    //expected
-                }
-                else {
+                if (!e.getMessage().startsWith("The maximum number of Data Formats was exceeded.")) {
                     throw e;
                 }
             }
-        } finally {
-            wb.close();
         }
     }
     
@@ -216,145 +211,127 @@ public final class TestStylesTable {
     
     @Test
     public void removeNumberFormat() throws IOException {
-        XSSFWorkbook wb1 = new XSSFWorkbook();
-        try {
+        try (XSSFWorkbook wb1 = new XSSFWorkbook()) {
             final String fmt = customDataFormat;
             final short fmtIdx = (short) wb1.getStylesSource().putNumberFormat(fmt);
-            
+
             Cell cell = wb1.createSheet("test").createRow(0).createCell(0);
             cell.setCellValue(5.25);
             CellStyle style = wb1.createCellStyle();
             style.setDataFormat(fmtIdx);
             cell.setCellStyle(style);
-            
+
             assertEquals(fmt, cell.getCellStyle().getDataFormatString());
             assertEquals(fmt, wb1.getStylesSource().getNumberFormatAt(fmtIdx));
-            
+
             // remove the number format from the workbook
-            wb1.getStylesSource().removeNumberFormat(fmt);
-            
+            assertTrue("The format is removed on first call",
+                    wb1.getStylesSource().removeNumberFormat(fmt));
+            try {
+                wb1.getStylesSource().removeNumberFormat(fmt);
+                fail("Should fail here");
+            } catch (IllegalStateException e) {
+                // expected here
+            }
+
             // number format in CellStyles should be restored to default number format
             final short defaultFmtIdx = 0;
             final String defaultFmt = BuiltinFormats.getBuiltinFormat(0);
             assertEquals(defaultFmtIdx, style.getDataFormat());
             assertEquals(defaultFmt, style.getDataFormatString());
-            
+
             // The custom number format should be entirely removed from the workbook
-            Map<Short,String> numberFormats = wb1.getStylesSource().getNumberFormats();
+            Map<Short, String> numberFormats = wb1.getStylesSource().getNumberFormats();
             assertNotContainsKey(numberFormats, fmtIdx);
             assertNotContainsValue(numberFormats, fmt);
-            
+
             // The default style shouldn't be added back to the styles source because it's built-in
             assertEquals(0, wb1.getStylesSource().getNumDataFormats());
-            
-            cell = null; style = null; numberFormats = null;
-            XSSFWorkbook wb2 = XSSFTestDataSamples.writeOutCloseAndReadBack(wb1);
-            
-            cell = wb2.getSheet("test").getRow(0).getCell(0);
-            style = cell.getCellStyle();
-            
-            // number format in CellStyles should be restored to default number format
-            assertEquals(defaultFmtIdx, style.getDataFormat());
-            assertEquals(defaultFmt, style.getDataFormatString());
-            
-            // The custom number format should be entirely removed from the workbook
-            numberFormats = wb2.getStylesSource().getNumberFormats();
-            assertNotContainsKey(numberFormats, fmtIdx);
-            assertNotContainsValue(numberFormats, fmt);
-            
-            // The default style shouldn't be added back to the styles source because it's built-in
-            assertEquals(0, wb2.getStylesSource().getNumDataFormats());
-            
-            wb2.close();
-            
-        } finally {
-            wb1.close();
+
+            try (XSSFWorkbook wb2 = XSSFTestDataSamples.writeOutCloseAndReadBack(wb1)) {
+
+                cell = wb2.getSheet("test").getRow(0).getCell(0);
+                style = cell.getCellStyle();
+
+                // number format in CellStyles should be restored to default number format
+                assertEquals(defaultFmtIdx, style.getDataFormat());
+                assertEquals(defaultFmt, style.getDataFormatString());
+
+                // The custom number format should be entirely removed from the workbook
+                numberFormats = wb2.getStylesSource().getNumberFormats();
+                assertNotContainsKey(numberFormats, fmtIdx);
+                assertNotContainsValue(numberFormats, fmt);
+
+                // The default style shouldn't be added back to the styles source because it's built-in
+                assertEquals(0, wb2.getStylesSource().getNumDataFormats());
+            }
         }
     }
     
     @Test
     public void maxNumberOfDataFormats() throws IOException {
-        XSSFWorkbook wb = new XSSFWorkbook();
-        
-        try {
+        try (XSSFWorkbook wb = new XSSFWorkbook()) {
             StylesTable styles = wb.getStylesSource();
-            
+
             // Check default limit
             int n = styles.getMaxNumberOfDataFormats();
             // https://support.office.com/en-us/article/excel-specifications-and-limits-1672b34d-7043-467e-8e27-269d656771c3
             assertTrue(200 <= n);
             assertTrue(n <= 250);
-            
+
             // Check upper limit
             n = Integer.MAX_VALUE;
             styles.setMaxNumberOfDataFormats(n);
             assertEquals(n, styles.getMaxNumberOfDataFormats());
-            
+
             // Check negative (illegal) limits
             try {
                 styles.setMaxNumberOfDataFormats(-1);
                 fail("Expected to get an IllegalArgumentException(\"Maximum Number of Data Formats must be greater than or equal to 0\")");
             } catch (final IllegalArgumentException e) {
-                if (e.getMessage().startsWith("Maximum Number of Data Formats must be greater than or equal to 0")) {
-                    // expected
-                } else {
+                if (!e.getMessage().startsWith("Maximum Number of Data Formats must be greater than or equal to 0")) {
                     throw e;
                 }
             }
         }
-        finally {
-            wb.close();
-        }
     }
     
     @Test
     public void addDataFormatsBeyondUpperLimit() throws IOException {
-        XSSFWorkbook wb = new XSSFWorkbook();
-        
-        try {
+
+        try (XSSFWorkbook wb = new XSSFWorkbook()) {
             StylesTable styles = wb.getStylesSource();
             styles.setMaxNumberOfDataFormats(0);
-            
+
             // Try adding a format beyond the upper limit
             try {
                 styles.putNumberFormat("\"test \"0");
                 fail("Expected to raise IllegalStateException");
             } catch (final IllegalStateException e) {
-                if (e.getMessage().startsWith("The maximum number of Data Formats was exceeded.")) {
-                    // expected
-                } else {
+                if (!e.getMessage().startsWith("The maximum number of Data Formats was exceeded.")) {
                     throw e;
                 }
             }
         }
-        finally {
-            wb.close();
-        }
     }
     
     @Test
     public void decreaseUpperLimitBelowCurrentNumDataFormats() throws IOException {
-        XSSFWorkbook wb = new XSSFWorkbook();
-        
-        try {
+
+        try (XSSFWorkbook wb = new XSSFWorkbook()) {
             StylesTable styles = wb.getStylesSource();
             styles.putNumberFormat(customDataFormat);
-            
+
             // Try decreasing the upper limit below the current number of formats
             try {
                 styles.setMaxNumberOfDataFormats(0);
                 fail("Expected to raise IllegalStateException");
             } catch (final IllegalStateException e) {
-                if (e.getMessage().startsWith("Cannot set the maximum number of data formats less than the current quantity.")) {
-                    // expected
-                } else {
+                if (!e.getMessage().startsWith("Cannot set the maximum number of data formats less than the current quantity.")) {
                     throw e;
                 }
             }
         }
-        finally {
-            wb.close();
-        }
     }
 
     @Test
@@ -363,6 +340,21 @@ public final class TestStylesTable {
         assertNotNull(workbook.getStylesSource());
 
         StylesTable st = workbook.getStylesSource();
+        assertNotNull(st);
+
+        assertNotNull(XSSFTestDataSamples.writeOutAndReadBack(workbook));
+    }
+
+    @Test
+    public void testReplaceStyle() {
+        XSSFWorkbook workbook = XSSFTestDataSamples.openSampleWorkbook("style-alternate-content.xlsx");
+        assertNotNull(workbook.getStylesSource());
+
+        StylesTable st = workbook.getStylesSource();
+        assertNotNull(st);
+
+        st.replaceCellStyleXfAt(0, st.getCellStyleXfAt(1));
+        st.replaceCellStyleXfAt(1, st.getCellStyleXfAt(1));
 
         assertNotNull(XSSFTestDataSamples.writeOutAndReadBack(workbook));
     }
index c8f76873ff3f95717829f1774919e0ebda0ac20e..95e5e67e61780d3bf269f2a425deb9c7e3165c30 100644 (file)
@@ -2524,20 +2524,20 @@ public final class TestXSSFBugs extends BaseTestBugzillaIssues {
         wb.getCreationHelper().createFormulaEvaluator().evaluateAll();
 
         CalculationChain chain = ((XSSFWorkbook) wb).getCalculationChain();
-        for (CTCalcCell calc : chain.getCTCalcChain().getCList()) {
-            // A2 to A6 should be gone
-            assertFalse(calc.getR().equals("A2"));
-            assertFalse(calc.getR().equals("A3"));
-            assertFalse(calc.getR().equals("A4"));
-            assertFalse(calc.getR().equals("A5"));
-            assertFalse(calc.getR().equals("A6"));
-        }
+        checkCellsAreGone(chain);
 
         Workbook wbBack = XSSFTestDataSamples.writeOutAndReadBack(wb);
         Sheet sheetBack = wbBack.getSheet("Func");
         assertNotNull(sheetBack);
 
         chain = ((XSSFWorkbook) wbBack).getCalculationChain();
+        checkCellsAreGone(chain);
+
+        wbBack.close();
+        wb.close();
+    }
+
+    private void checkCellsAreGone(CalculationChain chain) {
         for (CTCalcCell calc : chain.getCTCalcChain().getCList()) {
             // A2 to A6 should be gone
             assertFalse(calc.getR().equals("A2"));
@@ -2546,9 +2546,6 @@ public final class TestXSSFBugs extends BaseTestBugzillaIssues {
             assertFalse(calc.getR().equals("A5"));
             assertFalse(calc.getR().equals("A6"));
         }
-
-        wbBack.close();
-        wb.close();
     }
 
     /**
@@ -2571,22 +2568,6 @@ public final class TestXSSFBugs extends BaseTestBugzillaIssues {
         wb.close();
     }
 
-    private void assertFormula(Workbook wb, Cell intF, String expectedFormula, String expectedResultOrNull) {
-        assertEquals(CellType.FORMULA, intF.getCellType());
-        if (null == expectedResultOrNull) {
-            assertEquals(CellType.ERROR, intF.getCachedFormulaResultType());
-            expectedResultOrNull = "#VALUE!";
-        } else {
-            assertEquals(CellType.NUMERIC, intF.getCachedFormulaResultType());
-        }
-
-        assertEquals(expectedFormula, intF.getCellFormula());
-
-        // Check we can evaluate it correctly
-        FormulaEvaluator eval = wb.getCreationHelper().createFormulaEvaluator();
-        assertEquals(expectedResultOrNull, eval.evaluate(intF).formatAsString());
-    }
-
     @Test
     public void test48962() throws IOException {
         Workbook wb = XSSFTestDataSamples.openSampleWorkbook("48962.xlsx");
index a214abdaeb64e75caec6fa060367ccf0625abddf..01cd88033290b4cef66188ddcadd79d273c4ccef 100644 (file)
 
 package org.apache.poi.xssf.usermodel;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertSame;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.assertFalse;
-
 import java.io.IOException;
 import java.util.List;
 
@@ -58,6 +50,8 @@ import org.junit.Test;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCell;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.STCellType;
 
+import static org.junit.Assert.*;
+
 public final class TestXSSFCell extends BaseTestXCell {
 
     public TestXSSFCell() {
@@ -149,17 +143,16 @@ public final class TestXSSFCell extends BaseTestXCell {
 
     @Test
     public void testFormulaString() throws IOException {
-        XSSFWorkbook wb = (XSSFWorkbook)_testDataProvider.createWorkbook();
-        try {
+        try (XSSFWorkbook wb = (XSSFWorkbook) _testDataProvider.createWorkbook()) {
             XSSFCell cell = wb.createSheet().createRow(0).createCell(0);
             CTCell ctCell = cell.getCTCell(); //low-level bean holding cell's xml
-    
+
             cell.setCellFormula("A2");
             assertEquals(CellType.FORMULA, cell.getCellType());
             assertEquals("A2", cell.getCellFormula());
             //the value is not set and cell's type='N' which means blank
             assertEquals(STCellType.N, ctCell.getT());
-    
+
             //set cached formula value
             cell.setCellValue("t='str'");
             //we are still of 'formula' type
@@ -168,57 +161,44 @@ public final class TestXSSFCell extends BaseTestXCell {
             //cached formula value is set and cell's type='STR'
             assertEquals(STCellType.STR, ctCell.getT());
             assertEquals("t='str'", cell.getStringCellValue());
-    
+
             //now remove the formula, the cached formula result remains
             cell.setCellFormula(null);
             assertEquals(CellType.STRING, cell.getCellType());
             assertEquals(STCellType.STR, ctCell.getT());
             //the line below failed prior to fix of Bug #47889
             assertEquals("t='str'", cell.getStringCellValue());
-    
+
             //revert to a blank cell
-            cell.setCellValue((String)null);
+            cell.setCellValue((String) null);
             assertEquals(CellType.BLANK, cell.getCellType());
             assertEquals(STCellType.N, ctCell.getT());
             assertEquals("", cell.getStringCellValue());
 
             // check behavior with setCellFormulaValidation
             final String invalidFormula = "A", validFormula = "A2";
-            FormulaParseException fpe = null;
+
             // check that default is true
             assertTrue(wb.getCellFormulaValidation());
 
             // check that valid formula does not throw exception
-            try {
-                cell.setCellFormula(validFormula);
-            } catch(FormulaParseException e) {
-                fpe = e;
-            }
-            assertNull(fpe);
+            cell.setCellFormula(validFormula);
 
             // check that invalid formula does throw exception
             try {
                 cell.setCellFormula(invalidFormula);
-            } catch(FormulaParseException e) {
-                fpe = e;
+                fail("Should catch exception here");
+            } catch (FormulaParseException e) {
+                // expected here
             }
-            assertNotNull(fpe);
-            fpe = null;
 
             // set cell formula validation to false
             wb.setCellFormulaValidation(false);
             assertFalse(wb.getCellFormulaValidation());
 
             // check that neither valid nor invalid formula throw an exception
-            try {
-                cell.setCellFormula(validFormula);
-                cell.setCellFormula(invalidFormula);
-            } catch(FormulaParseException e) {
-                fpe = e;
-            }
-            assertNull(fpe);
-        } finally {
-            wb.close();
+            cell.setCellFormula(validFormula);
+            cell.setCellFormula(invalidFormula);
         }
     }
 
@@ -409,37 +389,34 @@ public final class TestXSSFCell extends BaseTestXCell {
     
     @Test
     public void test56170Reproduce() throws IOException {
-        final Workbook wb = new XSSFWorkbook();
-        try {
+        try (Workbook wb = new XSSFWorkbook()) {
             final Sheet sheet = wb.createSheet();
             Row row = sheet.createRow(0);
-            
+
             // by creating Cells out of order we trigger the handling in onDocumentWrite()
             Cell cell1 = row.createCell(1);
             Cell cell2 = row.createCell(0);
-    
+
             validateRow(row);
-            
+
             validateRow(row);
-    
+
             // once again with removing one cell
             row.removeCell(cell1);
-    
+
             validateRow(row);
-    
+
             // once again with removing one cell
             row.removeCell(cell1);
-    
+
             // now check again
             validateRow(row);
-    
+
             // once again with removing one cell
             row.removeCell(cell2);
-    
+
             // now check again
             validateRow(row);
-        } finally {
-            wb.close();
         }
     }
 
@@ -454,40 +431,31 @@ public final class TestXSSFCell extends BaseTestXCell {
 
     @Test
     public void testBug56644ReturnNull() throws IOException {
-        Workbook wb = XSSFTestDataSamples.openSampleWorkbook("56644.xlsx");
-        try {
+        try (Workbook wb = XSSFTestDataSamples.openSampleWorkbook("56644.xlsx")) {
             wb.setMissingCellPolicy(MissingCellPolicy.RETURN_BLANK_AS_NULL);
             Sheet sheet = wb.getSheet("samplelist");
             Row row = sheet.getRow(20);
             row.createCell(2);
-        } finally {
-            wb.close();
         }
     }
 
     @Test
     public void testBug56644ReturnBlank() throws IOException {
-        Workbook wb = XSSFTestDataSamples.openSampleWorkbook("56644.xlsx");
-        try {
+        try (Workbook wb = XSSFTestDataSamples.openSampleWorkbook("56644.xlsx")) {
             wb.setMissingCellPolicy(MissingCellPolicy.RETURN_NULL_AND_BLANK);
             Sheet sheet = wb.getSheet("samplelist");
             Row row = sheet.getRow(20);
             row.createCell(2);
-        } finally {
-            wb.close();
         }
     }
 
     @Test
     public void testBug56644CreateBlank() throws IOException {
-        Workbook wb = XSSFTestDataSamples.openSampleWorkbook("56644.xlsx");
-        try {
+        try (Workbook wb = XSSFTestDataSamples.openSampleWorkbook("56644.xlsx")) {
             wb.setMissingCellPolicy(MissingCellPolicy.CREATE_NULL_AS_BLANK);
             Sheet sheet = wb.getSheet("samplelist");
             Row row = sheet.getRow(20);
             row.createCell(2);
-        } finally {
-            wb.close();
         }
     }
 
index d725143a22f84bcb4aed9f06ebea3535f43f1a25..39ff3715d7b7d23868b2082e3981e3e8991c4f08 100644 (file)
@@ -93,8 +93,8 @@ public class TestXSSFCellStyle {
                cellXf.setBorderId(1);
                cellXf.setFillId(1);
                cellXf.setFontId(1);
-               stylesTable.putCellStyleXf(cellStyleXf);
-               stylesTable.putCellXf(cellXf);
+               assertEquals(2, stylesTable.putCellStyleXf(cellStyleXf));
+               assertEquals(2, stylesTable.putCellXf(cellXf));
                cellStyle = new XSSFCellStyle(1, 1, stylesTable, null);
 
                assertNotNull(stylesTable.getFillAt(1).getCTFill().getPatternFill());
@@ -537,7 +537,8 @@ public class TestXSSFCellStyle {
         assertEquals(IndexedColors.AUTOMATIC.getIndex(), cellStyle.getFillBackgroundColor());
        }
 
-       @Test
+       @SuppressWarnings("deprecation")
+    @Test
     public void testDefaultStyles() throws IOException {
 
                XSSFWorkbook wb1 = new XSSFWorkbook();
@@ -569,7 +570,8 @@ public class TestXSSFCellStyle {
         wb2.close();
        }
 
-       @Test
+       @SuppressWarnings("deprecation")
+    @Test
     public void testGetFillForegroundColor() throws IOException {
         XSSFWorkbook wb = new XSSFWorkbook();
         StylesTable styles = wb.getStylesSource();
@@ -610,6 +612,7 @@ public class TestXSSFCellStyle {
         wb.close();
     }
 
+    @SuppressWarnings("deprecation")
     @Test
     public void testGetFillPattern() {
 
@@ -674,7 +677,8 @@ public class TestXSSFCellStyle {
                assertEquals((short)13, cellStyle.getIndention());
        }
 
-       @Test
+       @SuppressWarnings("deprecation")
+    @Test
     public void testGetSetAlignment() {
                assertNull(cellStyle.getCellAlignment().getCTCellAlignment().getHorizontal());
                assertEquals(HorizontalAlignment.GENERAL, cellStyle.getAlignmentEnum());
@@ -695,7 +699,8 @@ public class TestXSSFCellStyle {
                assertEquals(STHorizontalAlignment.CENTER, cellStyle.getCellAlignment().getCTCellAlignment().getHorizontal());
        }
 
-       @Test
+       @SuppressWarnings("deprecation")
+    @Test
     public void testGetSetVerticalAlignment() {
                assertEquals(VerticalAlignment.BOTTOM, cellStyle.getVerticalAlignmentEnum());
                assertEquals(VerticalAlignment.BOTTOM.getCode(), cellStyle.getVerticalAlignment());
@@ -958,6 +963,7 @@ public class TestXSSFCellStyle {
         assertEquals(HorizontalAlignment.RIGHT, styleBack.getAlignmentEnum());
         assertEquals(VerticalAlignment.TOP, styleBack.getVerticalAlignmentEnum());
         assertEquals(FillPatternType.SOLID_FOREGROUND, styleBack.getFillPatternEnum());
+        //noinspection deprecation
         assertEquals(FillPatternType.SOLID_FOREGROUND.getCode(), styleBack.getFillPattern());
         
         wbBack.close();
index 2938140cb2a88f0ff0f3ee8407d05bbb75049871..5a40456299c1c76722e43a30985e5f0e00e5bba4 100644 (file)
@@ -85,7 +85,6 @@ import org.openxmlformats.schemas.spreadsheetml.x2006.main.STUnsignedShortHex;
 
 
 public final class TestXSSFSheet extends BaseTestXSheet {
-
     public TestXSSFSheet() {
         super(XSSFITestDataProvider.instance);
     }
@@ -319,7 +318,7 @@ public final class TestXSSFSheet extends BaseTestXSheet {
         cellStyleXf.setFillId(0);
         cellStyleXf.setBorderId(0);
         cellStyleXf.setNumFmtId(0);
-        stylesTable.putCellStyleXf(cellStyleXf);
+        assertEquals(2, stylesTable.putCellStyleXf(cellStyleXf));
         CTXf cellXf = CTXf.Factory.newInstance();
         cellXf.setXfId(1);
         stylesTable.putCellXf(cellXf);
@@ -367,7 +366,7 @@ public final class TestXSSFSheet extends BaseTestXSheet {
 
         sheet.ungroupColumn(8, 10);
         colArray = cols.getColArray();
-        //assertEquals(3, colArray[1].getOutlineLevel());
+        assertEquals(3, colArray[1].getOutlineLevel());
 
         sheet.ungroupColumn(4, 6);
         sheet.ungroupColumn(2, 2);
@@ -564,6 +563,7 @@ public final class TestXSSFSheet extends BaseTestXSheet {
      * @param fromColumnIndex 0-indexed
      * @param toColumnIndex 0-indexed
      */
+    @SuppressWarnings("SameParameterValue")
     private static void checkColumnGroup(
             CTCol col,
             int fromColumnIndex, int toColumnIndex,
@@ -615,6 +615,7 @@ public final class TestXSSFSheet extends BaseTestXSheet {
      * @param fromColumnIndex 0-indexed
      * @param toColumnIndex 0-indexed
      */
+    @SuppressWarnings("SameParameterValue")
     private static void checkColumnGroupIsExpanded(
             CTCol col,
             int fromColumnIndex, int toColumnIndex
@@ -992,6 +993,7 @@ public final class TestXSSFSheet extends BaseTestXSheet {
         wb1.close();
         sheet = wb2.getSheetAt(0);
         wsh = sheet.getCTWorksheet();
+        assertNotNull(wsh);
         xrow = sheetData.getRowArray();
         assertEquals(3, xrow.length);
 
@@ -1888,52 +1890,43 @@ public final class TestXSSFSheet extends BaseTestXSheet {
     
     @Test
     public void setTabColor() throws IOException {
-        XSSFWorkbook wb = new XSSFWorkbook();
-        try {
+        try (XSSFWorkbook wb = new XSSFWorkbook()) {
             XSSFSheet sh = wb.createSheet();
             assertTrue(sh.getCTWorksheet().getSheetPr() == null || !sh.getCTWorksheet().getSheetPr().isSetTabColor());
             sh.setTabColor(new XSSFColor(IndexedColors.RED, null));
             assertTrue(sh.getCTWorksheet().getSheetPr().isSetTabColor());
             assertEquals(IndexedColors.RED.index,
                     sh.getCTWorksheet().getSheetPr().getTabColor().getIndexed());
-        } finally {
-            wb.close();
         }
     }
     
     @Test
     public void getTabColor() throws IOException {
-        XSSFWorkbook wb = new XSSFWorkbook();
-        try {
+        try (XSSFWorkbook wb = new XSSFWorkbook()) {
             XSSFSheet sh = wb.createSheet();
             assertTrue(sh.getCTWorksheet().getSheetPr() == null || !sh.getCTWorksheet().getSheetPr().isSetTabColor());
             assertNull(sh.getTabColor());
             sh.setTabColor(new XSSFColor(IndexedColors.RED, null));
             XSSFColor expected = new XSSFColor(IndexedColors.RED, null);
             assertEquals(expected, sh.getTabColor());
-        } finally {
-            wb.close();
         }
     }
     
     // Test using an existing workbook saved by Excel
     @Test
     public void tabColor() throws IOException {
-        XSSFWorkbook wb = openSampleWorkbook("SheetTabColors.xlsx");
-        try {
+        try (XSSFWorkbook wb = openSampleWorkbook("SheetTabColors.xlsx")) {
             // non-colored sheets do not have a color
             assertNull(wb.getSheet("default").getTabColor());
-            
+
             // test indexed-colored sheet
             XSSFColor expected = new XSSFColor(IndexedColors.RED, null);
             assertEquals(expected, wb.getSheet("indexedRed").getTabColor());
-            
+
             // test regular-colored (non-indexed, ARGB) sheet
             expected = new XSSFColor();
             expected.setARGBHex("FF7F2700");
             assertEquals(expected, wb.getSheet("customOrange").getTabColor());
-        } finally {
-            wb.close();
         }
     }
     
index ebaa9ae66c72f6d4323d838e23804d3d16e513c0..362e079a430a8d83135ed1ced9f4c9d9da3774df 100644 (file)
@@ -1872,7 +1872,7 @@ public final class TestBugs extends BaseTestBugzillaIssues {
         // Link our new workbook
         Workbook externalWb1 = new HSSFWorkbook();
         externalWb1.createSheet("Sheet1");
-        wb1.linkExternalWorkbook("$http://gagravarr.org/FormulaRefs2.xls", externalWb1);
+        assertEquals(4, wb1.linkExternalWorkbook("$http://gagravarr.org/FormulaRefs2.xls", externalWb1));
 
         // Change 4
         row.getCell(1).setCellFormula("'[$http://gagravarr.org/FormulaRefs2.xls]Sheet1'!B2");
@@ -1881,7 +1881,7 @@ public final class TestBugs extends BaseTestBugzillaIssues {
         // Link our new workbook
         Workbook externalWb2 = new HSSFWorkbook();
         externalWb2.createSheet("Sheet1");
-        wb1.linkExternalWorkbook("$http://example.com/FormulaRefs.xls", externalWb2);
+        assertEquals(5, wb1.linkExternalWorkbook("$http://example.com/FormulaRefs.xls", externalWb2));
 
         // Add 5
         row = s.createRow(5);
@@ -2782,22 +2782,6 @@ public final class TestBugs extends BaseTestBugzillaIssues {
         wb.close();
     }
 
-    private void assertFormula(Workbook wb, Cell intF, String expectedFormula, String expectedResultOrNull) {
-        assertEquals(CellType.FORMULA, intF.getCellType());
-        if (null == expectedResultOrNull) {
-            assertEquals(CellType.ERROR, intF.getCachedFormulaResultType());
-            expectedResultOrNull = "#VALUE!";
-        } else {
-            assertEquals(CellType.NUMERIC, intF.getCachedFormulaResultType());
-        }
-
-        assertEquals(expectedFormula, intF.getCellFormula());
-
-        // Check we can evaluate it correctly
-        FormulaEvaluator eval = wb.getCreationHelper().createFormulaEvaluator();
-        assertEquals(expectedResultOrNull, eval.evaluate(intF).formatAsString());
-    }
-
     @Test
     public void bug42016() throws Exception {
         Workbook wb = openSample("42016.xls");
index 737d6619e567fc9044cbb46af611040c72de4f71..150fa83891975c2b967835851e2753e7d9224da6 100644 (file)
@@ -224,8 +224,7 @@ public final class TestHSSFFormulaEvaluator extends BaseTestFormulaEvaluator {
       // Check it evaluates correctly
       eval.evaluateFormulaCell(cell);
       assertEquals(24.60*1.8, cell.getNumericCellValue(), 0);
-      
-      
+
       // Try to add a formula for a new external workbook, won't be allowed to start
       try {
           cell = wb1.getSheetAt(0).getRow(1).createCell(42);
@@ -238,7 +237,7 @@ public final class TestHSSFFormulaEvaluator extends BaseTestFormulaEvaluator {
       // Link our new workbook
       HSSFWorkbook wb3 = new HSSFWorkbook();
       wb3.createSheet().createRow(0).createCell(0).setCellValue("In another workbook");
-      wb1.linkExternalWorkbook("alt.xls", wb3);
+      assertEquals(2, wb1.linkExternalWorkbook("alt.xls", wb3));
       
       // Now add a formula that refers to our new workbook
       cell.setCellFormula("[alt.xls]Sheet0!$A$1");
index a4e06bbbead7adcedeff26ad9ef0c0221c81268b..49309d93e68ebc33194549d5146962ad993ccec2 100644 (file)
@@ -1896,4 +1896,20 @@ public abstract class BaseTestBugzillaIssues {
 
         wb.close();
     }
+
+    protected void assertFormula(Workbook wb, Cell intF, String expectedFormula, String expectedResultOrNull) {
+        assertEquals(CellType.FORMULA, intF.getCellType());
+        if (null == expectedResultOrNull) {
+            assertEquals(CellType.ERROR, intF.getCachedFormulaResultType());
+            expectedResultOrNull = "#VALUE!";
+        } else {
+            assertEquals(CellType.NUMERIC, intF.getCachedFormulaResultType());
+        }
+
+        assertEquals(expectedFormula, intF.getCellFormula());
+
+        // Check we can evaluate it correctly
+        FormulaEvaluator eval = wb.getCreationHelper().createFormulaEvaluator();
+        assertEquals(expectedResultOrNull, eval.evaluate(intF).formatAsString());
+    }
 }
\ No newline at end of file
index 7c8b06443c4ca12a5b8b4ff5bf558d572cd2eace..5657babed8bc3bb99ebf7768608ac6a8b42836df 100644 (file)
@@ -133,6 +133,7 @@ public abstract class BaseTestFont {
         Workbook wb3 = _testDataProvider.writeOutAndReadBack(wb2);
         wb2.close();
         s1 = wb3.getSheetAt(0);
+        assertNotNull(s1);
 
         assertEquals(num0 + 2, wb3.getNumberOfFonts());
         assertNotNull(wb3.getFontAt(font1Idx));
@@ -145,8 +146,6 @@ public abstract class BaseTestFont {
 
     /**
      * Test that fonts get added properly
-     *
-     * @see org.apache.poi.hssf.usermodel.TestBugs#test45338()
      */
     @Test
     public final void test45338() throws IOException {