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/17 21:52:56 UTC

svn commit: r696415 - in /poi/branches/ooxml/src/ooxml: interfaces-jdk14/org/apache/poi/ss/usermodel/ interfaces-jdk15/org/apache/poi/ss/usermodel/ java/org/apache/poi/xssf/model/ java/org/apache/poi/xssf/usermodel/ testcases/org/apache/poi/xssf/ testc...

Author: josh
Date: Wed Sep 17 12:52:55 2008
New Revision: 696415

URL: http://svn.apache.org/viewvc?rev=696415&view=rev
Log:
Minor fixes to get junits working after r695832.  Updates to align with new sample.xlsx, and moved SharedStringSource out of usermodel API.

Added:
    poi/branches/ooxml/src/ooxml/java/org/apache/poi/xssf/model/SharedStringSource.java   (contents, props changed)
      - copied, changed from r696404, poi/branches/ooxml/src/ooxml/interfaces-jdk15/org/apache/poi/ss/usermodel/SharedStringSource.java
    poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/XSSFTestDataSamples.java
Removed:
    poi/branches/ooxml/src/ooxml/interfaces-jdk14/org/apache/poi/ss/usermodel/SharedStringSource.java
    poi/branches/ooxml/src/ooxml/interfaces-jdk15/org/apache/poi/ss/usermodel/SharedStringSource.java
Modified:
    poi/branches/ooxml/src/ooxml/java/org/apache/poi/xssf/model/SharedStringsTable.java
    poi/branches/ooxml/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCell.java
    poi/branches/ooxml/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java
    poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/extractor/TestXSSFExcelExtractor.java
    poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/model/TestSharedStringsTable.java
    poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFCell.java

Copied: poi/branches/ooxml/src/ooxml/java/org/apache/poi/xssf/model/SharedStringSource.java (from r696404, poi/branches/ooxml/src/ooxml/interfaces-jdk15/org/apache/poi/ss/usermodel/SharedStringSource.java)
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/ooxml/java/org/apache/poi/xssf/model/SharedStringSource.java?p2=poi/branches/ooxml/src/ooxml/java/org/apache/poi/xssf/model/SharedStringSource.java&p1=poi/branches/ooxml/src/ooxml/interfaces-jdk15/org/apache/poi/ss/usermodel/SharedStringSource.java&r1=696404&r2=696415&rev=696415&view=diff
==============================================================================
--- poi/branches/ooxml/src/ooxml/interfaces-jdk15/org/apache/poi/ss/usermodel/SharedStringSource.java (original)
+++ poi/branches/ooxml/src/ooxml/java/org/apache/poi/xssf/model/SharedStringSource.java Wed Sep 17 12:52:55 2008
@@ -15,11 +15,14 @@
    limitations under the License.
 ==================================================================== */
 
-package org.apache.poi.ss.usermodel;
+package org.apache.poi.xssf.model;
+
+import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTRst;
 
 /**
  * Allows the getting and saving of shared strings
  */
 public interface SharedStringSource {
-    
+	CTRst getEntryAt(int ref);
+	int addEntry(CTRst rst);  
 }

Propchange: poi/branches/ooxml/src/ooxml/java/org/apache/poi/xssf/model/SharedStringSource.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: poi/branches/ooxml/src/ooxml/java/org/apache/poi/xssf/model/SharedStringSource.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision Author HeadURL Id

Propchange: poi/branches/ooxml/src/ooxml/java/org/apache/poi/xssf/model/SharedStringSource.java
------------------------------------------------------------------------------
    svn:mergeinfo = 

Propchange: poi/branches/ooxml/src/ooxml/java/org/apache/poi/xssf/model/SharedStringSource.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: poi/branches/ooxml/src/ooxml/java/org/apache/poi/xssf/model/SharedStringsTable.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/ooxml/java/org/apache/poi/xssf/model/SharedStringsTable.java?rev=696415&r1=696414&r2=696415&view=diff
==============================================================================
--- poi/branches/ooxml/src/ooxml/java/org/apache/poi/xssf/model/SharedStringsTable.java (original)
+++ poi/branches/ooxml/src/ooxml/java/org/apache/poi/xssf/model/SharedStringsTable.java Wed Sep 17 12:52:55 2008
@@ -20,16 +20,16 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
-import org.apache.poi.ss.usermodel.SharedStringSource;
-import org.apache.poi.xssf.usermodel.XSSFRichTextString;
 import org.apache.xmlbeans.XmlException;
 import org.apache.xmlbeans.XmlOptions;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTRst;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSst;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.SstDocument;
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTRElt;
 
 
 /**
@@ -204,5 +204,4 @@
         sst.setSiArray(ctr);
         doc.save(out, options);
     }
-
 }

Modified: poi/branches/ooxml/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCell.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCell.java?rev=696415&r1=696414&r2=696415&view=diff
==============================================================================
--- poi/branches/ooxml/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCell.java (original)
+++ poi/branches/ooxml/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFCell.java Wed Sep 17 12:52:55 2008
@@ -26,13 +26,12 @@
 import org.apache.poi.ss.usermodel.Comment;
 import org.apache.poi.ss.usermodel.Hyperlink;
 import org.apache.poi.ss.usermodel.RichTextString;
-import org.apache.poi.ss.usermodel.SharedStringSource;
 import org.apache.poi.ss.usermodel.Sheet;
 import org.apache.poi.ss.usermodel.StylesSource;
+import org.apache.poi.ss.util.CellReference;
 import org.apache.poi.util.POILogFactory;
 import org.apache.poi.util.POILogger;
-import org.apache.poi.ss.util.CellReference;
-import org.apache.poi.xssf.model.SharedStringsTable;
+import org.apache.poi.xssf.model.SharedStringSource;
 import org.apache.poi.xssf.model.StylesTable;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCell;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCellFormula;
@@ -48,7 +47,7 @@
     private final CTCell cell;
     private final XSSFRow row;
     private int cellNum;
-    private SharedStringsTable sharedStringSource;
+    private SharedStringSource sharedStringSource;
     private StylesTable stylesSource;
 
     private POILogger logger = POILogFactory.getLogger(XSSFCell.class);
@@ -67,7 +66,7 @@
         if (cell.getR() != null) {
             this.cellNum = parseCellNum(cell.getR());
         }
-        this.sharedStringSource = (SharedStringsTable) row.getSheet().getWorkbook().getSharedStringSource();
+        this.sharedStringSource = row.getSheet().getWorkbook().getSharedStringSource();
         this.stylesSource = (StylesTable)row.getSheet().getWorkbook().getStylesSource();
     }
 

Modified: poi/branches/ooxml/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java?rev=696415&r1=696414&r2=696415&view=diff
==============================================================================
--- poi/branches/ooxml/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java (original)
+++ poi/branches/ooxml/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java Wed Sep 17 12:52:55 2008
@@ -34,7 +34,6 @@
 import org.apache.poi.ss.usermodel.Palette;
 import org.apache.poi.ss.usermodel.PictureData;
 import org.apache.poi.ss.usermodel.Row;
-import org.apache.poi.ss.usermodel.SharedStringSource;
 import org.apache.poi.ss.usermodel.Sheet;
 import org.apache.poi.ss.usermodel.StylesSource;
 import org.apache.poi.ss.usermodel.Workbook;
@@ -44,6 +43,7 @@
 import org.apache.poi.xssf.model.CommentsTable;
 import org.apache.poi.xssf.model.Control;
 import org.apache.poi.xssf.model.Drawing;
+import org.apache.poi.xssf.model.SharedStringSource;
 import org.apache.poi.xssf.model.SharedStringsTable;
 import org.apache.poi.xssf.model.StylesTable;
 import org.apache.poi.xssf.model.XSSFModel;
@@ -64,7 +64,6 @@
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTDefinedName;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTDefinedNames;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTDialogsheet;
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTFont;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSheet;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorkbook;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorksheet;

Added: poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/XSSFTestDataSamples.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/XSSFTestDataSamples.java?rev=696415&view=auto
==============================================================================
--- poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/XSSFTestDataSamples.java (added)
+++ poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/XSSFTestDataSamples.java Wed Sep 17 12:52:55 2008
@@ -0,0 +1,73 @@
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+
+package org.apache.poi.xssf;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+import org.apache.poi.hssf.HSSFTestDataSamples;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.openxml4j.exceptions.InvalidFormatException;
+import org.openxml4j.opc.Package;
+
+/**
+ * Centralises logic for finding/opening sample files in the src/testcases/org/apache/poi/hssf/hssf/data folder. 
+ * 
+ * @author Josh Micich
+ */
+public class XSSFTestDataSamples {
+	public static final XSSFWorkbook openSampleWorkbook(String sampleName) {
+		InputStream is = HSSFTestDataSamples.openSampleFileStream(sampleName);
+		try {
+			Package pkg = Package.open(is);
+			return new XSSFWorkbook(pkg);
+		} catch (InvalidFormatException e) {
+			throw new RuntimeException(e);
+		} catch (IOException e) {
+			throw new RuntimeException(e);
+		}
+	}
+    public static <R extends Workbook> R writeOutAndReadBack(R wb) {
+    	ByteArrayOutputStream baos = new ByteArrayOutputStream(8192);
+    	Workbook result;
+		try {
+	    	wb.write(baos);
+	    	InputStream is = new ByteArrayInputStream(baos.toByteArray());
+	    	if (wb instanceof HSSFWorkbook) {
+	    		result = new HSSFWorkbook(is);
+	    	} else if (wb instanceof XSSFWorkbook) {
+    			Package pkg = Package.open(is);
+    			result = new XSSFWorkbook(pkg);
+	    	} else {
+	    		throw new RuntimeException("Unexpected workbook type (" 
+	    				+ wb.getClass().getName() + ")");
+	    	}
+		} catch (InvalidFormatException e) {
+			throw new RuntimeException(e);
+		} catch (IOException e) {
+			throw new RuntimeException(e);
+		}
+		@SuppressWarnings("unchecked")
+		R r = (R) result;
+		return r;
+    }
+}

Modified: poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/extractor/TestXSSFExcelExtractor.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/extractor/TestXSSFExcelExtractor.java?rev=696415&r1=696414&r2=696415&view=diff
==============================================================================
--- poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/extractor/TestXSSFExcelExtractor.java (original)
+++ poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/extractor/TestXSSFExcelExtractor.java Wed Sep 17 12:52:55 2008
@@ -14,77 +14,35 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 ==================================================================== */
+
 package org.apache.poi.xssf.extractor;
 
-import java.io.File;
-import java.io.FileInputStream;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import junit.framework.TestCase;
 
 import org.apache.poi.POITextExtractor;
+import org.apache.poi.hssf.HSSFTestDataSamples;
 import org.apache.poi.hssf.extractor.ExcelExtractor;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.apache.poi.xssf.XSSFTestDataSamples;
 
 /**
- * Tests for XSSFExcelExtractor
+ * Tests for {@link XSSFExcelExtractor}
  */
-public class TestXSSFExcelExtractor extends TestCase {
-	/**
-	 * A very simple file
-	 */
-	private File xmlA;
-	/**
-	 * A fairly complex file
-	 */
-	private File xmlB;
-	
-	/**
-	 * A fairly simple file - ooxml
-	 */
-	private File simpleXLSX; 
-	/**
-	 * A fairly simple file - ole2
-	 */
-	private File simpleXLS;
+public final class TestXSSFExcelExtractor extends TestCase {
 
-	protected void setUp() throws Exception {
-		super.setUp();
-		
-		xmlA = new File(
-				System.getProperty("HSSF.testdata.path") +
-				File.separator + "sample.xlsx"
-		);
-		assertTrue(xmlA.exists());
-		xmlB = new File(
-				System.getProperty("HSSF.testdata.path") +
-				File.separator + "AverageTaxRates.xlsx"
-		);
-		assertTrue(xmlB.exists());
-		
-		simpleXLSX = new File(
-				System.getProperty("HSSF.testdata.path") +
-				File.separator + "SampleSS.xlsx"
-		);
-		simpleXLS = new File(
-				System.getProperty("HSSF.testdata.path") +
-				File.separator + "SampleSS.xls"
-		);
-		assertTrue(simpleXLS.exists());
-		assertTrue(simpleXLSX.exists());
+
+	private static final XSSFExcelExtractor getExtractor(String sampleName) {
+		return new XSSFExcelExtractor(XSSFTestDataSamples.openSampleWorkbook(sampleName));
 	}
 
 	/**
 	 * Get text out of the simple file
 	 */
-	public void testGetSimpleText() throws Exception {
-		new XSSFExcelExtractor(xmlA.toString());
-		new XSSFExcelExtractor(new XSSFWorkbook(xmlA.toString()));
-		
-		XSSFExcelExtractor extractor = 
-			new XSSFExcelExtractor(xmlA.toString());
+	public void testGetSimpleText() {
+		// a very simple file
+		XSSFExcelExtractor extractor = getExtractor("sample.xlsx");
 		extractor.getText();
 		
 		String text = extractor.getText();
@@ -97,73 +55,52 @@
 		// Now without, will have text
 		extractor.setIncludeSheetNames(false);
 		text = extractor.getText();
+		String CHUNK1 =
+			"Lorem\t111\n" + 
+    		"ipsum\t222\n" + 
+    		"dolor\t333\n" + 
+    		"sit\t444\n" + 
+    		"amet\t555\n" + 
+    		"consectetuer\t666\n" + 
+    		"adipiscing\t777\n" + 
+    		"elit\t888\n" + 
+    		"Nunc\t999\n";
+		String CHUNK2 =
+			"The quick brown fox jumps over the lazy dog\n" +
+			"hello, xssf	hello, xssf\n" +
+			"hello, xssf	hello, xssf\n" +
+			"hello, xssf	hello, xssf\n" +
+			"hello, xssf	hello, xssf\n";
 		assertEquals(
-				"Lorem\t111\n" +
-				"ipsum\t222\n" +
-				"dolor\t333\n" +
-				"sit\t444\n" +
-				"amet\t555\n" +
-				"consectetuer\t666\n" +
-				"adipiscing\t777\n" +
-				"elit\t888\n" +
-				"Nunc\t999\n" +
-				"at\t4995\n" +
-                "The quick brown fox jumps over the lazy dog\n" +
-                "hello, xssf\thello, xssf\n" +
-                "hello, xssf\thello, xssf\n" +
-                "hello, xssf\thello, xssf\n" +
-                "hello, xssf\thello, xssf\n", text);
+				CHUNK1 + 
+				"at\t4995\n" + 
+				CHUNK2
+				, text);
 		
 		// Now get formulas not their values
 		extractor.setFormulasNotResults(true);
 		text = extractor.getText();
 		assertEquals(
-				"Lorem\t111\n" +
-				"ipsum\t222\n" +
-				"dolor\t333\n" +
-				"sit\t444\n" +
-				"amet\t555\n" +
-				"consectetuer\t666\n" +
-				"adipiscing\t777\n" +
-				"elit\t888\n" +
-				"Nunc\t999\n" +
-				"at\tSUM(B1:B9)\n" +
-                "The quick brown fox jumps over the lazy dog\n" +
-                "hello, xssf\thello, xssf\n" +
-                "hello, xssf\thello, xssf\n" +
-                "hello, xssf\thello, xssf\n" +
-                "hello, xssf\thello, xssf\n", text);
+				CHUNK1 +
+				"at\tSUM(B1:B9)\n" + 
+				CHUNK2, text);
 		
 		// With sheet names too
 		extractor.setIncludeSheetNames(true);
 		text = extractor.getText();
 		assertEquals(
 				"Sheet1\n" +
-				"Lorem\t111\n" +
-				"ipsum\t222\n" +
-				"dolor\t333\n" +
-				"sit\t444\n" +
-				"amet\t555\n" +
-				"consectetuer\t666\n" +
-				"adipiscing\t777\n" +
-				"elit\t888\n" +
-				"Nunc\t999\n" +
-				"at\tSUM(B1:B9)\n" +
+				CHUNK1 +
+				"at\tSUM(B1:B9)\n" + 
 				"rich test\n" +
-                "The quick brown fox jumps over the lazy dog\n" +
-                "hello, xssf\thello, xssf\n" +
-                "hello, xssf\thello, xssf\n" +
-                "hello, xssf\thello, xssf\n" +
-                "hello, xssf\thello, xssf\n" +
+				CHUNK2 +
 				"Sheet3\n"
 				, text);
 	}
 	
-	public void testGetComplexText() throws Exception {
-		new XSSFExcelExtractor(xmlB.toString());
-		
-		XSSFExcelExtractor extractor = 
-			new XSSFExcelExtractor(new XSSFWorkbook(xmlB.toString()));
+	public void testGetComplexText() {
+		// A fairly complex file
+		XSSFExcelExtractor extractor = getExtractor("AverageTaxRates.xlsx");
 		extractor.getText();
 		
 		String text = extractor.getText();
@@ -182,12 +119,12 @@
 	 *  ExcelExtractor does, when we're both passed
 	 *  the same file, just saved as xls and xlsx
 	 */
-	public void testComparedToOLE2() throws Exception {
-		XSSFExcelExtractor ooxmlExtractor =
-			new XSSFExcelExtractor(simpleXLSX.toString());
+	public void testComparedToOLE2() {
+		// A fairly simple file - ooxml
+		XSSFExcelExtractor ooxmlExtractor = getExtractor("SampleSS.xlsx");
+
 		ExcelExtractor ole2Extractor =
-			new ExcelExtractor(new HSSFWorkbook(
-					new FileInputStream(simpleXLS)));
+			new ExcelExtractor(HSSFTestDataSamples.openSampleWorkbook("SampleSS.xls"));
 		
 		POITextExtractor[] extractors =
 			new POITextExtractor[] { ooxmlExtractor, ole2Extractor };
@@ -207,39 +144,26 @@
 	/**
 	 * From bug #45540
 	 */
-	public void testHeaderFooter() throws Exception {
+	public void testHeaderFooter() {
 		String[] files = new String[] {
 			"45540_classic_Header.xlsx", "45540_form_Header.xlsx",
 			"45540_classic_Footer.xlsx", "45540_form_Footer.xlsx",
 		};
-		for(String file : files) {
-			File xml = new File(
-					System.getProperty("HSSF.testdata.path") +
-					File.separator + file
-			);
-			assertTrue(xml.exists());
-			
-			XSSFExcelExtractor extractor = 
-				new XSSFExcelExtractor(new XSSFWorkbook(xml.toString()));
+		for(String sampleName : files) {
+			XSSFExcelExtractor extractor = getExtractor(sampleName);
 			String text = extractor.getText();
 			
-			assertTrue("Unable to find expected word in text from " + file + "\n" + text, text.contains("testdoc"));
-	        assertTrue("Unable to find expected word in text\n" + text, text.contains("test phrase")); 
+			assertTrue("Unable to find expected word in text from " + sampleName + "\n" + text, text.contains("testdoc"));
+			assertTrue("Unable to find expected word in text\n" + text, text.contains("test phrase")); 
 		}
 	}
 
 	/**
 	 * From bug #45544
 	 */
-	public void testComments() throws Exception {
-		File xml = new File(
-				System.getProperty("HSSF.testdata.path") +
-				File.separator + "45544.xlsx"
-		);
-		assertTrue(xml.exists());
+	public void testComments() {
 		
-		XSSFExcelExtractor extractor = 
-			new XSSFExcelExtractor(new XSSFWorkbook(xml.toString()));
+		XSSFExcelExtractor extractor = getExtractor("45544.xlsx");
 		String text = extractor.getText();
 
 		// No comments there yet

Modified: poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/model/TestSharedStringsTable.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/model/TestSharedStringsTable.java?rev=696415&r1=696414&r2=696415&view=diff
==============================================================================
--- poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/model/TestSharedStringsTable.java (original)
+++ poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/model/TestSharedStringsTable.java Wed Sep 17 12:52:55 2008
@@ -19,37 +19,26 @@
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
-import java.io.File;
 import java.io.IOException;
 import java.util.List;
 
-import org.apache.poi.xssf.usermodel.XSSFCellStyle;
-import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import junit.framework.TestCase;
+
+import org.apache.poi.xssf.XSSFTestDataSamples;
 import org.apache.poi.xssf.usermodel.XSSFRichTextString;
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTXf;
-import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTRst;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTRElt;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTRPrElt;
-
-import junit.framework.TestCase;
+import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTRst;
 
 /**
- * Test SharedStringsTable, the cache of strings in a workbook
+ * Test {@link SharedStringsTable}, the cache of strings in a workbook
  *
  * @author Yegor Kozlov
  */
-public class TestSharedStringsTable extends TestCase {
-	private File xml;
-	
-	protected void setUp() throws Exception {
-		xml = new File(
-				System.getProperty("HSSF.testdata.path") +
-				File.separator + "sample.xlsx"
-		);
-		assertTrue(xml.exists());
-	}
+public final class TestSharedStringsTable extends TestCase {
 
-	public void testCreateNew() throws Exception {
+	public void testCreateNew() {
 		SharedStringsTable sst = new SharedStringsTable();
 		
         CTRst st;
@@ -120,15 +109,19 @@
         assertEquals("Second string", new XSSFRichTextString(sst.getEntryAt(2)).toString());
     }
 	
-	public void testReadWrite() throws Exception {
-        XSSFWorkbook wb = new XSSFWorkbook(xml.getPath());
+	public void testReadWrite() {
+        XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("sample.xlsx");
         SharedStringsTable sst1 = (SharedStringsTable)wb.getSharedStringSource();
 
-        ByteArrayOutputStream out = new ByteArrayOutputStream();
-        sst1.writeTo(out);
-
         //serialize, read back and compare with the original
-        SharedStringsTable sst2 = new SharedStringsTable(new ByteArrayInputStream(out.toByteArray()));
+		SharedStringsTable sst2;
+		try {
+			ByteArrayOutputStream out = new ByteArrayOutputStream();
+			sst1.writeTo(out);
+			sst2 = new SharedStringsTable(new ByteArrayInputStream(out.toByteArray()));
+		} catch (IOException e) {
+			throw new RuntimeException(e);
+		}
         assertEquals(sst1.getCount(), sst2.getCount());
         assertEquals(sst1.getUniqueCount(), sst2.getUniqueCount());
 

Modified: poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFCell.java
URL: http://svn.apache.org/viewvc/poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFCell.java?rev=696415&r1=696414&r2=696415&view=diff
==============================================================================
--- poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFCell.java (original)
+++ poi/branches/ooxml/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFCell.java Wed Sep 17 12:52:55 2008
@@ -17,8 +17,6 @@
 
 package org.apache.poi.xssf.usermodel;
 
-import java.io.File;
-import java.io.FileOutputStream;
 import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Date;
@@ -30,19 +28,24 @@
 import org.apache.poi.ss.usermodel.Comment;
 import org.apache.poi.ss.usermodel.CreationHelper;
 import org.apache.poi.ss.usermodel.Row;
-import org.apache.poi.ss.usermodel.SharedStringSource;
 import org.apache.poi.ss.usermodel.Sheet;
 import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.XSSFTestDataSamples;
 import org.apache.poi.xssf.model.CommentsTable;
+import org.apache.poi.xssf.model.SharedStringSource;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCell;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTComment;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTComments;
+import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTRst;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSheet;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorksheet;
 import org.openxmlformats.schemas.spreadsheetml.x2006.main.STCellType;
 
-
-public class TestXSSFCell extends TestCase {
+/**
+ * Tests for {@link XSSFCell}
+ *
+ */
+public final class TestXSSFCell extends TestCase {
     
     private static final String TEST_C10_AUTHOR = "test C10 author";
 
@@ -160,7 +163,7 @@
         assertEquals("Foo2", cell.getRichStringCellValue().getString());
     }
     
-    public void testSetGetStringShared() throws Exception {
+    public void testSetGetStringShared() {
         XSSFRow row = createParentObjects();
         XSSFCell cell = new XSSFCell(row);
 
@@ -176,7 +179,7 @@
     /**
      * Test that empty cells (no v element) return default values.
      */
-    public void testGetEmptyCellValue() throws Exception {
+    public void testGetEmptyCellValue() {
         XSSFRow row = createParentObjects();
         XSSFCell cell = new XSSFCell(row);
         cell.setCellType(Cell.CELL_TYPE_BOOLEAN);
@@ -216,12 +219,12 @@
     }
     
     public static class DummySharedStringSource implements SharedStringSource {
-        ArrayList<String> strs = new ArrayList<String>();
-        public String getSharedStringAt(int idx) {
+        ArrayList<CTRst> strs = new ArrayList<CTRst>();
+        public CTRst getEntryAt(int idx) {
             return strs.get(idx);
         }
 
-        public synchronized int putSharedString(String s) {
+        public synchronized int addEntry(CTRst s) {
             if(strs.contains(s)) {
                 return strs.indexOf(s);
             }
@@ -241,8 +244,8 @@
         
         // Create C10 cell
         Row row = sheet.createRow(9);
-        Cell cell = row.createCell((short)2);
-        Cell cell3 = row.createCell((short)3);
+        row.createCell(2);
+        row.createCell(3);
         
         
         // Set a comment for C10 cell
@@ -267,8 +270,8 @@
         
         // Create C10 cell
         Row row = sheet.createRow(9);
-        Cell cell = row.createCell((short)2);
-        Cell cell3 = row.createCell((short)3);
+        Cell cell = row.createCell(2);
+        row.createCell(3);
         
         // Create a comment
         Comment comment = comments.addComment();
@@ -295,10 +298,11 @@
     	assertEquals("A1", ctWorksheet.getSheetViews().getSheetViewArray(0).getSelectionArray(0).getActiveCell());
     }
     
+    
     /**
      * Tests that cell formatting stuff works as expected
      */
-    public void testCellFormatting() throws Exception {
+    public void testCellFormatting() {
     	Workbook workbook = new XSSFWorkbook();
     	Sheet sheet = workbook.createSheet();
     	CreationHelper creationHelper = workbook.getCreationHelper();
@@ -324,18 +328,13 @@
     	
     	
     	// Save, re-load, and test again
-    	File tmp = File.createTempFile("poi", "xlsx");
-    	FileOutputStream out = new FileOutputStream(tmp);
-    	workbook.write(out);
-    	out.close();
-    	
-    	Workbook wb2 = new XSSFWorkbook(tmp.toString());
+    	Workbook wb2 = XSSFTestDataSamples.writeOutAndReadBack(workbook);
     	Cell c2 = wb2.getSheetAt(0).getRow(0).getCell(0);
     	assertEquals(new Date(654321), c2.getDateCellValue());
     	assertEquals("yyyy/mm/dd", c2.getCellStyle().getDataFormatString());
     }
 
-    private XSSFRow createParentObjects() {
+    private static XSSFRow createParentObjects() {
         XSSFWorkbook wb = new XSSFWorkbook();
         wb.setSharedStringSource(new DummySharedStringSource());
         XSSFSheet sheet = new XSSFSheet(wb);
@@ -347,12 +346,12 @@
      * Test to ensure we can only assign cell styles that belong
      *  to our workbook, and not those from other workbooks.
      */
-    public void testCellStyleWorkbookMatch() throws Exception {
+    public void testCellStyleWorkbookMatch() {
     	XSSFWorkbook wbA = new XSSFWorkbook();
     	XSSFWorkbook wbB = new XSSFWorkbook();
     	
-    	XSSFCellStyle styA = (XSSFCellStyle)wbA.createCellStyle();
-    	XSSFCellStyle styB = (XSSFCellStyle)wbB.createCellStyle();
+    	XSSFCellStyle styA = wbA.createCellStyle();
+    	XSSFCellStyle styB = wbB.createCellStyle();
     	
     	styA.verifyBelongsToStylesSource(wbA.getStylesSource());
     	styB.verifyBelongsToStylesSource(wbB.getStylesSource());



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