summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorJens-Heiner Rechtien <hr@openoffice.org>2004-04-13 11:23:43 +0000
committerJens-Heiner Rechtien <hr@openoffice.org>2004-04-13 11:23:43 +0000
commit43ea9feee875cf869ded861793d6923f1c988512 (patch)
tree71ac588e5efd291f35cb0c472ed29885670b12b0 /sc
parent94f042fe8c71bc71c5eebdd398bb770c9b866d32 (diff)
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
Diffstat (limited to 'sc')
-rw-r--r--sc/qa/complex/dataPilot/CheckDataPilot.java302
1 files changed, 302 insertions, 0 deletions
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));
+
+ }
+
+}