You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ce...@apache.org on 2013/08/22 00:19:59 UTC
svn commit: r1516314 -
/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java
Author: centic
Date: Wed Aug 21 22:19:58 2013
New Revision: 1516314
URL: http://svn.apache.org/r1516314
Log:
Adjust test for Bug 50298 to not leave a temporary file behind and
enhance the test with some more cases of moving/changing/removing sheet
order/names
Modified:
poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java
Modified: poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java?rev=1516314&r1=1516313&r2=1516314&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFWorkbook.java Wed Aug 21 22:19:58 2013
@@ -897,15 +897,67 @@ public final class TestHSSFWorkbook exte
public void testBug50298() throws Exception {
HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("50298.xls");
+ assertSheetOrder(wb, "Invoice", "Invoice1", "Digest", "Deferred", "Received");
+
+ HSSFSheet sheet = wb.cloneSheet(0);
+
+ assertSheetOrder(wb, "Invoice", "Invoice1", "Digest", "Deferred", "Received", "Invoice (2)");
+
+ wb.setSheetName(wb.getSheetIndex(sheet), "copy");
+
+ assertSheetOrder(wb, "Invoice", "Invoice1", "Digest", "Deferred", "Received", "copy");
+
+ wb.setSheetOrder("copy", 0);
+
+ assertSheetOrder(wb, "copy", "Invoice", "Invoice1", "Digest", "Deferred", "Received");
+
+ wb.removeSheetAt(0);
+
+ assertSheetOrder(wb, "Invoice", "Invoice1", "Digest", "Deferred", "Received");
+
+ // check that the overall workbook serializes with its correct size
+ int expected = wb.getWorkbook().getSize();
+ int written = wb.getWorkbook().serialize(0, new byte[expected*2]);
+
+ assertEquals("Did not have the expected size when writing the workbook: written: " + written + ", but expected: " + expected,
+ expected, written);
+
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ wb.write(out);
+ HSSFWorkbook read = new HSSFWorkbook(new ByteArrayInputStream(out.toByteArray()));
+ assertSheetOrder(read, "Invoice", "Invoice1", "Digest", "Deferred", "Received");
+ }
+
+ public void testBug50298a() throws Exception {
+ HSSFWorkbook wb = HSSFTestDataSamples.openSampleWorkbook("50298.xls");
+
+ assertSheetOrder(wb, "Invoice", "Invoice1", "Digest", "Deferred", "Received");
+
HSSFSheet sheet = wb.cloneSheet(0);
+
+ assertSheetOrder(wb, "Invoice", "Invoice1", "Digest", "Deferred", "Received", "Invoice (2)");
wb.setSheetName(wb.getSheetIndex(sheet), "copy");
+ assertSheetOrder(wb, "Invoice", "Invoice1", "Digest", "Deferred", "Received", "copy");
+
wb.setSheetOrder("copy", 0);
+ assertSheetOrder(wb, "copy", "Invoice", "Invoice1", "Digest", "Deferred", "Received");
+
wb.removeSheetAt(0);
+ assertSheetOrder(wb, "Invoice", "Invoice1", "Digest", "Deferred", "Received");
+
+ wb.removeSheetAt(1);
+
+ assertSheetOrder(wb, "Invoice", "Digest", "Deferred", "Received");
+
+ wb.setSheetOrder("Digest", 3);
+
+ assertSheetOrder(wb, "Invoice", "Deferred", "Received", "Digest");
+
// check that the overall workbook serializes with its correct size
int expected = wb.getWorkbook().getSize();
int written = wb.getWorkbook().serialize(0, new byte[expected*2]);
@@ -913,11 +965,23 @@ public final class TestHSSFWorkbook exte
assertEquals("Did not have the expected size when writing the workbook: written: " + written + ", but expected: " + expected,
expected, written);
- FileOutputStream fileOut = new FileOutputStream("/tmp/workbook.xls");
- try {
- wb.write(fileOut);
- } finally {
- fileOut.close();
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ wb.write(out);
+
+ HSSFWorkbook read = new HSSFWorkbook(new ByteArrayInputStream(out.toByteArray()));
+ assertSheetOrder(wb, "Invoice", "Deferred", "Received", "Digest");
+ }
+
+ private void assertSheetOrder(HSSFWorkbook wb, String... sheets) {
+ StringBuilder sheetNames = new StringBuilder();
+ for(int i = 0;i < wb.getNumberOfSheets();i++) {
+ sheetNames.append(wb.getSheetAt(i).getSheetName()).append(",");
+ }
+ assertEquals("Had: " + sheetNames.toString(),
+ sheets.length, wb.getNumberOfSheets());
+ for(int i = 0;i < wb.getNumberOfSheets();i++) {
+ assertEquals("Had: " + sheetNames.toString(),
+ sheets[i], wb.getSheetAt(i).getSheetName());
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org