1*cdf0e10cSrcweir /************************************************************************* 2*cdf0e10cSrcweir * 3*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4*cdf0e10cSrcweir * 5*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates. 6*cdf0e10cSrcweir * 7*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite 8*cdf0e10cSrcweir * 9*cdf0e10cSrcweir * This file is part of OpenOffice.org. 10*cdf0e10cSrcweir * 11*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify 12*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3 13*cdf0e10cSrcweir * only, as published by the Free Software Foundation. 14*cdf0e10cSrcweir * 15*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful, 16*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of 17*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details 19*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code). 20*cdf0e10cSrcweir * 21*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License 22*cdf0e10cSrcweir * version 3 along with OpenOffice.org. If not, see 23*cdf0e10cSrcweir * <http://www.openoffice.org/license.html> 24*cdf0e10cSrcweir * for a copy of the LGPLv3 License. 25*cdf0e10cSrcweir * 26*cdf0e10cSrcweir ************************************************************************/ 27*cdf0e10cSrcweir 28*cdf0e10cSrcweir package ifc.container; 29*cdf0e10cSrcweir 30*cdf0e10cSrcweir import lib.MultiMethodTest; 31*cdf0e10cSrcweir 32*cdf0e10cSrcweir import com.sun.star.container.NoSuchElementException; 33*cdf0e10cSrcweir import com.sun.star.container.XNameAccess; 34*cdf0e10cSrcweir 35*cdf0e10cSrcweir /** 36*cdf0e10cSrcweir * Testing <code>com.sun.star.container.XNameAccess</code> interface methods. <p> 37*cdf0e10cSrcweir * Test is <b> NOT </b> multithread compilant. <p> 38*cdf0e10cSrcweir */ 39*cdf0e10cSrcweir public class _XNameAccess extends MultiMethodTest { 40*cdf0e10cSrcweir public XNameAccess oObj = null; 41*cdf0e10cSrcweir public String[] Names = null; 42*cdf0e10cSrcweir 43*cdf0e10cSrcweir /** 44*cdf0e10cSrcweir * Test calls the method and checks return value and that 45*cdf0e10cSrcweir * no exceptions were thrown. <p> 46*cdf0e10cSrcweir * Has <b> OK </b> status if the method successfully returns 47*cdf0e10cSrcweir * not null value and no exceptions were thrown. <p> 48*cdf0e10cSrcweir */ 49*cdf0e10cSrcweir public void _getElementNames() { 50*cdf0e10cSrcweir boolean result = true; 51*cdf0e10cSrcweir log.println("getting elements names"); 52*cdf0e10cSrcweir Names = oObj.getElementNames(); 53*cdf0e10cSrcweir 54*cdf0e10cSrcweir result = (Names != null); 55*cdf0e10cSrcweir tRes.tested("getElementNames()", result); 56*cdf0e10cSrcweir return; 57*cdf0e10cSrcweir } // end getElementNames() 58*cdf0e10cSrcweir 59*cdf0e10cSrcweir /** 60*cdf0e10cSrcweir * First test calls the method with existing element name, 61*cdf0e10cSrcweir * then with non existing. <p> 62*cdf0e10cSrcweir * Has <b> OK </b> status if in the first case the method returns 63*cdf0e10cSrcweir * true and in the second - false. <p> 64*cdf0e10cSrcweir * The following method tests are to be completed successfully before : 65*cdf0e10cSrcweir * <ul> 66*cdf0e10cSrcweir * <li> <code> getElementNames </code> : to retrieve at least one 67*cdf0e10cSrcweir * element name. </li> 68*cdf0e10cSrcweir * </ul> 69*cdf0e10cSrcweir */ 70*cdf0e10cSrcweir public void _hasByName() { 71*cdf0e10cSrcweir requiredMethod("getElementNames()"); 72*cdf0e10cSrcweir log.println("testing hasByName() ..."); 73*cdf0e10cSrcweir 74*cdf0e10cSrcweir boolean result = true; 75*cdf0e10cSrcweir boolean loc_result = true; 76*cdf0e10cSrcweir 77*cdf0e10cSrcweir String name = null; 78*cdf0e10cSrcweir 79*cdf0e10cSrcweir if (Names.length != 0) { 80*cdf0e10cSrcweir name = Names[0]; 81*cdf0e10cSrcweir log.println("testing hasByName() with valid name '" + name + "'"); 82*cdf0e10cSrcweir loc_result = oObj.hasByName(name); 83*cdf0e10cSrcweir log.println("hasByName with valid names: " + loc_result); 84*cdf0e10cSrcweir result &= loc_result; 85*cdf0e10cSrcweir } 86*cdf0e10cSrcweir 87*cdf0e10cSrcweir name = "non_existant_name__1234"; 88*cdf0e10cSrcweir log.println("testing hasByName() with invalid name"); 89*cdf0e10cSrcweir try { 90*cdf0e10cSrcweir loc_result = !oObj.hasByName(name); 91*cdf0e10cSrcweir } catch ( Exception nsee) { 92*cdf0e10cSrcweir log.println("Expected exception was thrown"); 93*cdf0e10cSrcweir } 94*cdf0e10cSrcweir log.println("hasByName with invalid names: " + loc_result); 95*cdf0e10cSrcweir result &= loc_result; 96*cdf0e10cSrcweir 97*cdf0e10cSrcweir tRes.tested("hasByName()", result); 98*cdf0e10cSrcweir 99*cdf0e10cSrcweir return; 100*cdf0e10cSrcweir } // end hasByName() 101*cdf0e10cSrcweir 102*cdf0e10cSrcweir 103*cdf0e10cSrcweir /** 104*cdf0e10cSrcweir * First test calls the method with existing element name, 105*cdf0e10cSrcweir * then with non existing. <p> 106*cdf0e10cSrcweir * Has <b> OK </b> status if in the first case the method returns 107*cdf0e10cSrcweir * not null value and no exceptions were thrown, 108*cdf0e10cSrcweir * and in the second case <code>NoSuchElementException</code> was 109*cdf0e10cSrcweir * thrown. <p> 110*cdf0e10cSrcweir * The following method tests are to be completed successfully before : 111*cdf0e10cSrcweir * <ul> 112*cdf0e10cSrcweir * <li> <code> getElementNames </code> : to retrieve at least one 113*cdf0e10cSrcweir * element name. </li> 114*cdf0e10cSrcweir * </ul> 115*cdf0e10cSrcweir */ 116*cdf0e10cSrcweir public void _getByName() { 117*cdf0e10cSrcweir log.println("reqiure getElementNames() ..."); 118*cdf0e10cSrcweir requiredMethod("getElementNames()"); 119*cdf0e10cSrcweir log.println("require getElementNames() ...OK"); 120*cdf0e10cSrcweir log.println("testing getByName() ..."); 121*cdf0e10cSrcweir 122*cdf0e10cSrcweir boolean result = true; 123*cdf0e10cSrcweir boolean loc_result = true; 124*cdf0e10cSrcweir 125*cdf0e10cSrcweir String name = null; 126*cdf0e10cSrcweir 127*cdf0e10cSrcweir if (Names.length != 0) { 128*cdf0e10cSrcweir name = Names[0]; 129*cdf0e10cSrcweir log.println("testing with valid name '" + name + "'"); 130*cdf0e10cSrcweir try { 131*cdf0e10cSrcweir loc_result = (null != oObj.getByName(name)); 132*cdf0e10cSrcweir } catch (Exception e) { 133*cdf0e10cSrcweir log.println("Exception! - FAILED"); 134*cdf0e10cSrcweir log.println(e.toString()); 135*cdf0e10cSrcweir loc_result = false; 136*cdf0e10cSrcweir } 137*cdf0e10cSrcweir log.println("getByName with valid name: " + loc_result); 138*cdf0e10cSrcweir result &= loc_result; 139*cdf0e10cSrcweir } 140*cdf0e10cSrcweir 141*cdf0e10cSrcweir log.println("testing with non-existant name"); 142*cdf0e10cSrcweir name = "non_existant_name__1234"; 143*cdf0e10cSrcweir try { 144*cdf0e10cSrcweir loc_result = (null != oObj.getByName(name)); 145*cdf0e10cSrcweir loc_result = false; 146*cdf0e10cSrcweir log.println("getByName: Exception expected - FAILED"); 147*cdf0e10cSrcweir } catch (NoSuchElementException e) { 148*cdf0e10cSrcweir log.println("getByName: Expected exception - OK"); 149*cdf0e10cSrcweir loc_result = true; 150*cdf0e10cSrcweir } catch (com.sun.star.lang.WrappedTargetException e) { 151*cdf0e10cSrcweir log.println("getByName: Wrong exception - " + e + " - FAILED"); 152*cdf0e10cSrcweir loc_result = false; 153*cdf0e10cSrcweir } 154*cdf0e10cSrcweir 155*cdf0e10cSrcweir result &= loc_result; 156*cdf0e10cSrcweir tRes.tested("getByName()", result); 157*cdf0e10cSrcweir 158*cdf0e10cSrcweir return; 159*cdf0e10cSrcweir 160*cdf0e10cSrcweir } // end getByName() 161*cdf0e10cSrcweir } /// finished class _XNameAccess 162*cdf0e10cSrcweir 163*cdf0e10cSrcweir 164*cdf0e10cSrcweir 165