]> source.dussan.org Git - poi.git/commitdiff
Adjust/enhance tests for bug 62275 some more
authorDominik Stadler <centic@apache.org>
Fri, 28 Dec 2018 11:17:46 +0000 (11:17 +0000)
committerDominik Stadler <centic@apache.org>
Fri, 28 Dec 2018 11:17:46 +0000 (11:17 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1849836 13f79535-47bb-0310-9956-ffa450edef68

src/ooxml/testcases/org/apache/poi/ss/formula/functions/TestVlookup.java
src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFFormulaEvaluation.java

index 31769a37a431e31e9a4c1222da9fde83dd803aff..0dc0655a1ff847c112b981e49314aab9bd97b5fb 100644 (file)
 
 package org.apache.poi.ss.formula.functions;
 
+import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.CellType;
+import org.apache.poi.ss.usermodel.CellValue;
+import org.apache.poi.ss.usermodel.CreationHelper;
 import org.apache.poi.ss.usermodel.FormulaEvaluator;
+import org.apache.poi.ss.usermodel.Row;
+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.usermodel.XSSFWorkbook;
 import org.junit.Test;
 
-import junit.framework.TestCase;
+import java.io.IOException;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
 
 /**
  * Test the VLOOKUP function
  */
-public class TestVlookup extends TestCase {
+public class TestVlookup {
+
+    @Test
+    public void testFullColumnAreaRef61841() throws IOException {
+        try (Workbook wb = XSSFTestDataSamples.openSampleWorkbook("VLookupFullColumn.xlsx")) {
+            FormulaEvaluator feval = wb.getCreationHelper().createFormulaEvaluator();
+            feval.evaluateAll();
+            assertEquals("Wrong lookup value", "Value1",
+                    feval.evaluate(wb.getSheetAt(0).getRow(3).getCell(1)).getStringValue());
+            assertEquals("Lookup should return #N/A",
+                    CellType.ERROR, feval.evaluate(wb.getSheetAt(0).getRow(4).getCell(1)).getCellType());
+        }
+    }
+
+    @Test
+    public void bug62275_true() throws IOException {
+        try (Workbook wb = new XSSFWorkbook()) {
+            Sheet sheet = wb.createSheet();
+            Row row = sheet.createRow(0);
+
+            Cell cell = row.createCell(0);
+            cell.setCellFormula("vlookup(A2,B1:B5,2,true)");
+
+            CreationHelper createHelper = wb.getCreationHelper();
+            FormulaEvaluator eval = createHelper.createFormulaEvaluator();
+            CellValue value = eval.evaluate(cell);
+
+            assertFalse(value.getBooleanValue());
+        }
+    }
+
+    @Test
+    public void bug62275_false() throws IOException {
+        try (Workbook wb = new XSSFWorkbook()) {
+            Sheet sheet = wb.createSheet();
+            Row row = sheet.createRow(0);
+
+            Cell cell = row.createCell(0);
+            cell.setCellFormula("vlookup(A2,B1:B5,2,false)");
+
+            CreationHelper crateHelper = wb.getCreationHelper();
+            FormulaEvaluator eval = crateHelper.createFormulaEvaluator();
+            CellValue value = eval.evaluate(cell);
+
+            assertFalse(value.getBooleanValue());
+        }
+    }
 
     @Test
-    public void testFullColumnAreaRef61841() {
-        final Workbook wb = XSSFTestDataSamples.openSampleWorkbook("VLookupFullColumn.xlsx");
-        FormulaEvaluator feval = wb.getCreationHelper().createFormulaEvaluator();
-        feval.evaluateAll();
-        assertEquals("Wrong lookup value",  "Value1", feval.evaluate(wb.getSheetAt(0).getRow(3).getCell(1)).getStringValue());
-        assertEquals("Lookup should return #N/A", CellType.ERROR, feval.evaluate(wb.getSheetAt(0).getRow(4).getCell(1)).getCellType());
+    public void bug62275_empty_3args() throws IOException {
+        try (Workbook wb = new XSSFWorkbook()) {
+            Sheet sheet = wb.createSheet();
+            Row row = sheet.createRow(0);
+
+            Cell cell = row.createCell(0);
+            cell.setCellFormula("vlookup(A2,B1:B5,2,)");
+
+            CreationHelper crateHelper = wb.getCreationHelper();
+            FormulaEvaluator eval = crateHelper.createFormulaEvaluator();
+            CellValue value = eval.evaluate(cell);
+
+            assertFalse(value.getBooleanValue());
+        }
     }
 
+    @Test
+    public void bug62275_empty_2args() throws IOException {
+        try (Workbook wb = new XSSFWorkbook()) {
+            Sheet sheet = wb.createSheet();
+            Row row = sheet.createRow(0);
+
+            Cell cell = row.createCell(0);
+            cell.setCellFormula("vlookup(A2,B1:B5,,)");
+
+            CreationHelper crateHelper = wb.getCreationHelper();
+            FormulaEvaluator eval = crateHelper.createFormulaEvaluator();
+            CellValue value = eval.evaluate(cell);
+
+            assertFalse(value.getBooleanValue());
+        }
+    }
+
+    @Test
+    public void bug62275_empty_1arg() throws IOException {
+        try (Workbook wb = new XSSFWorkbook()) {
+            Sheet sheet = wb.createSheet();
+            Row row = sheet.createRow(0);
+
+            Cell cell = row.createCell(0);
+            cell.setCellFormula("vlookup(A2,,,)");
+
+            CreationHelper crateHelper = wb.getCreationHelper();
+            FormulaEvaluator eval = crateHelper.createFormulaEvaluator();
+            CellValue value = eval.evaluate(cell);
+
+            assertFalse(value.getBooleanValue());
+        }
+    }
 }
index 418eb268e8368da0c4798adfb71d5a563d619e0a..9f4479240c974bb6d3b6ae150aeed2977e79f10a 100644 (file)
@@ -30,7 +30,6 @@ import org.apache.poi.hssf.HSSFTestDataSamples;
 import org.apache.poi.ss.usermodel.BaseTestFormulaEvaluator;
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.CellValue;
-import org.apache.poi.ss.usermodel.CreationHelper;
 import org.apache.poi.ss.usermodel.FormulaEvaluator;
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.ss.usermodel.Sheet;
@@ -253,7 +252,7 @@ public final class TestXSSFFormulaEvaluation extends BaseTestFormulaEvaluator {
      */
     @Test
     @Ignore
-    public void testCachedReferencesToOtherWorkbooks() throws Exception {
+    public void testCachedReferencesToOtherWorkbooks() {
         // TODO
         fail("unit test not written yet");
     }
@@ -388,7 +387,7 @@ public final class TestXSSFFormulaEvaluation extends BaseTestFormulaEvaluator {
         verifyAllFormulasInWorkbookCanBeEvaluated("StructuredRefs-lots-with-lookups.xlsx");
     }
 
-    // FIXME: use junit4 parameterization
+    // FIXME: use junit4 parametrization
     private static void verifyAllFormulasInWorkbookCanBeEvaluated(String sampleWorkbook) throws IOException {
         XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook(sampleWorkbook);
         XSSFFormulaEvaluator.evaluateAllFormulaCells(wb);
@@ -442,33 +441,16 @@ public final class TestXSSFFormulaEvaluation extends BaseTestFormulaEvaluator {
 //        assertEquals("D 67.10", cell.getStringCellValue());
         
         CellValue value = evaluator.evaluate(cell);
-        assertEquals("D 67.10", value.getStringValue());
+        assertEquals("D 67.10",
+                value.getStringValue());
         
-        assertEquals("D 0,068", evaluator.evaluate(wb.getSheetAt(0).getRow(1).getCell(1)));
+        assertEquals("D 0,068",
+                evaluator.evaluate(wb.getSheetAt(0).getRow(1).getCell(1)).getStringValue());
     }
 
-    /**
-     * see bug 62275
-     * @throws IOException
-     */
-    @Test
-    public void testBug62275() throws IOException {
-        try (Workbook wb = new XSSFWorkbook()) {
-            Sheet sheet = wb.createSheet();
-            Row row = sheet.createRow(0);
-
-            Cell cell = row.createCell(0);
-            cell.setCellFormula("vlookup(A2,B1:B5,2,true)");
-
-            CreationHelper createHelper = wb.getCreationHelper();
-            FormulaEvaluator eval = createHelper.createFormulaEvaluator();
-            eval.evaluate(cell);
-        }
-    }
     
     /**
      * see bug 62834, handle when a shared formula range doesn't contain only formula cells
-     * @throws IOException 
      */
     @Test
     public void testBug62834() throws IOException {