From a8522bb51ee9b670b97cf4b0a8d2c35b4dbaf3a2 Mon Sep 17 00:00:00 2001 From: Dominik Stadler Date: Tue, 23 Dec 2014 09:26:14 +0000 Subject: [PATCH] Fix testcases which were not executed before, use tempfile, cleanup, ... git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1647511 13f79535-47bb-0310-9956-ffa450edef68 --- .../poi/xssf/usermodel/TestXSSFWorkbook.java | 128 +++++++++++------- 1 file changed, 82 insertions(+), 46 deletions(-) diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java index 2f615a57cc..209bded8c4 100644 --- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java +++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java @@ -285,43 +285,56 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook { } @Test - public void incrementSheetId() { + public void incrementSheetId() throws IOException { XSSFWorkbook wb = new XSSFWorkbook(); - int sheetId = (int)wb.createSheet().sheet.getSheetId(); - assertEquals(1, sheetId); - sheetId = (int)wb.createSheet().sheet.getSheetId(); - assertEquals(2, sheetId); - - //test file with gaps in the sheetId sequence - wb = XSSFTestDataSamples.openSampleWorkbook("47089.xlsm"); - int lastSheetId = (int)wb.getSheetAt(wb.getNumberOfSheets() - 1).sheet.getSheetId(); - sheetId = (int)wb.createSheet().sheet.getSheetId(); - assertEquals(lastSheetId+1, sheetId); + try { + int sheetId = (int)wb.createSheet().sheet.getSheetId(); + assertEquals(1, sheetId); + sheetId = (int)wb.createSheet().sheet.getSheetId(); + assertEquals(2, sheetId); + + //test file with gaps in the sheetId sequence + XSSFWorkbook wbBack = XSSFTestDataSamples.openSampleWorkbook("47089.xlsm"); + try { + int lastSheetId = (int)wbBack.getSheetAt(wbBack.getNumberOfSheets() - 1).sheet.getSheetId(); + sheetId = (int)wbBack.createSheet().sheet.getSheetId(); + assertEquals(lastSheetId+1, sheetId); + } finally { + wbBack.close(); + } + } finally { + wb.close(); + } } /** * Test setting of core properties such as Title and Author + * @throws IOException */ @Test - public void workbookProperties() { + public void workbookProperties() throws IOException { XSSFWorkbook workbook = new XSSFWorkbook(); - POIXMLProperties props = workbook.getProperties(); - assertNotNull(props); - //the Application property must be set for new workbooks, see Bugzilla #47559 - assertEquals("Apache POI", props.getExtendedProperties().getUnderlyingProperties().getApplication()); - - PackagePropertiesPart opcProps = props.getCoreProperties().getUnderlyingProperties(); - assertNotNull(opcProps); - - opcProps.setTitleProperty("Testing Bugzilla #47460"); - assertEquals("Apache POI", opcProps.getCreatorProperty().getValue()); - opcProps.setCreatorProperty("poi-dev@poi.apache.org"); - - workbook = XSSFTestDataSamples.writeOutAndReadBack(workbook); - assertEquals("Apache POI", workbook.getProperties().getExtendedProperties().getUnderlyingProperties().getApplication()); - opcProps = workbook.getProperties().getCoreProperties().getUnderlyingProperties(); - assertEquals("Testing Bugzilla #47460", opcProps.getTitleProperty().getValue()); - assertEquals("poi-dev@poi.apache.org", opcProps.getCreatorProperty().getValue()); + try { + POIXMLProperties props = workbook.getProperties(); + assertNotNull(props); + //the Application property must be set for new workbooks, see Bugzilla #47559 + assertEquals("Apache POI", props.getExtendedProperties().getUnderlyingProperties().getApplication()); + + PackagePropertiesPart opcProps = props.getCoreProperties().getUnderlyingProperties(); + assertNotNull(opcProps); + + opcProps.setTitleProperty("Testing Bugzilla #47460"); + assertEquals("Apache POI", opcProps.getCreatorProperty().getValue()); + opcProps.setCreatorProperty("poi-dev@poi.apache.org"); + + XSSFWorkbook wbBack = XSSFTestDataSamples.writeOutAndReadBack(workbook); + assertEquals("Apache POI", wbBack.getProperties().getExtendedProperties().getUnderlyingProperties().getApplication()); + opcProps = wbBack.getProperties().getCoreProperties().getUnderlyingProperties(); + assertEquals("Testing Bugzilla #47460", opcProps.getTitleProperty().getValue()); + assertEquals("poi-dev@poi.apache.org", opcProps.getCreatorProperty().getValue()); + } finally { + workbook.close(); + } } /** @@ -770,33 +783,56 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook { @Test public void testLoadWorkbookWithPivotTable() throws Exception { - String fileName = "ooxml-pivottable.xlsx"; + File file = TempFile.createTempFile("ooxml-pivottable", ".xlsx"); XSSFWorkbook wb = new XSSFWorkbook(); - setPivotData(wb); + try { + setPivotData(wb); + + FileOutputStream fileOut = new FileOutputStream(file); + wb.write(fileOut); + fileOut.close(); + } finally { + wb.close(); + } - FileOutputStream fileOut = new FileOutputStream(fileName); - wb.write(fileOut); - fileOut.close(); - - XSSFWorkbook wb2 = (XSSFWorkbook) WorkbookFactory.create(new File(fileName)); - assertTrue(wb2.getPivotTables().size() == 1); + XSSFWorkbook wb2 = (XSSFWorkbook) WorkbookFactory.create(file); + try { + assertTrue(wb2.getPivotTables().size() == 1); + } finally { + wb2.close(); + } + + assertTrue(file.delete()); } @Test public void testAddPivotTableToWorkbookWithLoadedPivotTable() throws Exception { - String fileName = "ooxml-pivottable.xlsx"; + File file = TempFile.createTempFile("ooxml-pivottable", ".xlsx"); XSSFWorkbook wb = new XSSFWorkbook(); - setPivotData(wb); + try { + setPivotData(wb); + + FileOutputStream fileOut = new FileOutputStream(file); + try { + wb.write(fileOut); + } finally { + fileOut.close(); + } + } finally { + wb.close(); + } - FileOutputStream fileOut = new FileOutputStream(fileName); - wb.write(fileOut); - fileOut.close(); - - XSSFWorkbook wb2 = (XSSFWorkbook) WorkbookFactory.create(new File(fileName)); - setPivotData(wb2); - assertTrue(wb2.getPivotTables().size() == 2); + XSSFWorkbook wb2 = (XSSFWorkbook) WorkbookFactory.create(file); + try { + setPivotData(wb2); + assertTrue(wb2.getPivotTables().size() == 2); + } finally { + wb2.close(); + } + + assertTrue(file.delete()); } @Test