diff options
author | Jens-Heiner Rechtien <hr@openoffice.org> | 2004-04-13 11:24:45 +0000 |
---|---|---|
committer | Jens-Heiner Rechtien <hr@openoffice.org> | 2004-04-13 11:24:45 +0000 |
commit | 648aca7bb5e92366c05a1ae8b54bcceee9745e69 (patch) | |
tree | efd8b8bf710bdbc3bf07d1f876d7ad48ae3dacc0 /sc/qa/complex | |
parent | 208aa1b24f671dcddc27d91f45ff3739003f5e9d (diff) |
INTEGRATION: CWS pagefields (1.1.2); FILE ADDED
2004/03/05 16:02:42 sab 1.1.2.1: #i22164#; complex test for data pilot
Diffstat (limited to 'sc/qa/complex')
-rw-r--r-- | sc/qa/complex/dataPilot/interfaceTests/sheet/_XDataPilotDescriptor.java | 483 |
1 files changed, 483 insertions, 0 deletions
diff --git a/sc/qa/complex/dataPilot/interfaceTests/sheet/_XDataPilotDescriptor.java b/sc/qa/complex/dataPilot/interfaceTests/sheet/_XDataPilotDescriptor.java new file mode 100644 index 000000000000..7390c14f4196 --- /dev/null +++ b/sc/qa/complex/dataPilot/interfaceTests/sheet/_XDataPilotDescriptor.java @@ -0,0 +1,483 @@ +/************************************************************************* + * + * $RCSfile: _XDataPilotDescriptor.java,v $ + * + * $Revision: 1.2 $ + * + * last change:$Date: 2004-04-13 12:24:45 $ + * + * The Contents of this file are made available subject to the terms of + * either of the following licenses + * + * - GNU Lesser General Public License Version 2.1 + * - Sun Industry Standards Source License Version 1.1 + * + * Sun Microsystems Inc., October, 2000 + * + * GNU Lesser General Public License Version 2.1 + * ============================================= + * Copyright 2000 by Sun Microsystems, Inc. + * 901 San Antonio Road, Palo Alto, CA 94303, USA + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License version 2.1, as published by the Free Software Foundation. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + * + * + * Sun Industry Standards Source License Version 1.1 + * ================================================= + * The contents of this file are subject to the Sun Industry Standards + * Source License Version 1.1 (the "License"); You may not use this file + * except in compliance with the License. You may obtain a copy of the + * License at http://www.openoffice.org/license.html. + * + * Software provided under this License is provided on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, + * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, + * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. + * See the License for the specific provisions governing your rights and + * obligations concerning the Software. + * + * The Initial Developer of the Original Code is: Sun Microsystems, Inc. + * + * Copyright: 2000 by Sun Microsystems, Inc. + * + * All Rights Reserved. + * + * Contributor(s): _______________________________________ + * + * + ************************************************************************/ + +package complex.dataPilot.interfaceTests.sheet; + +import com.sun.star.beans.XPropertySet; +import com.sun.star.container.XIndexAccess; +import com.sun.star.container.XNamed; +import com.sun.star.sheet.DataPilotFieldOrientation; +import com.sun.star.sheet.XDataPilotDescriptor; +import com.sun.star.table.CellRangeAddress; +import com.sun.star.uno.UnoRuntime; +import lib.MultiMethodTest; +import lib.Status; +//import lib.StatusException; +import lib.TestParameters; +import share.LogWriter; + +/** +* Testing <code>com.sun.star.sheet.XDataPilotDescriptor</code> +* interface methods : +* <ul> +* <li><code> getTag()</code></li> +* <li><code> setTag()</code></li> +* <li><code> getSourceRange()</code></li> +* <li><code> setSourceRange()</code></li> +* <li><code> getFilterDescriptor()</code></li> +* <li><code> getDataPilotFields()</code></li> +* <li><code> getColumnFields()</code></li> +* <li><code> getRowFields()</code></li> +* <li><code> getPageFields()</code></li> +* <li><code> getDataFields()</code></li> +* <li><code> getHiddenFields()</code></li> +* </ul> <p> +* This test needs the following object relations : +* <ul> +* <li> <code>'FIELDSAMOUNT'</code> (of type <code>Integer</code>): +* to have number of fields </li> +* <ul> <p> +* @see com.sun.star.sheet.XDataPilotDescriptor +*/ +public class _XDataPilotDescriptor { + + public XDataPilotDescriptor oObj = null; + CellRangeAddress CRA = new CellRangeAddress((short)1, 0, 0, 5, 5); + CellRangeAddress oldCRA = null ; + String sTag = new String ("XDataPilotDescriptor_Tag"); + String fieldsNames[]; + int fieldsAmount = 0; + int tEnvFieldsAmount = 0; + + /** + * The test parameters + */ + private TestParameters param = null; + + /** + * The log writer + */ + private LogWriter log = null; + + /** + * Constructor: gets the object to test, a logger and the test parameters + * @param xObj The test object + * @param log A log writer + * @param param The test parameters + */ + public _XDataPilotDescriptor(XDataPilotDescriptor xObj, + LogWriter log, TestParameters param) { + oObj = xObj; + this.log = log; + this.param = param; + } + + /** + * Retrieves object relations. + * @throws StatusException If one of relations not found. + */ + public boolean before() { + Integer amount = (Integer)param.get("FIELDSAMOUNT"); + if (amount == null) { + log.println("Relation 'FIELDSAMOUNT' not found"); + return false; + } + tEnvFieldsAmount = amount.intValue(); + return true; + } + + /** + * Test calls the method and compares returned value with value that was set + * in method <code>setSourceRange()</code>. <p> + * Has <b> OK </b> status if all fields of cell range addresses are equal. <p> + * The following method tests are to be completed successfully before : + * <ul> + * <li> <code> setSourceRange() </code> : to have current source range </li> + * </ul> + */ + public boolean _getSourceRange(){ +// requiredMethod("setSourceRange()"); + boolean bResult = true; + + CellRangeAddress objRA = oObj.getSourceRange(); + bResult &= objRA.Sheet == CRA.Sheet; + bResult &= objRA.StartRow == CRA.StartRow; + bResult &= objRA.StartColumn == CRA.StartColumn; + bResult &= objRA.EndRow == CRA.EndRow; + bResult &= objRA.EndColumn == CRA.EndColumn; + + return bResult; + } + + /** + * Test gets the current source range, stores it and sets new source range.<p> + * Has <b> OK </b> status if the method successfully returns. <p> + * The following method tests are to be executed before : + * <ul> + * <li> <code> getColumnFields() </code> </li> + * <li> <code> getRowFields() </code> </li> + * <li> <code> getDataFields() </code> </li> + * <li> <code> getHiddenFields() </code> </li> + * <li> <code> getPageFields() </code> </li> + * </ul> + */ + public boolean _setSourceRange(){ +/* executeMethod("getColumnFields()") ; + executeMethod("getRowFields()") ; + executeMethod("getDataFields()") ; + executeMethod("getHiddenFields()") ; + executeMethod("getPageFields()") ; */ + + oldCRA = oObj.getSourceRange() ; + oObj.setSourceRange(CRA); + + return true; + } + + /** + * Test calls the method and checks returned value with value that was set + * by method <code>setTag()</code>. <p> + * Has <b> OK </b> status if returned value is equal to value that was set + * by method <code>setTag()</code>. <p> + * The following method tests are to be completed successfully before : + * <ul> + * <li> <code> setTag() </code> : to have current tag </li> + * </ul> + */ + public boolean _getTag(){ +// requiredMethod("setTag()"); + boolean bResult = true; + + String objTag = oObj.getTag(); + bResult &= objTag.equals(sTag); + + return bResult; + } + + /** + * Test just calls the method. <p> + * Has <b> OK </b> status if the method successfully returns. <p> + */ + public boolean _setTag(){ + oObj.setTag(sTag); + return true; + } + + /** + * Test calls the method , checks returned value, compares + * number of fields goten from returned value and obtained by object + * relation <code>'FIELDSAMOUNT'</code> and set property + * <code>Orientation</code> to one of DataPilotFieldOrientation values. <p> + * Has <b> OK </b> status if returned value isn't null, number of fields + * goten from returned value is less than number of fields obtained by relation + * and no exceptions were thrown. <p> + */ + public boolean _getDataPilotFields(){ + boolean bResult = true; + XIndexAccess IA = null; + + IA = oObj.getDataPilotFields(); + if (IA == null) { + log.println("Returned value is null."); + return false; + } else {log.println("getDataPilotFields returned not Null value -- OK");} + + fieldsAmount = IA.getCount(); + if (fieldsAmount < tEnvFieldsAmount) { + log.println("Number of fields is less than number goten by relation."); + return false; + } else {log.println("count of returned fields -- OK");} + + fieldsNames = new String[tEnvFieldsAmount]; + int i = -1 ; + int cnt = 0 ; + while (++i < fieldsAmount) { + Object field; + try { + field = IA.getByIndex(i); + } catch(com.sun.star.lang.WrappedTargetException e) { + e.printStackTrace((java.io.PrintWriter)log); + return false; + } catch(com.sun.star.lang.IndexOutOfBoundsException e) { + e.printStackTrace((java.io.PrintWriter)log); + return false; + } + + XNamed named = (XNamed) + UnoRuntime.queryInterface(XNamed.class, field); + String name = named.getName(); + + log.println("Field : '" + name + "' ... ") ; + + if (!name.equals("Data")) { + + fieldsNames[cnt] = name ; + + XPropertySet props = (XPropertySet) + UnoRuntime.queryInterface(XPropertySet.class, field); + + try { + switch (cnt % 5) { + case 0 : + props.setPropertyValue("Orientation", + DataPilotFieldOrientation.COLUMN); + log.println(" Column") ; + break; + case 1 : + props.setPropertyValue("Orientation", + DataPilotFieldOrientation.ROW); + log.println(" Row") ; + break; + case 2 : + props.setPropertyValue("Orientation", + DataPilotFieldOrientation.DATA); + log.println(" Data") ; + break; + case 3 : + props.setPropertyValue("Orientation", + DataPilotFieldOrientation.HIDDEN); + log.println(" Hidden") ; + break; + case 4 : + props.setPropertyValue("Orientation", + DataPilotFieldOrientation.PAGE); + log.println(" Page") ; + props.setPropertyValue("CurrentPage", "20"); + break; + } } catch (com.sun.star.lang.WrappedTargetException e) { + e.printStackTrace((java.io.PrintWriter)log); + return false; + } catch (com.sun.star.lang.IllegalArgumentException e) { + e.printStackTrace((java.io.PrintWriter)log); + return false; + } catch (com.sun.star.beans.PropertyVetoException e) { + e.printStackTrace((java.io.PrintWriter)log); + return false; + } catch (com.sun.star.beans.UnknownPropertyException e) { + e.printStackTrace((java.io.PrintWriter)log); + return false; + } + if (++cnt > 4) break; + } else { + return false; + } + } + + return bResult; + } + + /** + * Test calls the method and checks returned collection using the method + * <code>CheckNames()</code>. <p> + * Has <b> OK </b> status if the method <code>CheckNames()</code> returns true + * and no exceptions were thrown. <p> + * The following method tests are to be completed successfully before : + * <ul> + * <li> <code> getDataPilotFields() </code> : to have array of field names </li> + * </ul> + */ + public boolean _getColumnFields(){ +// requiredMethod("getDataPilotFields()"); + log.println("getColumnFields") ; + XIndexAccess IA = oObj.getColumnFields(); + return CheckNames(IA, 0); + } + + /** + * Test calls the method and checks returned collection using the method + * <code>CheckNames()</code>. <p> + * Has <b> OK </b> status if the method <code>CheckNames()</code> returned true + * and no exceptions were thrown. <p> + * The following method tests are to be completed successfully before : + * <ul> + * <li> <code> getDataPilotFields() </code> : to have array of field names </li> + * </ul> + */ + public boolean _getDataFields(){ +// requiredMethod("getDataPilotFields()"); + log.println("getDataFields") ; + XIndexAccess IA = oObj.getDataFields(); + return CheckNames(IA, 2); + } + + /** + * Test calls the method and checks returned collection using the method + * <code>CheckNames()</code>. <p> + * Has <b> OK </b> status if the method <code>CheckNames()</code> returned true + * and no exceptions were thrown. <p> + * The following method tests are to be completed successfully before : + * <ul> + * <li> <code> getDataPilotFields() </code> : to have array of field names </li> + * </ul> + */ + public boolean _getHiddenFields(){ +// requiredMethod("getDataPilotFields()"); + log.println("getHiddenFields") ; + XIndexAccess IA = oObj.getHiddenFields(); + return CheckNames(IA, 3); + } + + /** + * Test calls the method and checks returned collection using the method + * <code>CheckNames()</code>. <p> + * Has <b> OK </b> status if the method <code>CheckNames()</code> returned true + * and no exceptions were thrown. <p> + * The following method tests are to be completed successfully before : + * <ul> + * <li> <code> getDataPilotFields() </code> : to have array of field names </li> + * </ul> + */ + public boolean _getRowFields(){ +// requiredMethod("getDataPilotFields()"); + log.println("getRowFields") ; + XIndexAccess IA = oObj.getRowFields(); + boolean bResult = CheckNames(IA, 1); + return bResult; + } + + /** + * setting of PageFields isn't supported by StarOffice Calc + * Has <b> OK </b> status if the returned IndexAccess + * isn't NULL. <p> + * The following method tests are to be completed successfully before : + * <ul> + * <li> <code> getDataPilotFields() </code> : to have array of field names </li> + * </ul> + */ + public boolean _getPageFields(){ +// requiredMethod("getDataPilotFields()"); + log.println("getPageFields") ; + XIndexAccess IA = oObj.getPageFields(); + boolean bResult = CheckNames(IA, 4); + return bResult; + } + + /** + * Test calls the method and checks returned value. <p> + * Has <b> OK </b> status if returned value isn't null + * and no exceptions were thrown. <p> + */ + public boolean _getFilterDescriptor(){ + boolean bResult = oObj.getFilterDescriptor() != null; + return bResult; + } + + /** + * Method checks that the field with index <code>rem</code> exists + * in the array <code>IA</code>. + * @param IA collection of elements that support interface <code>XNamed</code> + * @param rem index of field in the array of field names that was stored in + * the method <code>getDataPilotFields()</code> + * @return true if required field name exists in passed collection; + * false otherwise + * @see com.sun.star.container.XNamed + */ + boolean CheckNames(XIndexAccess IA, int rem) { + String name = null; + + if (IA == null) { + log.println("Null retruned.") ; + return false ; + } + + if (fieldsNames[rem] == null) { + log.println("No fields were set to this orientation - cann't check result") ; + return true ; + } + + if (IA.getCount() == 0) { + log.println("No fields found. Must be at least '" + + fieldsNames[rem] + "'") ; + return false ; + } + + try { + log.println("Fields returned ") ; + for (int i = 0; i < IA.getCount(); i++) { + Object field = IA.getByIndex(i); + XNamed named = (XNamed)UnoRuntime.queryInterface + (XNamed.class, field); + name = named.getName(); + log.println(" " + name) ; + if (fieldsNames[rem].equals(name)) { + log.println(" - OK") ; + return true ; + } + } + } catch (com.sun.star.lang.WrappedTargetException e) { + e.printStackTrace((java.io.PrintWriter)log); + return false ; + } catch (com.sun.star.lang.IndexOutOfBoundsException e) { + e.printStackTrace((java.io.PrintWriter)log); + return false ; + } + log.println(" - FAILED (field " + fieldsNames[rem] + " was not found.") ; + return false ; + } + + /** + * Recreates object(to back old orientations of the fields). + * + protected void after() { + disposeEnvironment(); + }*/ +} + |