You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by jo...@apache.org on 2008/09/29 06:28:56 UTC

svn commit: r699984 [2/2] - in /poi/branches/ooxml/src/ooxml: java/org/apache/poi/xssf/model/ java/org/apache/poi/xssf/usermodel/ java/org/apache/poi/xssf/usermodel/extensions/ testcases/org/apache/poi/xssf/usermodel/

Modified: poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java?rev=699984&r1=699983&r2=699984&view=diff
==============================================================================
--- poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java (original)
+++ poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java Sun Sep 28 21:28:55 2008
@@ -17,20 +17,21 @@
 
 package org.apache.poi.xssf.usermodel;
 
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.FileOutputStream;
+import java.io.IOException;
 import java.io.OutputStream;
 
 import junit.framework.TestCase;
 
+import org.apache.poi.hssf.HSSFTestDataSamples;
 import org.apache.poi.ss.usermodel.CellStyle;
 import org.apache.poi.ss.usermodel.Font;
 import org.apache.poi.ss.usermodel.Name;
 import org.apache.poi.ss.usermodel.RichTextString;
 import org.apache.poi.ss.usermodel.Sheet;
 import org.apache.poi.ss.usermodel.StylesSource;
+import org.apache.poi.xssf.XSSFTestDataSamples;
 import org.apache.poi.xssf.model.StylesTable;
 import org.openxml4j.opc.ContentTypes;
 import org.openxml4j.opc.Package;
@@ -39,323 +40,309 @@
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSheet;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorkbook;
 
-public class TestXSSFWorkbook extends TestCase {
-    public TestXSSFWorkbook(String name) {
-		super(name);
-		
+public final class TestXSSFWorkbook extends TestCase {
+
+	@Override
+	protected void setUp() throws Exception {
 		// Use system out logger
-	    System.setProperty(
-	            "org.apache.poi.util.POILogger",
-	            "org.apache.poi.util.SystemOutLogger"
-	    );
+		System.setProperty(
+				"org.apache.poi.util.POILogger",
+				"org.apache.poi.util.SystemOutLogger"
+		);
 	}
 
 	public void testGetSheetIndex() {
-        XSSFWorkbook workbook = new XSSFWorkbook();
-        Sheet sheet1 = workbook.createSheet("sheet1");
-        Sheet sheet2 = workbook.createSheet("sheet2");
-        assertEquals(0, workbook.getSheetIndex(sheet1));
-        assertEquals(0, workbook.getSheetIndex("sheet1"));
-        assertEquals(1, workbook.getSheetIndex(sheet2));
-        assertEquals(1, workbook.getSheetIndex("sheet2"));
-        assertEquals(-1, workbook.getSheetIndex("noSheet"));
-    }
-    
-    public void testSetSheetOrder() throws Exception {
-        XSSFWorkbook workbook = new XSSFWorkbook();
-        Sheet sheet1 = workbook.createSheet("sheet1");
-        Sheet sheet2 = workbook.createSheet("sheet2");
-        assertSame(sheet1, workbook.getSheetAt(0));
-        assertSame(sheet2, workbook.getSheetAt(1));
-        workbook.setSheetOrder("sheet2", 0);
-        assertSame(sheet2, workbook.getSheetAt(0));
-        assertSame(sheet1, workbook.getSheetAt(1));
-        // Test reordering of CTSheets
-        CTWorkbook ctwb = workbook.getWorkbook();
-        CTSheet[] ctsheets = ctwb.getSheets().getSheetArray();
-        assertEquals("sheet2", ctsheets[0].getName());
-        assertEquals("sheet1", ctsheets[1].getName());
-        
-        // Borderline case: only one sheet
-        workbook = new XSSFWorkbook();
-        sheet1 = workbook.createSheet("sheet1");
-        assertSame(sheet1, workbook.getSheetAt(0));
-        workbook.setSheetOrder("sheet1", 0);
-        assertSame(sheet1, workbook.getSheetAt(0));
-    }
-    
-    public void testSetSelectedTab() throws Exception {
-        XSSFWorkbook workbook = new XSSFWorkbook();
-        Sheet sheet1 = workbook.createSheet("sheet1");
-        Sheet sheet2 = workbook.createSheet("sheet2");
-        assertEquals(0, workbook.getSelectedTab());
-        workbook.setSelectedTab((short) 0);
-        assertEquals(0, workbook.getSelectedTab());
-        workbook.setSelectedTab((short) 1);
-        assertEquals(1, workbook.getSelectedTab());
-    }
-    
-    public void testSetSheetName() throws Exception {
-        XSSFWorkbook workbook = new XSSFWorkbook();
-        Sheet sheet1 = workbook.createSheet("sheet1");
-        assertEquals("sheet1", workbook.getSheetName(0));
-        workbook.setSheetName(0, "sheet2");
-        assertEquals("sheet2", workbook.getSheetName(0));
-    }
-    
-    public void testCloneSheet() throws Exception {
-        XSSFWorkbook workbook = new XSSFWorkbook();
-        Sheet sheet1 = workbook.createSheet("sheet");
-        Sheet sheet2 = workbook.cloneSheet(0);
-        assertEquals(2, workbook.getNumberOfSheets());
-        assertEquals("sheet(1)", workbook.getSheetName(1));
-        workbook.setSheetName(1, "clonedsheet");
-        Sheet sheet3 = workbook.cloneSheet(1);
-        assertEquals(3, workbook.getNumberOfSheets());
-        assertEquals("clonedsheet(1)", workbook.getSheetName(2));
-    }
-    
-    public void testGetSheetByName() {
-        XSSFWorkbook workbook = new XSSFWorkbook();
-        Sheet sheet1 = workbook.createSheet("sheet1");
-        Sheet sheet2 = workbook.createSheet("sheet2");
-        assertSame(sheet1, workbook.getSheet("sheet1"));
-        assertSame(sheet2, workbook.getSheet("sheet2"));
-        assertNull(workbook.getSheet("nosheet"));
-    }
-    
-    public void testRemoveSheetAt() throws Exception {
-        XSSFWorkbook workbook = new XSSFWorkbook();
-        Sheet sheet1 = workbook.createSheet("sheet1");
-        Sheet sheet2 = workbook.createSheet("sheet2");
-        Sheet sheet3 = workbook.createSheet("sheet3");
-        workbook.removeSheetAt(1);
-        assertEquals(2, workbook.getNumberOfSheets());
-        assertEquals("sheet3", workbook.getSheetName(1));
-        workbook.removeSheetAt(0);
-        assertEquals(1, workbook.getNumberOfSheets());
-        assertEquals("sheet3", workbook.getSheetName(0));
-        workbook.removeSheetAt(0);
-        assertEquals(0, workbook.getNumberOfSheets());
-    }
-    
-    /**
-     * Tests that we can save a new document
-     */
-    public void testSaveNew() throws Exception {
-        XSSFWorkbook workbook = new XSSFWorkbook();
-        Sheet sheet1 = workbook.createSheet("sheet1");
-        Sheet sheet2 = workbook.createSheet("sheet2");
-        Sheet sheet3 = workbook.createSheet("sheet3");
-        File file = File.createTempFile("poi-", ".xlsx");
-        System.out.println("Saving newly created file to " + file.getAbsolutePath());
-        OutputStream out = new FileOutputStream(file);
-        workbook.write(out);
-        out.close();
-    }
-
-    /**
-     * Tests that we can save, and then re-load a new document
-     */
-    public void testSaveLoadNew() throws Exception {
-        XSSFWorkbook workbook = new XSSFWorkbook();
-        Sheet sheet1 = workbook.createSheet("sheet1");
-        Sheet sheet2 = workbook.createSheet("sheet2");
-        Sheet sheet3 = workbook.createSheet("sheet3");
-        
-        RichTextString rts = workbook.getCreationHelper().createRichTextString("hello world");
-        
-        sheet1.createRow(0).createCell((short)0).setCellValue(1.2);
-        sheet1.createRow(1).createCell((short)0).setCellValue(rts);
-        sheet2.createRow(0);
-        
-        assertEquals(0, workbook.getSheetAt(0).getFirstRowNum());
-        assertEquals(1, workbook.getSheetAt(0).getLastRowNum());
-        assertEquals(0, workbook.getSheetAt(1).getFirstRowNum());
-        assertEquals(0, workbook.getSheetAt(1).getLastRowNum());
-        assertEquals(-1, workbook.getSheetAt(2).getFirstRowNum());
-        assertEquals(-1, workbook.getSheetAt(2).getLastRowNum());
-        
-        File file = File.createTempFile("poi-", ".xlsx");
-        OutputStream out = new FileOutputStream(file);
-        workbook.write(out);
-        out.close();
-        
-        // Check the package contains what we'd expect it to
-        Package pkg = Package.open(file.toString());
-        PackagePart wbRelPart = 
-        	pkg.getPart(PackagingURIHelper.createPartName("/xl/_rels/workbook.xml.rels"));
-        assertNotNull(wbRelPart);
-        assertTrue(wbRelPart.isRelationshipPart());
-        assertEquals(ContentTypes.RELATIONSHIPS_PART, wbRelPart.getContentType());
-        
-        PackagePart wbPart = 
-        	pkg.getPart(PackagingURIHelper.createPartName("/xl/workbook.xml"));
-        // Links to the three sheets, shared strings and styles
-        assertTrue(wbPart.hasRelationships());
-        assertEquals(5, wbPart.getRelationships().size());
-        
-        // Load back the XSSFWorkbook
-        workbook = new XSSFWorkbook(pkg);
-        assertEquals(3, workbook.getNumberOfSheets());
-        assertNotNull(workbook.getSheetAt(0));
-        assertNotNull(workbook.getSheetAt(1));
-        assertNotNull(workbook.getSheetAt(2));
-        
-        assertNotNull(workbook.getSharedStringSource());
-        assertNotNull(workbook.getStylesSource());
-        
-        assertEquals(0, workbook.getSheetAt(0).getFirstRowNum());
-        assertEquals(1, workbook.getSheetAt(0).getLastRowNum());
-        assertEquals(0, workbook.getSheetAt(1).getFirstRowNum());
-        assertEquals(0, workbook.getSheetAt(1).getLastRowNum());
-        assertEquals(-1, workbook.getSheetAt(2).getFirstRowNum());
-        assertEquals(-1, workbook.getSheetAt(2).getLastRowNum());
-        
-        sheet1 = workbook.getSheetAt(0);
-        assertEquals(1.2, sheet1.getRow(0).getCell(0).getNumericCellValue(), 0.0001);
-        assertEquals("hello world", sheet1.getRow(1).getCell(0).getRichStringCellValue().getString());
-    }
-    
-    public void testExisting() throws Exception {
-		File xml = new File(
-				System.getProperty("HSSF.testdata.path") +
-				File.separator + "Formatting.xlsx"
-		);
-		assertTrue(xml.exists());
-    	
-		XSSFWorkbook workbook = new XSSFWorkbook(xml.toString());
+		XSSFWorkbook workbook = new XSSFWorkbook();
+		Sheet sheet1 = workbook.createSheet("sheet1");
+		Sheet sheet2 = workbook.createSheet("sheet2");
+		assertEquals(0, workbook.getSheetIndex(sheet1));
+		assertEquals(0, workbook.getSheetIndex("sheet1"));
+		assertEquals(1, workbook.getSheetIndex(sheet2));
+		assertEquals(1, workbook.getSheetIndex("sheet2"));
+		assertEquals(-1, workbook.getSheetIndex("noSheet"));
+	}
+	
+	public void testSetSheetOrder() {
+		XSSFWorkbook workbook = new XSSFWorkbook();
+		Sheet sheet1 = workbook.createSheet("sheet1");
+		Sheet sheet2 = workbook.createSheet("sheet2");
+		assertSame(sheet1, workbook.getSheetAt(0));
+		assertSame(sheet2, workbook.getSheetAt(1));
+		workbook.setSheetOrder("sheet2", 0);
+		assertSame(sheet2, workbook.getSheetAt(0));
+		assertSame(sheet1, workbook.getSheetAt(1));
+		// Test reordering of CTSheets
+		CTWorkbook ctwb = workbook.getWorkbook();
+		CTSheet[] ctsheets = ctwb.getSheets().getSheetArray();
+		assertEquals("sheet2", ctsheets[0].getName());
+		assertEquals("sheet1", ctsheets[1].getName());
+		
+		// Borderline case: only one sheet
+		workbook = new XSSFWorkbook();
+		sheet1 = workbook.createSheet("sheet1");
+		assertSame(sheet1, workbook.getSheetAt(0));
+		workbook.setSheetOrder("sheet1", 0);
+		assertSame(sheet1, workbook.getSheetAt(0));
+	}
+	
+	public void testSetSelectedTab() {
+		XSSFWorkbook workbook = new XSSFWorkbook();
+		workbook.createSheet("sheet1");
+		workbook.createSheet("sheet2");
+		assertEquals(0, workbook.getSelectedTab());
+		workbook.setSelectedTab((short) 0);
+		assertEquals(0, workbook.getSelectedTab());
+		workbook.setSelectedTab((short) 1);
+		assertEquals(1, workbook.getSelectedTab());
+	}
+	
+	public void testSetSheetName() {
+		XSSFWorkbook workbook = new XSSFWorkbook();
+		workbook.createSheet("sheet1");
+		assertEquals("sheet1", workbook.getSheetName(0));
+		workbook.setSheetName(0, "sheet2");
+		assertEquals("sheet2", workbook.getSheetName(0));
+	}
+	
+	public void testCloneSheet() {
+		XSSFWorkbook workbook = new XSSFWorkbook();
+		workbook.createSheet("sheet");
+		workbook.cloneSheet(0);
+		assertEquals(2, workbook.getNumberOfSheets());
+		assertEquals("sheet(1)", workbook.getSheetName(1));
+		workbook.setSheetName(1, "clonedsheet");
+		workbook.cloneSheet(1);
+		assertEquals(3, workbook.getNumberOfSheets());
+		assertEquals("clonedsheet(1)", workbook.getSheetName(2));
+	}
+	
+	public void testGetSheetByName() {
+		XSSFWorkbook workbook = new XSSFWorkbook();
+		Sheet sheet1 = workbook.createSheet("sheet1");
+		Sheet sheet2 = workbook.createSheet("sheet2");
+		assertSame(sheet1, workbook.getSheet("sheet1"));
+		assertSame(sheet2, workbook.getSheet("sheet2"));
+		assertNull(workbook.getSheet("nosheet"));
+	}
+	
+	public void testRemoveSheetAt() {
+		XSSFWorkbook workbook = new XSSFWorkbook();
+		workbook.createSheet("sheet1");
+		workbook.createSheet("sheet2");
+		workbook.createSheet("sheet3");
+		workbook.removeSheetAt(1);
+		assertEquals(2, workbook.getNumberOfSheets());
+		assertEquals("sheet3", workbook.getSheetName(1));
+		workbook.removeSheetAt(0);
+		assertEquals(1, workbook.getNumberOfSheets());
+		assertEquals("sheet3", workbook.getSheetName(0));
+		workbook.removeSheetAt(0);
+		assertEquals(0, workbook.getNumberOfSheets());
+	}
+	
+	/**
+	 * Tests that we can save a new document
+	 */
+	public void testSaveNew() throws IOException {
+		XSSFWorkbook workbook = new XSSFWorkbook();
+		workbook.createSheet("sheet1");
+		workbook.createSheet("sheet2");
+		workbook.createSheet("sheet3");
+		File file = File.createTempFile("poi-", ".xlsx");
+		System.out.println("Saving newly created file to " + file.getAbsolutePath());
+		OutputStream out = new FileOutputStream(file);
+		workbook.write(out);
+		out.close();
+	}
+
+	/**
+	 * Tests that we can save, and then re-load a new document
+	 */
+	public void testSaveLoadNew() throws Exception {
+		XSSFWorkbook workbook = new XSSFWorkbook();
+		Sheet sheet1 = workbook.createSheet("sheet1");
+		Sheet sheet2 = workbook.createSheet("sheet2");
+		workbook.createSheet("sheet3");
+		
+		RichTextString rts = workbook.getCreationHelper().createRichTextString("hello world");
+		
+		sheet1.createRow(0).createCell((short)0).setCellValue(1.2);
+		sheet1.createRow(1).createCell((short)0).setCellValue(rts);
+		sheet2.createRow(0);
+		
+		assertEquals(0, workbook.getSheetAt(0).getFirstRowNum());
+		assertEquals(1, workbook.getSheetAt(0).getLastRowNum());
+		assertEquals(0, workbook.getSheetAt(1).getFirstRowNum());
+		assertEquals(0, workbook.getSheetAt(1).getLastRowNum());
+		assertEquals(-1, workbook.getSheetAt(2).getFirstRowNum());
+		assertEquals(-1, workbook.getSheetAt(2).getLastRowNum());
+		
+		File file = File.createTempFile("poi-", ".xlsx");
+		OutputStream out = new FileOutputStream(file);
+		workbook.write(out);
+		out.close();
+		
+		// Check the package contains what we'd expect it to
+		Package pkg = Package.open(file.toString());
+		PackagePart wbRelPart = 
+			pkg.getPart(PackagingURIHelper.createPartName("/xl/_rels/workbook.xml.rels"));
+		assertNotNull(wbRelPart);
+		assertTrue(wbRelPart.isRelationshipPart());
+		assertEquals(ContentTypes.RELATIONSHIPS_PART, wbRelPart.getContentType());
+		
+		PackagePart wbPart = 
+			pkg.getPart(PackagingURIHelper.createPartName("/xl/workbook.xml"));
+		// Links to the three sheets, shared strings and styles
+		assertTrue(wbPart.hasRelationships());
+		assertEquals(5, wbPart.getRelationships().size());
+		
+		// Load back the XSSFWorkbook
+		workbook = new XSSFWorkbook(pkg);
+		assertEquals(3, workbook.getNumberOfSheets());
+		assertNotNull(workbook.getSheetAt(0));
+		assertNotNull(workbook.getSheetAt(1));
+		assertNotNull(workbook.getSheetAt(2));
+		
+		assertNotNull(workbook.getSharedStringSource());
+		assertNotNull(workbook.getStylesSource());
+		
+		assertEquals(0, workbook.getSheetAt(0).getFirstRowNum());
+		assertEquals(1, workbook.getSheetAt(0).getLastRowNum());
+		assertEquals(0, workbook.getSheetAt(1).getFirstRowNum());
+		assertEquals(0, workbook.getSheetAt(1).getLastRowNum());
+		assertEquals(-1, workbook.getSheetAt(2).getFirstRowNum());
+		assertEquals(-1, workbook.getSheetAt(2).getLastRowNum());
+		
+		sheet1 = workbook.getSheetAt(0);
+		assertEquals(1.2, sheet1.getRow(0).getCell(0).getNumericCellValue(), 0.0001);
+		assertEquals("hello world", sheet1.getRow(1).getCell(0).getRichStringCellValue().getString());
+	}
+	
+	public void testExisting() throws Exception {
+		
+		XSSFWorkbook workbook = XSSFTestDataSamples.openSampleWorkbook("Formatting.xlsx");
 		assertNotNull(workbook.getSharedStringSource());
 		assertNotNull(workbook.getStylesSource());
 		
 		// And check a few low level bits too
-		Package pkg = Package.open(xml.toString());
-        PackagePart wbPart = 
-        	pkg.getPart(PackagingURIHelper.createPartName("/xl/workbook.xml"));
-        
-        // Links to the three sheets, shared, styles and themes
-        assertTrue(wbPart.hasRelationships());
-        assertEquals(6, wbPart.getRelationships().size());
-
-    }
-    
-    public void testFindFont(){
-        //get default font and check against default value
-    	XSSFWorkbook workbook = new XSSFWorkbook();
-    	Font fontFind=workbook.findFont(Font.BOLDWEIGHT_NORMAL, IndexedColors.BLACK.getIndex(), (short)11, "Calibri", false, false, Font.SS_NONE, Font.U_NONE);
-    	assertNotNull(fontFind);
-    	
-    	//get default font, then change 2 values and check against different values (height changes)
-    	Font font=workbook.createFont();
-    	((XSSFFont)font).setBold(true);
-    	font.setUnderline(Font.U_DOUBLE);
-    	StylesSource styleSource=new StylesTable();
-    	long index=styleSource.putFont(font);
-    	System.out.println("index="+index);
-    	workbook.setStylesSource(styleSource);
-    	fontFind=workbook.findFont(Font.BOLDWEIGHT_BOLD, IndexedColors.BLACK.getIndex(), (short)15, "Calibri", false, false, Font.SS_NONE, Font.U_DOUBLE);
-        assertNull(fontFind);
-    }
-
-    public void testGetCellStyleAt(){
-     	XSSFWorkbook workbook = new XSSFWorkbook();
-        short i = 0;
-        //get default style
-        CellStyle cellStyleAt = workbook.getCellStyleAt(i);
-        assertNotNull(cellStyleAt);
-        
-        //get custom style
-        StylesSource styleSource = workbook.getStylesSource();
-        CellStyle customStyle = new XSSFCellStyle(styleSource);
-        Font font = new XSSFFont();
-        font.setFontName("Verdana");
-        customStyle.setFont(font);
-        Long x = styleSource.putStyle(customStyle);
-        cellStyleAt = workbook.getCellStyleAt(x.shortValue());
-        assertNotNull(cellStyleAt);        
-    }
-    
-    public void testGetFontAt(){
-     	XSSFWorkbook workbook = new XSSFWorkbook();
-        StylesSource styleSource = workbook.getStylesSource();
-        short i = 0;
-        //get default font
-        Font fontAt = workbook.getFontAt(i);
-        assertNotNull(fontAt);
-        
-        //get customized font
-        Font customFont = new XSSFFont();
-        customFont.setItalic(true);
-        Long x = styleSource.putFont(customFont);
-        fontAt = workbook.getFontAt(x.shortValue());
-        assertNotNull(fontAt);
-    }
-    
-    public void testGetNumberOfFonts(){
-     	XSSFWorkbook wb = new XSSFWorkbook();
-
-        XSSFFont f1=wb.createFont();
-     	f1.setBold(true);
-     	wb.createCellStyle().setFont(f1);
-
-        XSSFFont f2=wb.createFont();
-     	f2.setUnderline(Font.U_DOUBLE);
-        wb.createCellStyle().setFont(f2);
-
-        XSSFFont f3=wb.createFont();
-     	f3.setFontHeightInPoints((short)23);
-        wb.createCellStyle().setFont(f3);
-
-        assertEquals(4,wb.getNumberOfFonts());
-     	assertEquals(Font.U_DOUBLE,wb.getFontAt((short)2).getUnderline());
-    }
-    
-    public void testGetNumCellStyles(){
-     	XSSFWorkbook workbook = new XSSFWorkbook();
-        short i = workbook.getNumCellStyles();
-        //get default cellStyles
-        assertEquals(1, i);
-        //get wrong value
-        assertNotSame(2, i);        
-    }
-    
-    public void testGetDisplayedTab(){
-        XSSFWorkbook workbook = new XSSFWorkbook();
-        short i = (short) workbook.getFirstVisibleTab();
-        //get default diplayedTab
-        assertEquals(0, i);        
-    }
-    
-    public void testSetDisplayedTab(){
-        XSSFWorkbook workbook = new XSSFWorkbook();
-        workbook.setFirstVisibleTab(new Integer(1).shortValue());
-        short i = (short) workbook.getFirstVisibleTab();
-        //0 (defualt value) is not longer set
-        assertNotSame(0, i);
-        //1 is the default tab
-        assertEquals(1, i);
-    }
-    
-    
-    public void testLoadSave() throws Exception {
-		File xml = new File(
-				System.getProperty("HSSF.testdata.path") +
-				File.separator + "Formatting.xlsx"
-		);
-		assertTrue(xml.exists());
-    	
-		XSSFWorkbook workbook = new XSSFWorkbook(xml.toString());
+		Package pkg = Package.open(HSSFTestDataSamples.openSampleFileStream("Formatting.xlsx"));
+		PackagePart wbPart = 
+			pkg.getPart(PackagingURIHelper.createPartName("/xl/workbook.xml"));
+		
+		// Links to the three sheets, shared, styles and themes
+		assertTrue(wbPart.hasRelationships());
+		assertEquals(6, wbPart.getRelationships().size());
+
+	}
+	
+	public void testFindFont(){
+		//get default font and check against default value
+		XSSFWorkbook workbook = new XSSFWorkbook();
+		Font fontFind=workbook.findFont(Font.BOLDWEIGHT_NORMAL, IndexedColors.BLACK.getIndex(), (short)11, "Calibri", false, false, Font.SS_NONE, Font.U_NONE);
+		assertNotNull(fontFind);
+		
+		//get default font, then change 2 values and check against different values (height changes)
+		Font font=workbook.createFont();
+		((XSSFFont)font).setBold(true);
+		font.setUnderline(Font.U_DOUBLE);
+		StylesSource styleSource=new StylesTable();
+		long index=styleSource.putFont(font);
+		System.out.println("index="+index);
+		workbook.setStylesSource(styleSource);
+		fontFind=workbook.findFont(Font.BOLDWEIGHT_BOLD, IndexedColors.BLACK.getIndex(), (short)15, "Calibri", false, false, Font.SS_NONE, Font.U_DOUBLE);
+		assertNull(fontFind);
+	}
+
+	public void testGetCellStyleAt(){
+	 	XSSFWorkbook workbook = new XSSFWorkbook();
+		short i = 0;
+		//get default style
+		CellStyle cellStyleAt = workbook.getCellStyleAt(i);
+		assertNotNull(cellStyleAt);
+		
+		//get custom style
+		StylesSource styleSource = workbook.getStylesSource();
+		CellStyle customStyle = new XSSFCellStyle(styleSource);
+		Font font = new XSSFFont();
+		font.setFontName("Verdana");
+		customStyle.setFont(font);
+		Long x = styleSource.putStyle(customStyle);
+		cellStyleAt = workbook.getCellStyleAt(x.shortValue());
+		assertNotNull(cellStyleAt);		
+	}
+	
+	public void testGetFontAt(){
+	 	XSSFWorkbook workbook = new XSSFWorkbook();
+		StylesSource styleSource = workbook.getStylesSource();
+		short i = 0;
+		//get default font
+		Font fontAt = workbook.getFontAt(i);
+		assertNotNull(fontAt);
+		
+		//get customized font
+		Font customFont = new XSSFFont();
+		customFont.setItalic(true);
+		Long x = styleSource.putFont(customFont);
+		fontAt = workbook.getFontAt(x.shortValue());
+		assertNotNull(fontAt);
+	}
+	
+	public void testGetNumberOfFonts(){
+	 	XSSFWorkbook wb = new XSSFWorkbook();
+
+		XSSFFont f1=wb.createFont();
+	 	f1.setBold(true);
+	 	wb.createCellStyle().setFont(f1);
+
+		XSSFFont f2=wb.createFont();
+	 	f2.setUnderline(Font.U_DOUBLE);
+		wb.createCellStyle().setFont(f2);
+
+		XSSFFont f3=wb.createFont();
+	 	f3.setFontHeightInPoints((short)23);
+		wb.createCellStyle().setFont(f3);
+
+		assertEquals(4,wb.getNumberOfFonts());
+	 	assertEquals(Font.U_DOUBLE,wb.getFontAt((short)2).getUnderline());
+	}
+	
+	public void testGetNumCellStyles(){
+	 	XSSFWorkbook workbook = new XSSFWorkbook();
+		short i = workbook.getNumCellStyles();
+		//get default cellStyles
+		assertEquals(1, i);
+		//get wrong value
+		assertNotSame(2, i);		
+	}
+	
+	public void testGetDisplayedTab(){
+		XSSFWorkbook workbook = new XSSFWorkbook();
+		short i = (short) workbook.getFirstVisibleTab();
+		//get default diplayedTab
+		assertEquals(0, i);		
+	}
+	
+	public void testSetDisplayedTab(){
+		XSSFWorkbook workbook = new XSSFWorkbook();
+		workbook.setFirstVisibleTab(new Integer(1).shortValue());
+		short i = (short) workbook.getFirstVisibleTab();
+		//0 (defualt value) is not longer set
+		assertNotSame(0, i);
+		//1 is the default tab
+		assertEquals(1, i);
+	}
+	
+	
+	public void testLoadSave() {
+		XSSFWorkbook workbook = XSSFTestDataSamples.openSampleWorkbook("Formatting.xlsx");
 		assertEquals(3, workbook.getNumberOfSheets());
 		assertEquals("dd/mm/yyyy", workbook.getSheetAt(0).getRow(1).getCell(0).getRichStringCellValue().getString());
 		assertNotNull(workbook.getSharedStringSource());
 		assertNotNull(workbook.getStylesSource());
 		
 		// Write out, and check
-		File tmpFile = File.createTempFile("poi-tmp", ".xlsx");
-		workbook.write(new FileOutputStream(tmpFile));
-		
 		// Load up again, check all still there
-		XSSFWorkbook wb2 = new XSSFWorkbook(tmpFile.toString());
+		XSSFWorkbook wb2 = XSSFTestDataSamples.writeOutAndReadBack(workbook);
 		assertEquals(3, wb2.getNumberOfSheets());
 		assertNotNull(wb2.getSheetAt(0));
 		assertNotNull(wb2.getSheetAt(1));
@@ -367,16 +354,10 @@
 		assertEquals("yy/mm/dd", wb2.getSheetAt(0).getRow(4).getCell(0).getRichStringCellValue().getString());
 		assertNotNull(wb2.getSharedStringSource());
 		assertNotNull(wb2.getStylesSource());
-    }
-    
-    public void testStyles() throws Exception {
-		File xml = new File(
-				System.getProperty("HSSF.testdata.path") +
-				File.separator + "Formatting.xlsx"
-		);
-		assertTrue(xml.exists());
-    	
-		XSSFWorkbook workbook = new XSSFWorkbook(xml.toString());
+	}
+	
+	public void testStyles() {
+		XSSFWorkbook workbook = XSSFTestDataSamples.openSampleWorkbook("Formatting.xlsx");
 		
 		StylesSource ss = workbook.getStylesSource();
 		assertNotNull(ss);
@@ -403,12 +384,9 @@
 		
 		
 		// Save, load back in again, and check
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        workbook.write(baos);
-        ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
-        workbook = new XSSFWorkbook(Package.open(bais));
-        
-        ss = workbook.getStylesSource();
+		workbook = XSSFTestDataSamples.writeOutAndReadBack(workbook);
+		
+		ss = workbook.getStylesSource();
 		assertNotNull(ss);
 		assertTrue(ss instanceof StylesTable);
 		st = (StylesTable)ss;
@@ -417,75 +395,96 @@
 		assertEquals(2, st._getFontsSize());
 		assertEquals(2, st._getFillsSize());
 		assertEquals(1, st._getBordersSize());
-    }
-    
-    public void testNamedRanges() throws Exception {
-    	// First up, a new file
-        XSSFWorkbook workbook = new XSSFWorkbook();
-        assertEquals(0, workbook.getNumberOfNames());
-        
-        Name nameA = workbook.createName();
-        nameA.setReference("A2");
-        nameA.setNameName("ForA2");
-        
-        XSSFName nameB = workbook.createName();
-        nameB.setReference("B3");
-        nameB.setNameName("ForB3");
-        nameB.setComment("B3 Comment");
-        
-        // Save and re-load
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        workbook.write(baos);
-        ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
-        workbook = new XSSFWorkbook(Package.open(bais));
-        
-        assertEquals(2, workbook.getNumberOfNames());
-        assertEquals("A2", workbook.getNameAt(0).getReference());
-        assertEquals("ForA2", workbook.getNameAt(0).getNameName());
-        assertNull(workbook.getNameAt(0).getComment());
-        
-        assertEquals("B3", workbook.getNameAt(1).getReference());
-        assertEquals("ForB3", workbook.getNameAt(1).getNameName());
-        assertEquals("B3 Comment", workbook.getNameAt(1).getComment());
-        
-        assertEquals("ForA2", workbook.getNameName(0));
-        assertEquals(1, workbook.getNameIndex("ForB3"));
-        assertEquals(-1, workbook.getNameIndex("ForB3!!"));
-    	
-        
-        // Now, an existing file with named ranges
-		File xml = new File(
-				System.getProperty("HSSF.testdata.path") +
-				File.separator + "WithVariousData.xlsx"
-		);
-		assertTrue(xml.exists());
-    	
-		workbook = new XSSFWorkbook(xml.toString());
-		
-        assertEquals(2, workbook.getNumberOfNames());
-        assertEquals("Sheet1!$A$2:$A$7", workbook.getNameAt(0).getReference());
-        assertEquals("AllANumbers", workbook.getNameAt(0).getNameName());
-        assertEquals("All the numbers in A", workbook.getNameAt(0).getComment());
-        
-        assertEquals("Sheet1!$B$2:$B$7", workbook.getNameAt(1).getReference());
-        assertEquals("AllBStrings", workbook.getNameAt(1).getNameName());
-        assertEquals("All the strings in B", workbook.getNameAt(1).getComment());
-        
-        // Tweak, save, and re-check
-        workbook.getNameAt(1).setNameName("BStringsFun");
-        
-        baos = new ByteArrayOutputStream();
-        workbook.write(baos);
-        bais = new ByteArrayInputStream(baos.toByteArray());
-        workbook = new XSSFWorkbook(Package.open(bais));
-		
-        assertEquals(2, workbook.getNumberOfNames());
-        assertEquals("Sheet1!$A$2:$A$7", workbook.getNameAt(0).getReference());
-        assertEquals("AllANumbers", workbook.getNameAt(0).getNameName());
-        assertEquals("All the numbers in A", workbook.getNameAt(0).getComment());
-        
-        assertEquals("Sheet1!$B$2:$B$7", workbook.getNameAt(1).getReference());
-        assertEquals("BStringsFun", workbook.getNameAt(1).getNameName());
-        assertEquals("All the strings in B", workbook.getNameAt(1).getComment());
-    }
+	}
+	
+	public void testNamedRanges() {
+		// First up, a new file
+		XSSFWorkbook workbook = new XSSFWorkbook();
+		assertEquals(0, workbook.getNumberOfNames());
+		
+		Name nameA = workbook.createName();
+		nameA.setReference("A2");
+		nameA.setNameName("ForA2");
+		
+		XSSFName nameB = workbook.createName();
+		nameB.setReference("B3");
+		nameB.setNameName("ForB3");
+		nameB.setComment("B3 Comment");
+		
+		// Save and re-load
+		workbook = XSSFTestDataSamples.writeOutAndReadBack(workbook);
+		
+		assertEquals(2, workbook.getNumberOfNames());
+		assertEquals("A2", workbook.getNameAt(0).getReference());
+		assertEquals("ForA2", workbook.getNameAt(0).getNameName());
+		assertNull(workbook.getNameAt(0).getComment());
+		
+		assertEquals("B3", workbook.getNameAt(1).getReference());
+		assertEquals("ForB3", workbook.getNameAt(1).getNameName());
+		assertEquals("B3 Comment", workbook.getNameAt(1).getComment());
+		
+		assertEquals("ForA2", workbook.getNameName(0));
+		assertEquals(1, workbook.getNameIndex("ForB3"));
+		assertEquals(-1, workbook.getNameIndex("ForB3!!"));
+		
+		
+		// Now, an existing file with named ranges
+		workbook = XSSFTestDataSamples.openSampleWorkbook("WithVariousData.xlsx");
+		
+		assertEquals(2, workbook.getNumberOfNames());
+		assertEquals("Sheet1!$A$2:$A$7", workbook.getNameAt(0).getReference());
+		assertEquals("AllANumbers", workbook.getNameAt(0).getNameName());
+		assertEquals("All the numbers in A", workbook.getNameAt(0).getComment());
+		
+		assertEquals("Sheet1!$B$2:$B$7", workbook.getNameAt(1).getReference());
+		assertEquals("AllBStrings", workbook.getNameAt(1).getNameName());
+		assertEquals("All the strings in B", workbook.getNameAt(1).getComment());
+		
+		// Tweak, save, and re-check
+		workbook.getNameAt(1).setNameName("BStringsFun");
+		
+		workbook = XSSFTestDataSamples.writeOutAndReadBack(workbook);
+		
+		assertEquals(2, workbook.getNumberOfNames());
+		assertEquals("Sheet1!$A$2:$A$7", workbook.getNameAt(0).getReference());
+		assertEquals("AllANumbers", workbook.getNameAt(0).getNameName());
+		assertEquals("All the numbers in A", workbook.getNameAt(0).getComment());
+		
+		assertEquals("Sheet1!$B$2:$B$7", workbook.getNameAt(1).getReference());
+		assertEquals("BStringsFun", workbook.getNameAt(1).getNameName());
+		assertEquals("All the strings in B", workbook.getNameAt(1).getComment());
+	}
+	
+	public void testDuplicateNames() {
+
+		XSSFWorkbook wb = new XSSFWorkbook();
+		wb.createSheet("Sheet1");
+		wb.createSheet();
+		wb.createSheet("name1");
+		try {
+		wb.createSheet("name1");
+			fail();
+		} catch (IllegalArgumentException e) {
+			assertEquals("The workbook already contains a sheet of this name", e.getMessage());
+		}
+
+		wb.createSheet();
+
+		try {
+			wb.setSheetName(3, "name1");
+			fail();
+		} catch (IllegalArgumentException e) {
+			assertEquals("The workbook already contains a sheet of this name", e.getMessage());
+		}
+
+		try {
+			wb.setSheetName(3, "Sheet1");
+			fail();
+		} catch (IllegalArgumentException e) {
+			assertEquals("The workbook already contains a sheet of this name", e.getMessage());
+		}
+
+		wb.setSheetName(3, "name2");
+		wb.setSheetName(3, "Sheet3");
+	}
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org