From 43ea9feee875cf869ded861793d6923f1c988512 Mon Sep 17 00:00:00 2001
From: Jens-Heiner Rechtien <hr@openoffice.org>
Date: Tue, 13 Apr 2004 11:23:43 +0000
Subject: INTEGRATION: CWS pagefields (1.1.2); FILE ADDED 2004/03/05 15:47:43
 sab 1.1.2.1: #i22164#; complex test for data pilot

---
 sc/qa/complex/dataPilot/CheckDataPilot.java | 302 ++++++++++++++++++++++++++++
 1 file changed, 302 insertions(+)
 create mode 100644 sc/qa/complex/dataPilot/CheckDataPilot.java

(limited to 'sc/qa/complex')

diff --git a/sc/qa/complex/dataPilot/CheckDataPilot.java b/sc/qa/complex/dataPilot/CheckDataPilot.java
new file mode 100644
index 000000000000..35f7285f3049
--- /dev/null
+++ b/sc/qa/complex/dataPilot/CheckDataPilot.java
@@ -0,0 +1,302 @@
+package complex.dataPilot;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.container.XIndexAccess;
+import com.sun.star.container.XNamed;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.sheet.TableFilterField;
+import com.sun.star.sheet.XDataPilotDescriptor;
+import com.sun.star.sheet.XDataPilotTable;
+import com.sun.star.sheet.XDataPilotTables;
+import com.sun.star.sheet.XDataPilotTablesSupplier;
+import com.sun.star.sheet.XSheetFilterDescriptor;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.sheet.XSpreadsheetDocument;
+import com.sun.star.sheet.XSpreadsheets;
+import com.sun.star.table.CellAddress;
+import com.sun.star.table.CellRangeAddress;
+import com.sun.star.uno.AnyConverter;
+import com.sun.star.uno.Type;
+import com.sun.star.uno.UnoRuntime;
+import com.sun.star.uno.XInterface;
+import complex.dataPilot.interfaceTests.beans._XPropertySet;
+import complex.dataPilot.interfaceTests.container._XNamed;
+import complex.dataPilot.interfaceTests.sheet._XDataPilotDescriptor;
+import complex.dataPilot.interfaceTests.sheet._XDataPilotTable;
+import complexlib.ComplexTestCase;
+import lib.StatusException;
+import util.SOfficeFactory;
+
+/**
+ * check the DataPilot of Calc.
+ */
+public class CheckDataPilot extends ComplexTestCase {
+    /** The data pilot field object **/
+    private XInterface mDataPilotFieldObject = null;
+    /** The data pilot table object **/
+    private XInterface mDataPilotTableObject = null;
+
+    /**
+     * A field is filled some values. This integer determines the size of the
+     * field in x and y direction.
+     */
+    private int mMaxFieldIndex = 6;
+
+
+    /**
+     * Get all test methods
+     * @return The test methods
+     */
+    public String[] getTestMethodNames() {
+        return new String[]{"testDataPilotTableObject",
+                            "testDataPilotFieldObject"};
+    }
+
+    /**
+     * Test the data pilot field object:
+     * simply execute the interface tests in a row
+     */
+    public void testDataPilotFieldObject() {
+        log.println("Starting 'testDataPilotFieldObject'");
+        // _XNamed
+        XNamed xNamed = (XNamed)UnoRuntime.queryInterface(
+                                    XNamed.class, mDataPilotFieldObject);
+
+        _XNamed _xNamed = new _XNamed(xNamed, log, param);
+        assure("_getName failed.",_xNamed._getName());
+        assure("_setName failed.",_xNamed._setName());
+
+        // _XPropertySet
+        XPropertySet xProp = (XPropertySet)UnoRuntime.queryInterface(
+                                    XPropertySet.class, mDataPilotFieldObject);
+        _XPropertySet _xProp = new _XPropertySet(xProp, log, param);
+        assure("_getPropertySetInfo failed.",_xProp._getPropertySetInfo());
+        assure("_addPropertyChangeListener failed.",_xProp._addPropertyChangeListener());
+        assure("_addVetoableChangeListener failed.",_xProp._addVetoableChangeListener());
+        assure("_setPropertyValue failed.",_xProp._setPropertyValue());
+        assure("_getPropertyValue failed.",_xProp._getPropertyValue());
+        assure("_removePropertyChangeListener failed.",_xProp._removePropertyChangeListener());
+        assure("_removeVetoableChangeListener failed.",_xProp._removeVetoableChangeListener());
+
+    }
+
+    /**
+     * Test the data pilot table object:
+     * simply execute the interface tests in a row
+     */
+    public void testDataPilotTableObject() {
+        log.println("Starting 'testDataPilotTableObject'");
+        // _XNamed
+        XNamed xNamed = (XNamed)UnoRuntime.queryInterface(
+                                    XNamed.class, mDataPilotTableObject);
+        _XNamed _xNamed = new _XNamed(xNamed, log, param);
+        assure("_getName failed.",_xNamed._getName());
+        assure("_setName failed.",_xNamed._setName());
+
+        // _XDataPilotTable
+        XDataPilotTable xDataPilotTable = (XDataPilotTable)
+                    UnoRuntime.queryInterface(XDataPilotTable.class,
+                    mDataPilotTableObject);
+        _XDataPilotTable _xDataPilotTable =
+                    new _XDataPilotTable(xDataPilotTable, log, param);
+        assure("before failed.", _xDataPilotTable.before());
+        assure("_getOutputRange failed.", _xDataPilotTable._getOutputRange()) ;
+        assure("_refresh failed.", _xDataPilotTable._refresh()) ;
+
+        // _XDataPilotDescriptor
+        XDataPilotDescriptor xDataPilotDescriptor = (XDataPilotDescriptor)
+                    UnoRuntime.queryInterface(XDataPilotDescriptor.class,
+                    mDataPilotTableObject);
+        _XDataPilotDescriptor _xDataPilotDescriptor =
+                    new _XDataPilotDescriptor(xDataPilotDescriptor, log, param);
+        assure("before failed.", _xDataPilotDescriptor.before());
+        assure("_setTag failed.", _xDataPilotDescriptor._setTag()) ;
+        assure("_getTag failed.", _xDataPilotDescriptor._getTag()) ;
+        assure("_getFilterDescriptor failed.", _xDataPilotDescriptor._getFilterDescriptor()) ;
+        assure("_getDataPilotFields failed.", _xDataPilotDescriptor._getDataPilotFields()) ;
+        assure("_getColumnFields failed.", _xDataPilotDescriptor._getColumnFields()) ;
+        assure("_getRowFields failed.", _xDataPilotDescriptor._getRowFields()) ;
+        assure("_getDataFields failed.", _xDataPilotDescriptor._getDataFields()) ;
+        assure("_getHiddenFields failed.", _xDataPilotDescriptor._getHiddenFields()) ;
+        assure("_getPageFields failed.", _xDataPilotDescriptor._getPageFields()) ;
+        assure("_setSourceRange failed.", _xDataPilotDescriptor._setSourceRange()) ;
+        assure("_getSourceRange failed.", _xDataPilotDescriptor._getSourceRange()) ;
+    }
+
+    /**
+     * create an environment for the test
+     */
+    public void before() {
+        Object oInterface = null;
+        XSpreadsheetDocument xSheetDoc = null;
+
+        SOfficeFactory SOF = SOfficeFactory.getFactory( (XMultiServiceFactory)param.getMSF() );
+
+        // the cell range
+        CellRangeAddress sCellRangeAdress = new CellRangeAddress();
+        sCellRangeAdress.Sheet = 0;
+        sCellRangeAdress.StartColumn = 1;
+        sCellRangeAdress.StartRow = 0;
+        sCellRangeAdress.EndColumn = mMaxFieldIndex-1;
+        sCellRangeAdress.EndRow = mMaxFieldIndex - 1;
+
+        // position of the data pilot table
+        CellAddress sCellAdress = new CellAddress();
+        sCellAdress.Sheet = 0;
+        sCellAdress.Column = 7;
+        sCellAdress.Row = 8;
+
+        try {
+            log.println( "Creating a Spreadsheet document" );
+            xSheetDoc = SOF.createCalcDoc(null);
+        } catch (com.sun.star.uno.Exception e) {
+            // Some exception occures.FAILED
+            e.printStackTrace();
+            throw new StatusException( "Couldn't create document", e );
+        }
+
+        log.println("Getting a sheet");
+        XSpreadsheets xSpreadsheets = (XSpreadsheets)xSheetDoc.getSheets();
+        XSpreadsheet oSheet = null;
+        XSpreadsheet oSheet2 = null;
+        XIndexAccess oIndexAccess = (XIndexAccess)
+            UnoRuntime.queryInterface(XIndexAccess.class, xSpreadsheets);
+
+        try {
+            oSheet = (XSpreadsheet) AnyConverter.toObject(
+                    new Type(XSpreadsheet.class),oIndexAccess.getByIndex(0));
+            oSheet2 = (XSpreadsheet) AnyConverter.toObject(
+                    new Type(XSpreadsheet.class),oIndexAccess.getByIndex(1));
+        } catch (com.sun.star.lang.WrappedTargetException e) {
+            e.printStackTrace();
+            throw new StatusException( "Couldn't get a spreadsheet", e);
+        } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+            e.printStackTrace();
+            throw new StatusException( "Couldn't get a spreadsheet", e);
+        } catch (com.sun.star.lang.IllegalArgumentException e) {
+            e.printStackTrace();
+            throw new StatusException( "Couldn't get a spreadsheet", e);
+        }
+
+        try {
+            log.println("Filling a table");
+            for (int i = 1; i < mMaxFieldIndex; i++) {
+                oSheet.getCellByPosition(i, 0).setFormula("Col" + i);
+                oSheet.getCellByPosition(0, i).setFormula("Row" + i);
+                oSheet2.getCellByPosition(i, 0).setFormula("Col" + i);
+                oSheet2.getCellByPosition(0, i).setFormula("Row" + i);
+            }
+
+            for (int i = 1; i < mMaxFieldIndex; i++)
+                for (int j = 1; j < mMaxFieldIndex; j++) {
+                    oSheet.getCellByPosition(i, j).setValue(i * (j + 1));
+                    oSheet2.getCellByPosition(i, j).setValue(i * (j + 2));
+                }
+        } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+            e.printStackTrace();
+            throw new StatusException("Couldn't fill some cells", e);
+        }
+
+        // change a value of a cell and check the change in the data pilot
+        // (for the XDataPilotTable.refresh() test)
+        Object oChangeCell = null;
+        Object oCheckCell = null;
+        Integer aChangeValue = null;
+        try {
+            // cell of data
+            oChangeCell = oSheet.getCellByPosition(1, 5);
+            int x = sCellAdress.Column;
+            int y = sCellAdress.Row + 3;
+            // cell of the data pilot output
+            oCheckCell = oSheet.getCellByPosition(x, y);
+            aChangeValue = new Integer(27);
+        } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+            e.printStackTrace();
+            throw new StatusException( "Couldn't get cells for changeing.", e);
+        }
+
+
+        // create the test objects
+        log.println("Getting test objects") ;
+        XDataPilotTablesSupplier DPTS = (XDataPilotTablesSupplier)
+            UnoRuntime.queryInterface(XDataPilotTablesSupplier.class, oSheet);
+        XDataPilotTables DPT = DPTS.getDataPilotTables();
+        XDataPilotDescriptor DPDsc = DPT.createDataPilotDescriptor();
+        DPDsc.setSourceRange(sCellRangeAdress);
+
+        XPropertySet fieldPropSet = null;
+        try {
+            Object oDataPilotField = DPDsc.getDataPilotFields().getByIndex(0);
+            fieldPropSet = (XPropertySet)
+                UnoRuntime.queryInterface(XPropertySet.class, oDataPilotField);
+        } catch (com.sun.star.lang.WrappedTargetException e) {
+            e.printStackTrace();
+            throw new StatusException("Couldn't create a test environment", e);
+        } catch(com.sun.star.lang.IndexOutOfBoundsException e) {
+            e.printStackTrace();
+            throw new StatusException("Couldn't create a test environment", e);
+        }
+
+        try {
+            fieldPropSet.setPropertyValue("Function",
+                com.sun.star.sheet.GeneralFunction.SUM);
+            fieldPropSet.setPropertyValue("Orientation",
+                com.sun.star.sheet.DataPilotFieldOrientation.DATA);
+        } catch(com.sun.star.lang.WrappedTargetException e) {
+            e.printStackTrace();
+            throw new StatusException("Couldn't create a test environment", e);
+        } catch(com.sun.star.lang.IllegalArgumentException e) {
+            e.printStackTrace();
+            throw new StatusException("Couldn't create a test environment", e);
+        } catch(com.sun.star.beans.PropertyVetoException e) {
+            e.printStackTrace();
+            throw new StatusException("Couldn't create a test environment", e);
+        } catch(com.sun.star.beans.UnknownPropertyException e) {
+            e.printStackTrace();
+            throw new StatusException("Couldn't create a test environment", e);
+        }
+
+        log.println("Insert the DataPilotTable");
+        if (DPT.hasByName("DataPilotTable")) {
+            DPT.removeByName("DataPilotTable");
+        }
+        DPT.insertNewByName("DataPilotTable", sCellAdress, DPDsc);
+        try {
+            mDataPilotTableObject = (XInterface) AnyConverter.toObject(
+                new Type(XInterface.class),DPT.getByName(DPT.getElementNames()[0]));
+        } catch (com.sun.star.lang.WrappedTargetException e) {
+            e.printStackTrace();
+            throw new StatusException("Couldn't create a test environment", e);
+        } catch (com.sun.star.container.NoSuchElementException e) {
+            e.printStackTrace();
+            throw new StatusException("Couldn't create a test environment", e);
+        } catch (com.sun.star.lang.IllegalArgumentException e) {
+            e.printStackTrace();
+            throw new StatusException("Couldn't create a test environment", e);
+        }
+
+        XIndexAccess IA = DPDsc.getDataPilotFields();
+        try {
+            mDataPilotFieldObject = (XInterface)AnyConverter.toObject(
+                                new Type(XInterface.class),IA.getByIndex(0));
+        } catch (com.sun.star.lang.WrappedTargetException e) {
+            e.printStackTrace();
+            throw new StatusException("Couldn't get data pilot field", e);
+        } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+            e.printStackTrace();
+            throw new StatusException("Couldn't get data pilot field", e);
+        } catch (com.sun.star.lang.IllegalArgumentException e) {
+            e.printStackTrace();
+            throw new StatusException("Couldn't get data pilot field", e);
+        }
+
+        // Other parameters required for interface tests
+        param.put("OUTPUTRANGE", sCellAdress);
+        param.put("CELLFORCHANGE", oChangeCell);
+        param.put("CELLFORCHECK", oCheckCell);
+        param.put("CHANGEVALUE", aChangeValue);
+        param.put("FIELDSAMOUNT", new Integer(5));
+
+    }
+
+}
-- 
cgit