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 2015/01/07 15:34:14 UTC
svn commit: r1650069 -
/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestUnfixedBugs.java
Author: centic
Date: Wed Jan 7 14:34:13 2015
New Revision: 1650069
URL: http://svn.apache.org/r1650069
Log:
Add reproducer for bug 56655
Modified:
poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestUnfixedBugs.java
Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestUnfixedBugs.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestUnfixedBugs.java?rev=1650069&r1=1650068&r2=1650069&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestUnfixedBugs.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestUnfixedBugs.java Wed Jan 7 14:34:13 2015
@@ -17,6 +17,8 @@
package org.apache.poi.xssf.usermodel;
+import static org.junit.Assert.assertEquals;
+
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.Calendar;
@@ -29,6 +31,7 @@ import org.apache.poi.hssf.HSSFTestDataS
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.DataFormatter;
import org.apache.poi.ss.usermodel.DateUtil;
+import org.apache.poi.ss.usermodel.FormulaError;
import org.apache.poi.ss.usermodel.RichTextString;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
@@ -240,4 +243,66 @@ public final class TestUnfixedBugs exten
assertEquals(2, strBack.getIndexOfFormattingRun(1));
assertEquals(4, strBack.getIndexOfFormattingRun(2));
}
+
+ @Test
+ public void testBug56655() {
+ XSSFWorkbook wb = new XSSFWorkbook();
+ Sheet sheet = wb.createSheet();
+
+ setCellFormula(sheet, 0, 0, "#VALUE!");
+ setCellFormula(sheet, 0, 1, "SUMIFS(A:A,A:A,#VALUE!)");
+
+ XSSFFormulaEvaluator.evaluateAllFormulaCells(wb);
+
+ assertEquals(XSSFCell.CELL_TYPE_ERROR, getCell(sheet, 0,0).getCachedFormulaResultType());
+ assertEquals(FormulaError.VALUE.getCode(), getCell(sheet, 0,0).getErrorCellValue());
+ assertEquals(XSSFCell.CELL_TYPE_ERROR, getCell(sheet, 0,1).getCachedFormulaResultType());
+ assertEquals(FormulaError.VALUE.getCode(), getCell(sheet, 0,1).getErrorCellValue());
+ }
+
+ @Test
+ public void testBug56655a() {
+ XSSFWorkbook wb = new XSSFWorkbook();
+ Sheet sheet = wb.createSheet();
+
+ setCellFormula(sheet, 0, 0, "B1*C1");
+ sheet.getRow(0).createCell(1).setCellValue("A");
+ setCellFormula(sheet, 1, 0, "B1*C1");
+ sheet.getRow(1).createCell(1).setCellValue("A");
+ setCellFormula(sheet, 0, 3, "SUMIFS(A:A,A:A,A2)");
+
+ XSSFFormulaEvaluator.evaluateAllFormulaCells(wb);
+
+ assertEquals(XSSFCell.CELL_TYPE_ERROR, getCell(sheet, 0, 0).getCachedFormulaResultType());
+ assertEquals(FormulaError.VALUE.getCode(), getCell(sheet, 0, 0).getErrorCellValue());
+ assertEquals(XSSFCell.CELL_TYPE_ERROR, getCell(sheet, 1, 0).getCachedFormulaResultType());
+ assertEquals(FormulaError.VALUE.getCode(), getCell(sheet, 1, 0).getErrorCellValue());
+ assertEquals(XSSFCell.CELL_TYPE_ERROR, getCell(sheet, 0, 3).getCachedFormulaResultType());
+ assertEquals(FormulaError.VALUE.getCode(), getCell(sheet, 0, 3).getErrorCellValue());
+ }
+
+ /**
+ * @param row 0-based
+ * @param column 0-based
+ */
+ void setCellFormula(Sheet sheet, int row, int column, String formula) {
+ Row r = sheet.getRow(row);
+ if (r == null) {
+ r = sheet.createRow(row);
+ }
+ Cell cell = r.getCell(column);
+ if (cell == null) {
+ cell = r.createCell(column);
+ }
+ cell.setCellType(XSSFCell.CELL_TYPE_FORMULA);
+ cell.setCellFormula(formula);
+ }
+
+ /**
+ * @param rowNo 0-based
+ * @param column 0-based
+ */
+ Cell getCell(Sheet sheet, int rowNo, int column) {
+ return sheet.getRow(rowNo).getCell(column);
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org