/* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * This file incorporates work covered by the following license notice: * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed * with this work for additional information regarding copyright * ownership. The ASF licenses this file to you under the Apache * License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 . */ package ifc.sdbc; import lib.MultiMethodTest; import lib.Status; import lib.StatusException; import com.sun.star.beans.PropertyValue; import com.sun.star.sdbc.DriverPropertyInfo; import com.sun.star.sdbc.SQLException; import com.sun.star.sdbc.XConnection; import com.sun.star.sdbc.XDriver; /** * Testing com.sun.star.sdbc.XDriver * interface methods : *

* Required object relations : *

* @see com.sun.star.sdbc.XDriver */ public class _XDriver extends MultiMethodTest { // oObj filled by MultiMethodTest public XDriver oObj = null; String url = null; String wrongUrl = null; String nbu = null; PropertyValue[] info = null; /** * Retrieves relations. * @throw StatusException If any relation not found. */ @Override protected void before() { nbu = (String) tEnv.getObjRelation("NoBadURL"); url = (String)tEnv.getObjRelation("XDriver.URL"); if (url == null) { throw new StatusException(Status.failed( "Couldn't get relation 'XDriver.URL'")); } wrongUrl = (String)tEnv.getObjRelation("XDriver.UNSUITABLE_URL"); if (wrongUrl == null) { throw new StatusException(Status.failed( "Couldn't get relation 'XDriver.WRONG_URL'")); } info = (PropertyValue[])tEnv.getObjRelation("XDriver.INFO"); if (info == null) { throw new StatusException(Status.failed( "Couldn't get relation 'XDriver.INFO'")); } } /** * Connects to 'XDriver.URL', * to 'XDriver.UNSUITABLE_URL' and to wrong URL using * 'XDriver.INFO'. * Has OK status if the method returns not null for 'XDriver.URL', * null for 'XDriver.UNSUITABLE_URL' and * exception was thrown during the call with a wrong URL. */ public void _connect() { boolean res = true; try { log.println("Trying to connect to " + url); XConnection connection = oObj.connect(url, info); res = (connection != null); log.println("Connected? " + res); log.println("Trying to connect to " + wrongUrl); connection = oObj.connect(wrongUrl, info); res &= (connection == null); log.println("Connected? " + !res); } catch(SQLException e) { log.println("Unexpected exception"); res &= false; } if (nbu==null) { try { String badUrl = url + "bla"; log.println("Trying to connect to " + badUrl); oObj.connect(badUrl, info); res &= false; log.println("Expected exception isn't thrown"); } catch(SQLException e) { log.println("Expected exception"); res &= true; } } tRes.tested("connect()", res); } /** * Calls the method for 'XDriver.URL' and * for 'XDriver.UNSUITABLE_URL'. * Has OK status if the method returns true for 'XDriver.URL' * and false for 'XDriver.UNSUITABLE_URL'. */ public void _acceptsURL() { boolean res = false; try { res = oObj.acceptsURL(url); log.println("Accepts " + url + "? " + res); res &= !oObj.acceptsURL(wrongUrl); log.println("Accepts " + wrongUrl + "? " + !res); } catch(SQLException e) { log.println("Unexpected exception"); e.printStackTrace(log); res = false; } tRes.tested("acceptsURL()", res); } /** * Calls the method with passed 'XDriver.URL' and * 'XDriver.INFO'. Prints obtained driver properties info * to log. * Has OK status if returned value isn't null. */ public void _getPropertyInfo() { requiredMethod("acceptsURL()"); boolean res = false; DriverPropertyInfo[] dpi = null; try { dpi = oObj.getPropertyInfo(url, info); } catch(SQLException e) { log.println("Unexpected exception"); e.printStackTrace(log); res = false; } if (dpi != null) { res = true; log.println("Driver properties info:"); for(int i = 0; i < dpi.length; i++) { log.println("Property: " + dpi[i].Name); log.println("Description: " + dpi[i].Description); log.println("IsRequired? " + dpi[i].IsRequired); log.println("Value: " + dpi[i].Value); log.println("Choices: "); for(int j = 0; j < dpi[i].Choices.length; j++) { log.println("\t" + dpi[i].Choices[j]); } } } tRes.tested("getPropertyInfo()", res); } /** * Calls the method. * Has OK status if returned value is greater than or is equal to 1. */ public void _getMajorVersion() { int majorVer = oObj.getMajorVersion(); boolean res = majorVer >= 1; log.println("Major version " + majorVer); tRes.tested("getMajorVersion()", res); } /** * Calls the method. * Has OK status if returned value is greater than or is equal to 0. */ public void _getMinorVersion() { int minorVer = oObj.getMinorVersion(); boolean res = minorVer >= 0; log.println("Minor version " + minorVer); tRes.tested("getMinorVersion()", res); } }