Author: liuzhe
Date: Sun Sep  9 14:43:35 2012
New Revision: 1382509

URL: http://svn.apache.org/viewvc?rev=1382509&view=rev
Log:
#120780 - [testuno] Insert/delete cells in spreadsheet.
Patch By: Guo Bin <binbj...@gmail.com>
Review By: Liu Zhe <aliu...@gmail.com>

Added:
    
incubator/ooo/trunk/test/testuno/source/testcase/uno/sc/cell/InsertDeleteCells.java

Added: 
incubator/ooo/trunk/test/testuno/source/testcase/uno/sc/cell/InsertDeleteCells.java
URL: 
http://svn.apache.org/viewvc/incubator/ooo/trunk/test/testuno/source/testcase/uno/sc/cell/InsertDeleteCells.java?rev=1382509&view=auto
==============================================================================
--- 
incubator/ooo/trunk/test/testuno/source/testcase/uno/sc/cell/InsertDeleteCells.java
 (added)
+++ 
incubator/ooo/trunk/test/testuno/source/testcase/uno/sc/cell/InsertDeleteCells.java
 Sun Sep  9 14:43:35 2012
@@ -0,0 +1,306 @@
+package testcase.uno.sc.cell;
+
+import static org.junit.Assert.*;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import org.openoffice.test.uno.UnoApp;
+
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.lang.XComponent;
+import com.sun.star.sheet.CellDeleteMode;
+import com.sun.star.sheet.CellInsertMode;
+import com.sun.star.sheet.XCellRangeAddressable;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.XCell;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.table.XCellRange;
+import com.sun.star.table.CellRangeAddress;
+import com.sun.star.sheet.XCellRangeMovement;
+
+/**
+ * Test insert or delete cells
+ * @author BinGuo 8/30/2012
+ *
+ */
+
+public class InsertDeleteCells {
+       
+       UnoApp unoApp = new UnoApp();
+       XSpreadsheetDocument scDocument = null;
+       XComponent scComponent = null;
+       
+       @Before
+       public void setUp() throws Exception {
+               unoApp.start();
+       }
+
+       @After
+       public void tearDown() throws Exception {
+               unoApp.closeDocument(scComponent);
+               unoApp.close();
+               }
+       
+       /**
+        * New spreadsheet
+        * Create 3x3 cell range A2:C4
+        * Execute insert empty A2 & B2 cells shift other existing cells in 
Column A & B down
+        * Execute insert empty A2 & B2 cells shift other existing cells in row 
2 move right
+        * Execute insert entire empty Row 2 make the whole existing cell range 
moves down
+        * Execute insert entire empty Columns A & B make the whole existing 
cell range moves right
+        * Verify results after insert cells
+        */     
+       
+       @Test
+       public void testInsertCells() throws Exception {
+       
+               scComponent = unoApp.newDocument("scalc");
+               scDocument = (XSpreadsheetDocument) 
UnoRuntime.queryInterface(XSpreadsheetDocument.class, scComponent);
+               XSpreadsheets xSpreadsheets = scDocument.getSheets();
+               
+               // Gets the first sheet in the document.                        
+        XIndexAccess xSheetsIA = 
(XIndexAccess)UnoRuntime.queryInterface(XIndexAccess.class, xSpreadsheets);
+        Object sheetObj = 
(XSpreadsheet)UnoRuntime.queryInterface(XSpreadsheet.class, 
xSheetsIA.getByIndex(0));
+               XSpreadsheet xSheet = (XSpreadsheet) 
UnoRuntime.queryInterface(XSpreadsheet.class, sheetObj);
+
+           // Create a 3x3 cell range "A2:C4" with the values 0 ... 8.
+           int nCol = 0;
+           int nValue = 0;
+           
+           for (int n = 1; n < 4; ++n){
+               int nRow = 1;
+               for (int i = 1; i < 4; ++i) {
+                          xSheet.getCellByPosition( nCol, nRow ).setValue( 
nValue );
+                      nRow += 1;
+                      nValue += 1;
+                   }       
+               nCol += 1; 
+           }   
+
+           //Insert 2 cells in A2:B2 and shift other existing cells in Column 
A & B down
+           
+               // Get cell range A2:B2 by position - (column, row, column, row)
+        XCellRange xCellRange = xSheet.getCellRangeByPosition( 0, 1, 1, 1 );
+        XCellRangeMovement xCellRangeMovement = (XCellRangeMovement) 
+                       UnoRuntime.queryInterface(XCellRangeMovement.class, 
xSheet); 
+
+        // Gets the selected range's address/location.
+           XCellRangeAddressable xCellRangeAddr = (XCellRangeAddressable)
+                   UnoRuntime.queryInterface( XCellRangeAddressable.class, 
xCellRange );
+           CellRangeAddress address = xCellRangeAddr.getRangeAddress();
+           
+           //Execute Insert cells in A2:B2 and shift other existing cells in 
Column A & B down
+           xCellRangeMovement.insertCells(address, CellInsertMode.DOWN);
+               
+           //Get value of cell A2, B2 and C2  
+        XCell cellA2 = xSheet.getCellByPosition(0, 1);
+        XCell cellB2 = xSheet.getCellByPosition(1, 1); 
+        XCell cellC2 = xSheet.getCellByPosition(2, 1); 
+        double expectValueA2 = 0.0;
+        double expectValueB2 = 0.0;
+        double expectValueC2 = 6;
+      
+        //Verify results after execute Insert cells in A2:B2 and shift other 
existing cells in Column A & B down
+        assertEquals("Verify value of A2 after execute Insert cells in A2:B2 
and shift cells down.",
+                       expectValueA2, cellA2.getValue(),0);
+        assertEquals("Verify value of B2 after execute Insert cells in A2:B2 
and shift cells down.",
+                       expectValueB2, cellB2.getValue(),0);
+        assertEquals("Verify value of C2 after execute Insert cells in A2:B2 
and shift cells down.",
+                       expectValueC2, cellC2.getValue(),0);
+        
+        //Execute Insert cells in A2:B2 and shift other existing cells in row 
2 move right
+           xCellRangeMovement.insertCells(address, CellInsertMode.RIGHT);
+           
+           //Get value of cell C2, D2, E2 and C3  
+           cellC2 = xSheet.getCellByPosition(2, 1);
+        XCell cellD2 = xSheet.getCellByPosition(3, 1); 
+        XCell cellE2 = xSheet.getCellByPosition(4, 1); 
+        XCell cellC3 = xSheet.getCellByPosition(2, 2); 
+        double expectValueC2right = 0.0;
+        double expectValueD2 = 0.0;
+        double expectValueE2 = 6;
+        double expectValueC3 = 7;
+      
+        //Verify results after execute Insert cells in A2:B2 and shift other 
existing cells in row 2 move right
+        assertEquals("Verify value of C2 after execute Insert cells in A2:B2 
and shift cells Right.",
+                       expectValueC2right, cellC2.getValue(),0);
+        assertEquals("Verify value of D2 after execute Insert cells in A2:B2 
and shift cells Right.",
+                       expectValueD2, cellD2.getValue(),0);
+        assertEquals("Verify value of E2 after execute Insert cells in A2:B2 
and shift cells Right.",
+                       expectValueE2, cellE2.getValue(),0);
+        assertEquals("Verify value of C3 after execute Insert cells in A2:B2 
and shift cells Right.",
+                       expectValueC3, cellC3.getValue(),0);
+         
+        //Execute Insert Entire Row 2 make the whole existing cell range moves 
down
+           xCellRangeMovement.insertCells(address, CellInsertMode.ROWS);
+        
+           //Get value of cell E2, E3 and C3  
+           cellE2 = xSheet.getCellByPosition(4, 1); 
+        XCell cellE3 = xSheet.getCellByPosition(4, 2); 
+        cellC3 = xSheet.getCellByPosition(2, 2); 
+        double expectValueE2rows = 0.0;
+        double expectValueE3 = 6;
+        double expectValueC3rows = 0.0;
+     
+        //Verify results after execute Insert Entire Row 2 make the whole 
existing cell range moves down
+        assertEquals("Verify value of E2 after execute Insert Entire Row 2 
make the whole existing cell range moves down.",
+                       expectValueE2rows, cellE2.getValue(),0);
+        assertEquals("Verify value of E3 after execute Insert Entire Row 2 
make the whole existing cell range moves down.",
+                       expectValueE3, cellE3.getValue(),0);
+        assertEquals("Verify value of C3 after execute Insert Entire Row 2 
make the whole existing cell range moves down.",
+                       expectValueC3rows, cellC3.getValue(),0);
+         
+           //Execute Insert Entire Columns make the whole existing cell range 
moves right
+           xCellRangeMovement.insertCells(address, CellInsertMode.COLUMNS);
+       
+           //Get value of cell C4, C5 and C6  
+           XCell cellC4 = xSheet.getCellByPosition(2, 3); 
+        XCell cellC5 = xSheet.getCellByPosition(2, 4); 
+        XCell cellC6 = xSheet.getCellByPosition(2, 5); 
+        double expectValueC4 = 0.0;
+        double expectValueC5 = 1;
+        double expectValueC6 = 2;
+    
+        //Verify results after execute Insert Entire Columns make the whole 
existing cell range moves right
+        assertEquals("Verify value of E2 after execute Insert Entire Row 2 
make the whole existing cell range moves down.",
+                  expectValueC4, cellC4.getValue(),0);
+        assertEquals("Verify value of E3 after execute Insert Entire Row 2 
make the whole existing cell range moves down.",
+                  expectValueC5, cellC5.getValue(),0);
+        assertEquals("Verify value of C3 after execute Insert Entire Row 2 
make the whole existing cell range moves down.",
+                  expectValueC6, cellC6.getValue(),0);
+                       
+    }
+
+       /**
+        * New spreadsheet
+        * Create 3x3 cell range A2:C4
+        * Execute delete cells A2 & B2 shift other existing cells in column A 
& B move up
+        * Execute delete cells A2 & B2 shift other existing cells in row 2 
move left
+        * Execute delete entire Row 2 make the whole existing cell range moves 
up
+        * Execute delete entire Columns A & B make the whole existing cell 
range moves left
+        * Verify results after delete cells
+        */     
+       
+    @Test
+    public void testDeleteCells() throws Exception {
+
+           scComponent = unoApp.newDocument("scalc");
+           scDocument = (XSpreadsheetDocument) 
UnoRuntime.queryInterface(XSpreadsheetDocument.class, scComponent);
+           XSpreadsheets xSpreadsheets = scDocument.getSheets();
+       
+           // Gets the first sheet in the document.                    
+        XIndexAccess xSheetsIA = 
(XIndexAccess)UnoRuntime.queryInterface(XIndexAccess.class, xSpreadsheets);
+        Object sheetObj = 
(XSpreadsheet)UnoRuntime.queryInterface(XSpreadsheet.class, 
xSheetsIA.getByIndex(0));
+           XSpreadsheet xSheet = (XSpreadsheet) 
UnoRuntime.queryInterface(XSpreadsheet.class, sheetObj);
+
+        // Create a 3x3 cell range "A2:C4" with the values 0 ... 8.
+        int nCol = 0;
+        int nValue = 0;
+    
+        for (int n = 1; n < 4; ++n){
+           int nRow = 1;
+           for (int i = 1; i < 4; ++i) {
+                       xSheet.getCellByPosition( nCol, nRow ).setValue( nValue 
);
+                   nRow += 1;
+                   nValue += 1;
+               }           
+            nCol += 1; 
+       }   
+
+        //Insert 2 cells in A2:B2 and shift cells up
+    
+           // Get cell range A2:B2 by position - (column, row, column, row)
+        XCellRange xCellRange = xSheet.getCellRangeByPosition( 0, 1, 1, 1 );
+        XCellRangeMovement xCellRangeMovement = (XCellRangeMovement) 
+               UnoRuntime.queryInterface(XCellRangeMovement.class, xSheet); 
+
+        // Gets the selected range's address/location.
+           XCellRangeAddressable xCellRangeAddr = (XCellRangeAddressable)
+            UnoRuntime.queryInterface( XCellRangeAddressable.class, xCellRange 
);
+        CellRangeAddress address = xCellRangeAddr.getRangeAddress();
+    
+        //Execute delete cells in A2:B2 and shift cells in column A & B move up
+        xCellRangeMovement.removeRange(address,CellDeleteMode.UP);
+       
+        //Get value of cell A2, B2 and C2   
+        XCell cellA2 = xSheet.getCellByPosition(0, 1);
+        XCell cellB2 = xSheet.getCellByPosition(1, 1); 
+        XCell cellC2 = xSheet.getCellByPosition(2, 1); 
+        double expectValueA2up = 1;
+        double expectValueB2up = 4;
+        double expectValueC2up = 6;
+  
+        //Verify results after execute delete cells in A2:B2 and shift cells 
in column A & B move up
+        assertEquals("Verify value of A2 after execute delete cells in A2:B2 
and shift cells up.",
+               expectValueA2up, cellA2.getValue(),0);
+        assertEquals("Verify value of B2 after execute delete cells in A2:B2 
and shift cells up.",
+               expectValueB2up, cellB2.getValue(),0);
+        assertEquals("Verify value of C2 after execute delete cells in A2:B2 
and shift cells up.",
+               expectValueC2up, cellC2.getValue(),0);
+    
+        //Execute delete cells in A2:B2 and shift other existing cells in row 
2 move left
+        xCellRangeMovement.removeRange(address,CellDeleteMode.LEFT);
+    
+        //Get value of cell A2, B2 and C2  
+        cellA2 = xSheet.getCellByPosition(0, 1);
+        cellB2 = xSheet.getCellByPosition(1, 1); 
+        cellC2 = xSheet.getCellByPosition(2, 1); 
+        double expectValueA2left = 6;
+        double expectValueB2left = 0.0;
+        double expectValueC2left = 0.0;
+  
+        //Verify results after execute delete cells in A2:B2 and shift other 
existing cells in row 2 move left
+        assertEquals("Verify value of A2 after execute delete cells in A2:B2 
and shift cells left.",
+               expectValueA2left, cellA2.getValue(),0);
+        assertEquals("Verify value of B2 after execute delete cells in A2:B2 
and shift cells left.",
+               expectValueB2left, cellB2.getValue(),0);
+        assertEquals("Verify value of C2 after execute delete cells in A2:B2 
and shift cells left.",
+               expectValueC2left, cellC2.getValue(),0);
+        
+        //Execute delete Entire Row 2 make the whole existing cell range moves 
up
+        xCellRangeMovement.removeRange(address,CellDeleteMode.ROWS);
+    
+        //Get value of cell A2, B2 and C2  
+        cellA2 = xSheet.getCellByPosition(0, 1);
+        cellB2 = xSheet.getCellByPosition(1, 1); 
+        cellC2 = xSheet.getCellByPosition(2, 1); 
+        double expectValueA2rows = 2;
+        double expectValueB2rows = 5;
+        double expectValueC2rows = 7;
+    
+        //Verify results after delete Entire Row 2 make the whole existing 
cell range moves up
+        assertEquals("Verify value of A2 after delete Entire Row 2 make the 
whole existing cell range moves up.",
+               expectValueA2rows, cellA2.getValue(),0);
+        assertEquals("Verify value of B2 after delete Entire Row 2 make the 
whole existing cell range moves up.",
+               expectValueB2rows, cellB2.getValue(),0);
+        assertEquals("Verify value of C2 after delete Entire Row 2 make the 
whole existing cell range moves up.",
+               expectValueC2rows, cellC2.getValue(),0);
+    
+        //Execute delete Entire Columns make the whole existing cell range 
moves left
+        xCellRangeMovement.removeRange(address,CellDeleteMode.COLUMNS);
+    
+        //Get value of cell A2, B2 and C2  
+        cellA2 = xSheet.getCellByPosition(0, 1);
+        cellB2 = xSheet.getCellByPosition(1, 1); 
+        cellC2 = xSheet.getCellByPosition(2, 1); 
+        double expectValueA2columns = 7;
+        double expectValueB2columns = 0.0;
+        double expectValueC2columns = 0.0;
+    
+        //Verify results after execute delete Entire Columns make the whole 
existing cell range moves left
+        assertEquals("Verify value of A2 after delete Entire Columns make the 
whole existing cell range moves left.",
+               expectValueA2columns, cellA2.getValue(),0);
+        assertEquals("Verify value of B2 after delete Entire Columns make the 
whole existing cell range moves left.",
+               expectValueB2columns, cellB2.getValue(),0);
+        assertEquals("Verify value of C2 after delete Entire Columns make the 
whole existing cell range moves left.",
+               expectValueC2columns, cellC2.getValue(),0);
+               
+    }
+
+}
+
+


Reply via email to