]> source.dussan.org Git - poi.git/commitdiff
bug 59728: add disabled unit test: should not be able to add an array formula to...
authorJaven O'Neal <onealj@apache.org>
Sun, 19 Jun 2016 22:51:01 +0000 (22:51 +0000)
committerJaven O'Neal <onealj@apache.org>
Sun, 19 Jun 2016 22:51:01 +0000 (22:51 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1749225 13f79535-47bb-0310-9956-ffa450edef68

src/testcases/org/apache/poi/ss/usermodel/BaseTestSheetUpdateArrayFormulas.java

index 86779673cc32a0d16b83cf966bf75150f957abfe..58919167fd4226da171624011a2359bc01f7de1b 100644 (file)
@@ -24,6 +24,7 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
+import static org.junit.Assume.assumeTrue;
 import static org.junit.Assert.fail;
 
 import java.io.IOException;
@@ -33,6 +34,7 @@ import org.apache.poi.ss.ITestDataProvider;
 import org.apache.poi.ss.formula.FormulaParseException;
 import org.apache.poi.ss.util.CellRangeAddress;
 import org.apache.poi.ss.util.CellReference;
+import org.junit.Ignore;
 import org.junit.Test;
 
 /**
@@ -574,4 +576,35 @@ public abstract class BaseTestSheetUpdateArrayFormulas {
         */
         workbook.close();
     }
+    
+    @Ignore
+    @Test
+    public void shouldNotBeAbleToCreateArrayFormulaOnPreexistingMergedRegion() throws IOException {
+        /*
+         *  m  = merged region
+         *  f  = array formula
+         *  fm = cell belongs to a merged region and an array formula (illegal, that's what this tests for)
+         *  
+         *   A  B  C
+         * 1    f  f
+         * 2    fm fm
+         * 3    f  f
+         */
+        Workbook workbook = _testDataProvider.createWorkbook();
+        Sheet sheet = workbook.createSheet();
+        
+        CellRangeAddress mergedRegion = CellRangeAddress.valueOf("B2:C2");
+        sheet.addMergedRegion(mergedRegion);
+        CellRangeAddress arrayFormula = CellRangeAddress.valueOf("C1:C3");
+        assumeTrue(mergedRegion.intersects(arrayFormula));
+        assumeTrue(arrayFormula.intersects(mergedRegion));
+        try {
+            sheet.setArrayFormula("SUM(A1:A3)",  arrayFormula);
+            fail("expected exception: should not be able to create an array formula that intersects with a merged region");
+        } catch (IllegalStateException e) {
+            // expected
+        }
+        
+        workbook.close();
+    }
 }