Add unit test showing that bug #50867 works fine

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1078065 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Nick Burch 2011-03-04 17:31:52 +00:00
parent 3a867c9583
commit cb54849561
2 changed files with 57 additions and 0 deletions

View File

@ -42,6 +42,7 @@ import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.XSSFITestDataProvider;
import org.apache.poi.xssf.XSSFTestDataSamples;
import org.apache.poi.xssf.model.CalculationChain;
import org.apache.poi.xssf.model.Table;
import org.apache.poi.xssf.usermodel.extensions.XSSFCellFill;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorksheet;
@ -821,4 +822,60 @@ public final class TestXSSFBugs extends BaseTestBugzillaIssues {
cell = row.getCell(2);
assertEquals(text, cell.getStringCellValue());
}
/**
* Adding sheets when one has a table, then re-ordering
*/
public void test50867() throws Exception {
XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("50867_with_table.xlsx");
assertEquals(3, wb.getNumberOfSheets());
XSSFSheet s1 = wb.getSheetAt(0);
XSSFSheet s2 = wb.getSheetAt(1);
XSSFSheet s3 = wb.getSheetAt(2);
assertEquals(1, s1.getTables().size());
assertEquals(0, s2.getTables().size());
assertEquals(0, s3.getTables().size());
Table t = s1.getTables().get(0);
assertEquals("Tabella1", t.getName());
assertEquals("Tabella1", t.getDisplayName());
assertEquals("A1:C3", t.getCTTable().getRef());
// Add a sheet and re-order
XSSFSheet s4 = wb.createSheet("NewSheet");
wb.setSheetOrder(s4.getSheetName(), 0);
// Check on tables
assertEquals(1, s1.getTables().size());
assertEquals(0, s2.getTables().size());
assertEquals(0, s3.getTables().size());
assertEquals(0, s4.getTables().size());
// Refetch to get the new order
s1 = wb.getSheetAt(0);
s2 = wb.getSheetAt(1);
s3 = wb.getSheetAt(2);
s4 = wb.getSheetAt(3);
assertEquals(0, s1.getTables().size());
assertEquals(1, s2.getTables().size());
assertEquals(0, s3.getTables().size());
assertEquals(0, s4.getTables().size());
// Save and re-load
wb = XSSFTestDataSamples.writeOutAndReadBack(wb);
s1 = wb.getSheetAt(0);
s2 = wb.getSheetAt(1);
s3 = wb.getSheetAt(2);
s4 = wb.getSheetAt(3);
assertEquals(0, s1.getTables().size());
assertEquals(1, s2.getTables().size());
assertEquals(0, s3.getTables().size());
assertEquals(0, s4.getTables().size());
t = s2.getTables().get(0);
assertEquals("Tabella1", t.getName());
assertEquals("Tabella1", t.getDisplayName());
assertEquals("A1:C3", t.getCTTable().getRef());
}
}

Binary file not shown.