Author: centic
Date: Fri Dec 28 11:17:46 2018
New Revision: 1849836

URL: http://svn.apache.org/viewvc?rev=1849836&view=rev
Log:
Adjust/enhance tests for bug 62275 some more

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

Modified: 
poi/trunk/src/ooxml/testcases/org/apache/poi/ss/formula/functions/TestVlookup.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/ss/formula/functions/TestVlookup.java?rev=1849836&r1=1849835&r2=1849836&view=diff
==============================================================================
--- 
poi/trunk/src/ooxml/testcases/org/apache/poi/ss/formula/functions/TestVlookup.java
 (original)
+++ 
poi/trunk/src/ooxml/testcases/org/apache/poi/ss/formula/functions/TestVlookup.java
 Fri Dec 28 11:17:46 2018
@@ -17,26 +17,122 @@
 
 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 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 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_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());
+        }
+    }
 }

Modified: 
poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFFormulaEvaluation.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFFormulaEvaluation.java?rev=1849836&r1=1849835&r2=1849836&view=diff
==============================================================================
--- 
poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFFormulaEvaluation.java
 (original)
+++ 
poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFFormulaEvaluation.java
 Fri Dec 28 11:17:46 2018
@@ -30,7 +30,6 @@ import org.apache.poi.hssf.HSSFTestDataS
 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 TestXSSFFormulaEvalua
      */
     @Test
     @Ignore
-    public void testCachedReferencesToOtherWorkbooks() throws Exception {
+    public void testCachedReferencesToOtherWorkbooks() {
         // TODO
         fail("unit test not written yet");
     }
@@ -388,7 +387,7 @@ public final class TestXSSFFormulaEvalua
         
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 TestXSSFFormulaEvalua
 //        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 {



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to