1*b1cdbd2cSJim Jagielski /************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim Jagielski package ifc.sheet; 25*b1cdbd2cSJim Jagielski 26*b1cdbd2cSJim Jagielski import lib.MultiMethodTest; 27*b1cdbd2cSJim Jagielski import lib.Status; 28*b1cdbd2cSJim Jagielski import lib.StatusException; 29*b1cdbd2cSJim Jagielski 30*b1cdbd2cSJim Jagielski import com.sun.star.beans.XPropertySet; 31*b1cdbd2cSJim Jagielski import com.sun.star.container.XIndexAccess; 32*b1cdbd2cSJim Jagielski import com.sun.star.container.XNamed; 33*b1cdbd2cSJim Jagielski import com.sun.star.sheet.DataPilotFieldOrientation; 34*b1cdbd2cSJim Jagielski import com.sun.star.sheet.XDataPilotDescriptor; 35*b1cdbd2cSJim Jagielski import com.sun.star.table.CellRangeAddress; 36*b1cdbd2cSJim Jagielski import com.sun.star.uno.UnoRuntime; 37*b1cdbd2cSJim Jagielski 38*b1cdbd2cSJim Jagielski /** 39*b1cdbd2cSJim Jagielski * Testing <code>com.sun.star.sheet.XDataPilotDescriptor</code> 40*b1cdbd2cSJim Jagielski * interface methods : 41*b1cdbd2cSJim Jagielski * <ul> 42*b1cdbd2cSJim Jagielski * <li><code> getTag()</code></li> 43*b1cdbd2cSJim Jagielski * <li><code> setTag()</code></li> 44*b1cdbd2cSJim Jagielski * <li><code> getSourceRange()</code></li> 45*b1cdbd2cSJim Jagielski * <li><code> setSourceRange()</code></li> 46*b1cdbd2cSJim Jagielski * <li><code> getFilterDescriptor()</code></li> 47*b1cdbd2cSJim Jagielski * <li><code> getDataPilotFields()</code></li> 48*b1cdbd2cSJim Jagielski * <li><code> getColumnFields()</code></li> 49*b1cdbd2cSJim Jagielski * <li><code> getRowFields()</code></li> 50*b1cdbd2cSJim Jagielski * <li><code> getPageFields()</code></li> 51*b1cdbd2cSJim Jagielski * <li><code> getDataFields()</code></li> 52*b1cdbd2cSJim Jagielski * <li><code> getHiddenFields()</code></li> 53*b1cdbd2cSJim Jagielski * </ul> <p> 54*b1cdbd2cSJim Jagielski * This test needs the following object relations : 55*b1cdbd2cSJim Jagielski * <ul> 56*b1cdbd2cSJim Jagielski * <li> <code>'FIELDSAMOUNT'</code> (of type <code>Integer</code>): 57*b1cdbd2cSJim Jagielski * to have number of fields </li> 58*b1cdbd2cSJim Jagielski * <ul> <p> 59*b1cdbd2cSJim Jagielski * @see com.sun.star.sheet.XDataPilotDescriptor 60*b1cdbd2cSJim Jagielski */ 61*b1cdbd2cSJim Jagielski public class _XDataPilotDescriptor extends MultiMethodTest { 62*b1cdbd2cSJim Jagielski 63*b1cdbd2cSJim Jagielski public XDataPilotDescriptor oObj = null; 64*b1cdbd2cSJim Jagielski CellRangeAddress CRA = new CellRangeAddress((short)1, 1, 1, 5, 5); 65*b1cdbd2cSJim Jagielski CellRangeAddress oldCRA = null ; 66*b1cdbd2cSJim Jagielski String sTag = new String ("XDataPilotDescriptor_Tag"); 67*b1cdbd2cSJim Jagielski String fieldsNames[]; 68*b1cdbd2cSJim Jagielski int fieldsAmount = 0; 69*b1cdbd2cSJim Jagielski int tEnvFieldsAmount = 0; 70*b1cdbd2cSJim Jagielski 71*b1cdbd2cSJim Jagielski /** 72*b1cdbd2cSJim Jagielski * Retrieves object relations. 73*b1cdbd2cSJim Jagielski * @throws StatusException If one of relations not found. 74*b1cdbd2cSJim Jagielski */ before()75*b1cdbd2cSJim Jagielski protected void before() { 76*b1cdbd2cSJim Jagielski Integer amount = (Integer)tEnv.getObjRelation("FIELDSAMOUNT"); 77*b1cdbd2cSJim Jagielski if (amount == null) throw new StatusException(Status.failed 78*b1cdbd2cSJim Jagielski ("Relation 'FIELDSAMOUNT' not found")); 79*b1cdbd2cSJim Jagielski tEnvFieldsAmount = amount.intValue(); 80*b1cdbd2cSJim Jagielski } 81*b1cdbd2cSJim Jagielski 82*b1cdbd2cSJim Jagielski /** 83*b1cdbd2cSJim Jagielski * Test calls the method and compares returned value with value that was set 84*b1cdbd2cSJim Jagielski * in method <code>setSourceRange()</code>. <p> 85*b1cdbd2cSJim Jagielski * Has <b> OK </b> status if all fields of cell range addresses are equal. <p> 86*b1cdbd2cSJim Jagielski * The following method tests are to be completed successfully before : 87*b1cdbd2cSJim Jagielski * <ul> 88*b1cdbd2cSJim Jagielski * <li> <code> setSourceRange() </code> : to have current source range </li> 89*b1cdbd2cSJim Jagielski * </ul> 90*b1cdbd2cSJim Jagielski */ _getSourceRange()91*b1cdbd2cSJim Jagielski public void _getSourceRange(){ 92*b1cdbd2cSJim Jagielski requiredMethod("setSourceRange()"); 93*b1cdbd2cSJim Jagielski boolean bResult = true; 94*b1cdbd2cSJim Jagielski 95*b1cdbd2cSJim Jagielski CellRangeAddress objRA = oObj.getSourceRange(); 96*b1cdbd2cSJim Jagielski bResult &= objRA.Sheet == CRA.Sheet; 97*b1cdbd2cSJim Jagielski bResult &= objRA.StartRow == CRA.StartRow; 98*b1cdbd2cSJim Jagielski bResult &= objRA.StartColumn == CRA.StartColumn; 99*b1cdbd2cSJim Jagielski bResult &= objRA.EndRow == CRA.EndRow; 100*b1cdbd2cSJim Jagielski bResult &= objRA.EndColumn == CRA.EndColumn; 101*b1cdbd2cSJim Jagielski 102*b1cdbd2cSJim Jagielski tRes.tested("getSourceRange()", bResult); 103*b1cdbd2cSJim Jagielski } 104*b1cdbd2cSJim Jagielski 105*b1cdbd2cSJim Jagielski /** 106*b1cdbd2cSJim Jagielski * Test gets the current source range, stores it and sets new source range.<p> 107*b1cdbd2cSJim Jagielski * Has <b> OK </b> status if the method successfully returns. <p> 108*b1cdbd2cSJim Jagielski * The following method tests are to be executed before : 109*b1cdbd2cSJim Jagielski * <ul> 110*b1cdbd2cSJim Jagielski * <li> <code> getColumnFields() </code> </li> 111*b1cdbd2cSJim Jagielski * <li> <code> getRowFields() </code> </li> 112*b1cdbd2cSJim Jagielski * <li> <code> getDataFields() </code> </li> 113*b1cdbd2cSJim Jagielski * <li> <code> getHiddenFields() </code> </li> 114*b1cdbd2cSJim Jagielski * <li> <code> getPageFields() </code> </li> 115*b1cdbd2cSJim Jagielski * </ul> 116*b1cdbd2cSJim Jagielski */ _setSourceRange()117*b1cdbd2cSJim Jagielski public void _setSourceRange(){ 118*b1cdbd2cSJim Jagielski executeMethod("getColumnFields()") ; 119*b1cdbd2cSJim Jagielski executeMethod("getRowFields()") ; 120*b1cdbd2cSJim Jagielski executeMethod("getDataFields()") ; 121*b1cdbd2cSJim Jagielski executeMethod("getHiddenFields()") ; 122*b1cdbd2cSJim Jagielski executeMethod("getPageFields()") ; 123*b1cdbd2cSJim Jagielski 124*b1cdbd2cSJim Jagielski oldCRA = oObj.getSourceRange() ; 125*b1cdbd2cSJim Jagielski oObj.setSourceRange(CRA); 126*b1cdbd2cSJim Jagielski 127*b1cdbd2cSJim Jagielski tRes.tested("setSourceRange()", true); 128*b1cdbd2cSJim Jagielski } 129*b1cdbd2cSJim Jagielski 130*b1cdbd2cSJim Jagielski /** 131*b1cdbd2cSJim Jagielski * Test calls the method and checks returned value with value that was set 132*b1cdbd2cSJim Jagielski * by method <code>setTag()</code>. <p> 133*b1cdbd2cSJim Jagielski * Has <b> OK </b> status if returned value is equal to value that was set 134*b1cdbd2cSJim Jagielski * by method <code>setTag()</code>. <p> 135*b1cdbd2cSJim Jagielski * The following method tests are to be completed successfully before : 136*b1cdbd2cSJim Jagielski * <ul> 137*b1cdbd2cSJim Jagielski * <li> <code> setTag() </code> : to have current tag </li> 138*b1cdbd2cSJim Jagielski * </ul> 139*b1cdbd2cSJim Jagielski */ _getTag()140*b1cdbd2cSJim Jagielski public void _getTag(){ 141*b1cdbd2cSJim Jagielski requiredMethod("setTag()"); 142*b1cdbd2cSJim Jagielski boolean bResult = true; 143*b1cdbd2cSJim Jagielski 144*b1cdbd2cSJim Jagielski String objTag = oObj.getTag(); 145*b1cdbd2cSJim Jagielski bResult &= objTag.equals(sTag); 146*b1cdbd2cSJim Jagielski 147*b1cdbd2cSJim Jagielski tRes.tested("getTag()", bResult); 148*b1cdbd2cSJim Jagielski } 149*b1cdbd2cSJim Jagielski 150*b1cdbd2cSJim Jagielski /** 151*b1cdbd2cSJim Jagielski * Test just calls the method. <p> 152*b1cdbd2cSJim Jagielski * Has <b> OK </b> status if the method successfully returns. <p> 153*b1cdbd2cSJim Jagielski */ _setTag()154*b1cdbd2cSJim Jagielski public void _setTag(){ 155*b1cdbd2cSJim Jagielski oObj.setTag(sTag); 156*b1cdbd2cSJim Jagielski tRes.tested("setTag()", true); 157*b1cdbd2cSJim Jagielski } 158*b1cdbd2cSJim Jagielski 159*b1cdbd2cSJim Jagielski /** 160*b1cdbd2cSJim Jagielski * Test calls the method , checks returned value, compares 161*b1cdbd2cSJim Jagielski * number of fields goten from returned value and obtained by object 162*b1cdbd2cSJim Jagielski * relation <code>'FIELDSAMOUNT'</code> and set property 163*b1cdbd2cSJim Jagielski * <code>Orientation</code> to one of DataPilotFieldOrientation values. <p> 164*b1cdbd2cSJim Jagielski * Has <b> OK </b> status if returned value isn't null, number of fields 165*b1cdbd2cSJim Jagielski * goten from returned value is less than number of fields obtained by relation 166*b1cdbd2cSJim Jagielski * and no exceptions were thrown. <p> 167*b1cdbd2cSJim Jagielski */ _getDataPilotFields()168*b1cdbd2cSJim Jagielski public void _getDataPilotFields(){ 169*b1cdbd2cSJim Jagielski boolean bResult = true; 170*b1cdbd2cSJim Jagielski XIndexAccess IA = null; 171*b1cdbd2cSJim Jagielski 172*b1cdbd2cSJim Jagielski IA = oObj.getDataPilotFields(); 173*b1cdbd2cSJim Jagielski if (IA == null) { 174*b1cdbd2cSJim Jagielski log.println("Returned value is null."); 175*b1cdbd2cSJim Jagielski tRes.tested("getDataPilotFields()", false); 176*b1cdbd2cSJim Jagielski return; 177*b1cdbd2cSJim Jagielski } else {log.println("getDataPilotFields returned not Null value -- OK");} 178*b1cdbd2cSJim Jagielski 179*b1cdbd2cSJim Jagielski fieldsAmount = IA.getCount(); 180*b1cdbd2cSJim Jagielski if (fieldsAmount < tEnvFieldsAmount) { 181*b1cdbd2cSJim Jagielski log.println("Number of fields is less than number goten by relation."); 182*b1cdbd2cSJim Jagielski tRes.tested("getDataPilotFields()", false); 183*b1cdbd2cSJim Jagielski return; 184*b1cdbd2cSJim Jagielski } else {log.println("count of returned fields -- OK");} 185*b1cdbd2cSJim Jagielski 186*b1cdbd2cSJim Jagielski fieldsNames = new String[tEnvFieldsAmount]; 187*b1cdbd2cSJim Jagielski int i = -1 ; 188*b1cdbd2cSJim Jagielski int cnt = 0 ; 189*b1cdbd2cSJim Jagielski while (++i < fieldsAmount) { 190*b1cdbd2cSJim Jagielski Object field; 191*b1cdbd2cSJim Jagielski try { 192*b1cdbd2cSJim Jagielski field = IA.getByIndex(i); 193*b1cdbd2cSJim Jagielski } catch(com.sun.star.lang.WrappedTargetException e) { 194*b1cdbd2cSJim Jagielski e.printStackTrace(log); 195*b1cdbd2cSJim Jagielski tRes.tested("getDataPilotFields()", false); 196*b1cdbd2cSJim Jagielski return; 197*b1cdbd2cSJim Jagielski } catch(com.sun.star.lang.IndexOutOfBoundsException e) { 198*b1cdbd2cSJim Jagielski e.printStackTrace(log); 199*b1cdbd2cSJim Jagielski tRes.tested("getDataPilotFields()", false); 200*b1cdbd2cSJim Jagielski return; 201*b1cdbd2cSJim Jagielski } 202*b1cdbd2cSJim Jagielski 203*b1cdbd2cSJim Jagielski XNamed named = (XNamed) 204*b1cdbd2cSJim Jagielski UnoRuntime.queryInterface(XNamed.class, field); 205*b1cdbd2cSJim Jagielski String name = named.getName(); 206*b1cdbd2cSJim Jagielski 207*b1cdbd2cSJim Jagielski log.print("Field : '" + name + "' ... ") ; 208*b1cdbd2cSJim Jagielski 209*b1cdbd2cSJim Jagielski if (!name.equals("Data")) { 210*b1cdbd2cSJim Jagielski 211*b1cdbd2cSJim Jagielski fieldsNames[cnt] = name ; 212*b1cdbd2cSJim Jagielski 213*b1cdbd2cSJim Jagielski XPropertySet props = (XPropertySet) 214*b1cdbd2cSJim Jagielski UnoRuntime.queryInterface(XPropertySet.class, field); 215*b1cdbd2cSJim Jagielski 216*b1cdbd2cSJim Jagielski try { 217*b1cdbd2cSJim Jagielski switch (cnt % 5) { 218*b1cdbd2cSJim Jagielski case 0 : 219*b1cdbd2cSJim Jagielski props.setPropertyValue("Orientation", 220*b1cdbd2cSJim Jagielski DataPilotFieldOrientation.COLUMN); 221*b1cdbd2cSJim Jagielski log.println(" Column") ; 222*b1cdbd2cSJim Jagielski break; 223*b1cdbd2cSJim Jagielski case 1 : 224*b1cdbd2cSJim Jagielski props.setPropertyValue("Orientation", 225*b1cdbd2cSJim Jagielski DataPilotFieldOrientation.ROW); 226*b1cdbd2cSJim Jagielski log.println(" Row") ; 227*b1cdbd2cSJim Jagielski break; 228*b1cdbd2cSJim Jagielski case 2 : 229*b1cdbd2cSJim Jagielski props.setPropertyValue("Orientation", 230*b1cdbd2cSJim Jagielski DataPilotFieldOrientation.DATA); 231*b1cdbd2cSJim Jagielski log.println(" Data") ; 232*b1cdbd2cSJim Jagielski break; 233*b1cdbd2cSJim Jagielski case 3 : 234*b1cdbd2cSJim Jagielski props.setPropertyValue("Orientation", 235*b1cdbd2cSJim Jagielski DataPilotFieldOrientation.HIDDEN); 236*b1cdbd2cSJim Jagielski log.println(" Hidden") ; 237*b1cdbd2cSJim Jagielski break; 238*b1cdbd2cSJim Jagielski case 4 : 239*b1cdbd2cSJim Jagielski props.setPropertyValue("Orientation", 240*b1cdbd2cSJim Jagielski DataPilotFieldOrientation.PAGE); 241*b1cdbd2cSJim Jagielski log.println(" Page") ; 242*b1cdbd2cSJim Jagielski break; 243*b1cdbd2cSJim Jagielski } } catch (com.sun.star.lang.WrappedTargetException e) { 244*b1cdbd2cSJim Jagielski e.printStackTrace(log); 245*b1cdbd2cSJim Jagielski tRes.tested("getDataPilotFields()", false); 246*b1cdbd2cSJim Jagielski return; 247*b1cdbd2cSJim Jagielski } catch (com.sun.star.lang.IllegalArgumentException e) { 248*b1cdbd2cSJim Jagielski e.printStackTrace(log); 249*b1cdbd2cSJim Jagielski tRes.tested("getDataPilotFields()", false); 250*b1cdbd2cSJim Jagielski return; 251*b1cdbd2cSJim Jagielski } catch (com.sun.star.beans.PropertyVetoException e) { 252*b1cdbd2cSJim Jagielski e.printStackTrace(log); 253*b1cdbd2cSJim Jagielski tRes.tested("getDataPilotFields()", false); 254*b1cdbd2cSJim Jagielski return; 255*b1cdbd2cSJim Jagielski } catch (com.sun.star.beans.UnknownPropertyException e) { 256*b1cdbd2cSJim Jagielski e.printStackTrace(log); 257*b1cdbd2cSJim Jagielski tRes.tested("getDataPilotFields()", false); 258*b1cdbd2cSJim Jagielski return; 259*b1cdbd2cSJim Jagielski } 260*b1cdbd2cSJim Jagielski if (++cnt > 4) break; 261*b1cdbd2cSJim Jagielski } else { 262*b1cdbd2cSJim Jagielski tRes.tested("getDataPilotFields()", false); 263*b1cdbd2cSJim Jagielski return; 264*b1cdbd2cSJim Jagielski } 265*b1cdbd2cSJim Jagielski } 266*b1cdbd2cSJim Jagielski 267*b1cdbd2cSJim Jagielski tRes.tested("getDataPilotFields()", bResult); 268*b1cdbd2cSJim Jagielski } 269*b1cdbd2cSJim Jagielski 270*b1cdbd2cSJim Jagielski /** 271*b1cdbd2cSJim Jagielski * Test calls the method and checks returned collection using the method 272*b1cdbd2cSJim Jagielski * <code>CheckNames()</code>. <p> 273*b1cdbd2cSJim Jagielski * Has <b> OK </b> status if the method <code>CheckNames()</code> returns true 274*b1cdbd2cSJim Jagielski * and no exceptions were thrown. <p> 275*b1cdbd2cSJim Jagielski * The following method tests are to be completed successfully before : 276*b1cdbd2cSJim Jagielski * <ul> 277*b1cdbd2cSJim Jagielski * <li> <code> getDataPilotFields() </code> : to have array of field names </li> 278*b1cdbd2cSJim Jagielski * </ul> 279*b1cdbd2cSJim Jagielski */ _getColumnFields()280*b1cdbd2cSJim Jagielski public void _getColumnFields(){ 281*b1cdbd2cSJim Jagielski requiredMethod("getDataPilotFields()"); 282*b1cdbd2cSJim Jagielski XIndexAccess IA = oObj.getColumnFields(); 283*b1cdbd2cSJim Jagielski boolean bResult = CheckNames(IA, 0); 284*b1cdbd2cSJim Jagielski tRes.tested("getColumnFields()", bResult); 285*b1cdbd2cSJim Jagielski } 286*b1cdbd2cSJim Jagielski 287*b1cdbd2cSJim Jagielski /** 288*b1cdbd2cSJim Jagielski * Test calls the method and checks returned collection using the method 289*b1cdbd2cSJim Jagielski * <code>CheckNames()</code>. <p> 290*b1cdbd2cSJim Jagielski * Has <b> OK </b> status if the method <code>CheckNames()</code> returned true 291*b1cdbd2cSJim Jagielski * and no exceptions were thrown. <p> 292*b1cdbd2cSJim Jagielski * The following method tests are to be completed successfully before : 293*b1cdbd2cSJim Jagielski * <ul> 294*b1cdbd2cSJim Jagielski * <li> <code> getDataPilotFields() </code> : to have array of field names </li> 295*b1cdbd2cSJim Jagielski * </ul> 296*b1cdbd2cSJim Jagielski */ _getDataFields()297*b1cdbd2cSJim Jagielski public void _getDataFields(){ 298*b1cdbd2cSJim Jagielski requiredMethod("getDataPilotFields()"); 299*b1cdbd2cSJim Jagielski XIndexAccess IA = oObj.getDataFields(); 300*b1cdbd2cSJim Jagielski boolean bResult = CheckNames(IA, 2); 301*b1cdbd2cSJim Jagielski tRes.tested("getDataFields()", bResult); 302*b1cdbd2cSJim Jagielski } 303*b1cdbd2cSJim Jagielski 304*b1cdbd2cSJim Jagielski /** 305*b1cdbd2cSJim Jagielski * Test calls the method and checks returned collection using the method 306*b1cdbd2cSJim Jagielski * <code>CheckNames()</code>. <p> 307*b1cdbd2cSJim Jagielski * Has <b> OK </b> status if the method <code>CheckNames()</code> returned true 308*b1cdbd2cSJim Jagielski * and no exceptions were thrown. <p> 309*b1cdbd2cSJim Jagielski * The following method tests are to be completed successfully before : 310*b1cdbd2cSJim Jagielski * <ul> 311*b1cdbd2cSJim Jagielski * <li> <code> getDataPilotFields() </code> : to have array of field names </li> 312*b1cdbd2cSJim Jagielski * </ul> 313*b1cdbd2cSJim Jagielski */ _getHiddenFields()314*b1cdbd2cSJim Jagielski public void _getHiddenFields(){ 315*b1cdbd2cSJim Jagielski requiredMethod("getDataPilotFields()"); 316*b1cdbd2cSJim Jagielski XIndexAccess IA = oObj.getHiddenFields(); 317*b1cdbd2cSJim Jagielski boolean bResult = CheckNames(IA, 3); 318*b1cdbd2cSJim Jagielski tRes.tested("getHiddenFields()", bResult); 319*b1cdbd2cSJim Jagielski } 320*b1cdbd2cSJim Jagielski 321*b1cdbd2cSJim Jagielski /** 322*b1cdbd2cSJim Jagielski * Test calls the method and checks returned collection using the method 323*b1cdbd2cSJim Jagielski * <code>CheckNames()</code>. <p> 324*b1cdbd2cSJim Jagielski * Has <b> OK </b> status if the method <code>CheckNames()</code> returned true 325*b1cdbd2cSJim Jagielski * and no exceptions were thrown. <p> 326*b1cdbd2cSJim Jagielski * The following method tests are to be completed successfully before : 327*b1cdbd2cSJim Jagielski * <ul> 328*b1cdbd2cSJim Jagielski * <li> <code> getDataPilotFields() </code> : to have array of field names </li> 329*b1cdbd2cSJim Jagielski * </ul> 330*b1cdbd2cSJim Jagielski */ _getRowFields()331*b1cdbd2cSJim Jagielski public void _getRowFields(){ 332*b1cdbd2cSJim Jagielski requiredMethod("getDataPilotFields()"); 333*b1cdbd2cSJim Jagielski XIndexAccess IA = oObj.getRowFields(); 334*b1cdbd2cSJim Jagielski boolean bResult = CheckNames(IA, 1); 335*b1cdbd2cSJim Jagielski tRes.tested("getRowFields()", bResult); 336*b1cdbd2cSJim Jagielski } 337*b1cdbd2cSJim Jagielski 338*b1cdbd2cSJim Jagielski /** 339*b1cdbd2cSJim Jagielski * setting of PageFields isn't supported by StarOffice Calc 340*b1cdbd2cSJim Jagielski * Has <b> OK </b> status if the returned IndexAccess 341*b1cdbd2cSJim Jagielski * isn't NULL. <p> 342*b1cdbd2cSJim Jagielski * The following method tests are to be completed successfully before : 343*b1cdbd2cSJim Jagielski * <ul> 344*b1cdbd2cSJim Jagielski * <li> <code> getDataPilotFields() </code> : to have array of field names </li> 345*b1cdbd2cSJim Jagielski * </ul> 346*b1cdbd2cSJim Jagielski */ _getPageFields()347*b1cdbd2cSJim Jagielski public void _getPageFields(){ 348*b1cdbd2cSJim Jagielski requiredMethod("getDataPilotFields()"); 349*b1cdbd2cSJim Jagielski XIndexAccess IA = oObj.getPageFields(); 350*b1cdbd2cSJim Jagielski boolean bResult = (IA != null); 351*b1cdbd2cSJim Jagielski // boolean bResult = CheckNames(IA, 4); 352*b1cdbd2cSJim Jagielski tRes.tested("getPageFields()", bResult); 353*b1cdbd2cSJim Jagielski } 354*b1cdbd2cSJim Jagielski 355*b1cdbd2cSJim Jagielski /** 356*b1cdbd2cSJim Jagielski * Test calls the method and checks returned value. <p> 357*b1cdbd2cSJim Jagielski * Has <b> OK </b> status if returned value isn't null 358*b1cdbd2cSJim Jagielski * and no exceptions were thrown. <p> 359*b1cdbd2cSJim Jagielski */ _getFilterDescriptor()360*b1cdbd2cSJim Jagielski public void _getFilterDescriptor(){ 361*b1cdbd2cSJim Jagielski boolean bResult = oObj.getFilterDescriptor() != null; 362*b1cdbd2cSJim Jagielski tRes.tested("getFilterDescriptor()", bResult); 363*b1cdbd2cSJim Jagielski } 364*b1cdbd2cSJim Jagielski 365*b1cdbd2cSJim Jagielski /** 366*b1cdbd2cSJim Jagielski * Method checks that the field with index <code>rem</code> exists 367*b1cdbd2cSJim Jagielski * in the array <code>IA</code>. 368*b1cdbd2cSJim Jagielski * @param IA collection of elements that support interface <code>XNamed</code> 369*b1cdbd2cSJim Jagielski * @param rem index of field in the array of field names that was stored in 370*b1cdbd2cSJim Jagielski * the method <code>getDataPilotFields()</code> 371*b1cdbd2cSJim Jagielski * @return true if required field name exists in passed collection; 372*b1cdbd2cSJim Jagielski * false otherwise 373*b1cdbd2cSJim Jagielski * @see com.sun.star.container.XNamed 374*b1cdbd2cSJim Jagielski */ CheckNames(XIndexAccess IA, int rem)375*b1cdbd2cSJim Jagielski boolean CheckNames(XIndexAccess IA, int rem) { 376*b1cdbd2cSJim Jagielski String name = null; 377*b1cdbd2cSJim Jagielski 378*b1cdbd2cSJim Jagielski if (IA == null) { 379*b1cdbd2cSJim Jagielski log.println("Null retruned.") ; 380*b1cdbd2cSJim Jagielski return false ; 381*b1cdbd2cSJim Jagielski } 382*b1cdbd2cSJim Jagielski 383*b1cdbd2cSJim Jagielski if (fieldsNames[rem] == null) { 384*b1cdbd2cSJim Jagielski log.println("No fields were set to this orientation - cann't check result") ; 385*b1cdbd2cSJim Jagielski return true ; 386*b1cdbd2cSJim Jagielski } 387*b1cdbd2cSJim Jagielski 388*b1cdbd2cSJim Jagielski if (IA.getCount() == 0) { 389*b1cdbd2cSJim Jagielski log.println("No fields found. Must be at least '" 390*b1cdbd2cSJim Jagielski + fieldsNames[rem] + "'") ; 391*b1cdbd2cSJim Jagielski return false ; 392*b1cdbd2cSJim Jagielski } 393*b1cdbd2cSJim Jagielski 394*b1cdbd2cSJim Jagielski try { 395*b1cdbd2cSJim Jagielski log.print("Fields returned ") ; 396*b1cdbd2cSJim Jagielski for (int i = 0; i < IA.getCount(); i++) { 397*b1cdbd2cSJim Jagielski Object field = IA.getByIndex(i); 398*b1cdbd2cSJim Jagielski XNamed named = (XNamed)UnoRuntime.queryInterface 399*b1cdbd2cSJim Jagielski (XNamed.class, field); 400*b1cdbd2cSJim Jagielski name = named.getName(); 401*b1cdbd2cSJim Jagielski log.print(" " + name) ; 402*b1cdbd2cSJim Jagielski if (fieldsNames[rem].equals(name)) { 403*b1cdbd2cSJim Jagielski log.println(" - OK") ; 404*b1cdbd2cSJim Jagielski return true ; 405*b1cdbd2cSJim Jagielski } 406*b1cdbd2cSJim Jagielski } 407*b1cdbd2cSJim Jagielski } catch (com.sun.star.lang.WrappedTargetException e) { 408*b1cdbd2cSJim Jagielski e.printStackTrace(log) ; 409*b1cdbd2cSJim Jagielski return false ; 410*b1cdbd2cSJim Jagielski } catch (com.sun.star.lang.IndexOutOfBoundsException e) { 411*b1cdbd2cSJim Jagielski e.printStackTrace(log) ; 412*b1cdbd2cSJim Jagielski return false ; 413*b1cdbd2cSJim Jagielski } 414*b1cdbd2cSJim Jagielski log.println(" - FAILED (field " + fieldsNames[rem] + " was not found.") ; 415*b1cdbd2cSJim Jagielski return false ; 416*b1cdbd2cSJim Jagielski } 417*b1cdbd2cSJim Jagielski 418*b1cdbd2cSJim Jagielski /** 419*b1cdbd2cSJim Jagielski * Recreates object(to back old orientations of the fields). 420*b1cdbd2cSJim Jagielski */ after()421*b1cdbd2cSJim Jagielski protected void after() { 422*b1cdbd2cSJim Jagielski disposeEnvironment(); 423*b1cdbd2cSJim Jagielski } 424*b1cdbd2cSJim Jagielski } 425*b1cdbd2cSJim Jagielski 426