/************************************************************** * * 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 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ package basicrunner; import lib.TestCase; import lib.TestParameters; import lib.TestEnvironment; import share.DescEntry; import share.LogWriter; import com.sun.star.uno.XInterface; import java.io.PrintWriter; import com.sun.star.beans.PropertyValue; /** * The basic test case. */ public class BasicTestCase extends TestCase { /** * Specifies the PrintWriter to log information. */ public PrintWriter oLog; /** The name of the test object **/ protected String objName; /** The implementation name of the test object **/ protected String implName; /** A BasicHandler **/ static BasicHandler oBasicHandler = null; /** * Constructor with the entry which is to test. * @param entry The description entry. */ public BasicTestCase(DescEntry entry) { this.objName = entry.entryName; this.implName = entry.longName; } /** * Initialize the test case. * The BasicHandler is talken from the test parameters and several * parameters are initialized. * @param tParam The test parameters. * @param pLog A log writer. */ protected void initialize(TestParameters tParam, PrintWriter pLog) { // Create Handler ONLY here. If SOffice crashes, // no new Handler will be created until new object's initialization. this.oLog = pLog; LogWriter log = (LogWriter)pLog; oBasicHandler = BasicHandlerProvider.getHandler(tParam, log); try { oBasicHandler.perform("setValue", "cBASPath = \"" + tParam.get("BASICRESPTH") + "/\""); oBasicHandler.perform("setValue", "cTestDocsDir = \"" + tParam.get("DOCPTH") + "/\""); oBasicHandler.perform("setValue", "CNCSTR = \"" + tParam.get("CNCSTR") + "\""); if (tParam.get("soapi.test.hidewindows") != null) { oBasicHandler.perform("setValue", "soapi_test_hidewindows = true"); } else { oBasicHandler.perform("setValue", "soapi_test_hidewindows = false"); } //this parameters are used by testcases of db-driver components oBasicHandler.perform("setValue", "dbaseUrl = \"sdbc:dbase:" + tParam.get("dbase.url") + "\""); oBasicHandler.perform("setValue", "flatUrl = \"sdbc:flat:" + tParam.get("flat.url") + "\""); oBasicHandler.perform("setValue", "calcUrl = \"sdbc:calc:" + tParam.get("calc.url") + "\""); oBasicHandler.perform("setValue", "odbcUrl = \"sdbc:odbc:" + tParam.get("odbc.url") + "\""); oBasicHandler.perform("setValue", "jdbcUrl = \"jdbc:" + tParam.get("jdbc.url") + "\""); oBasicHandler.perform("setValue", "jdbcUser = \"" + tParam.get("jdbc.user") + "\""); oBasicHandler.perform("setValue", "jdbcPassword = \"" + tParam.get("jdbc.password") + "\""); oBasicHandler.perform("setValue", "adabasUrl = \"sdbc:adabas:" + tParam.get("adabas.url") + "\""); oBasicHandler.perform("setValue", "adabasUser = \"" + tParam.get("adabas.user") + "\""); oBasicHandler.perform("setValue", "adabasPassword = \"" + tParam.get("adabas.password") + "\""); oBasicHandler.perform("setValue", "adoUrl = \"sdbc:ado:" + tParam.get("ado.url") + "\""); } catch (BasicException e) { log.println(e.info); throw new RuntimeException(e.info); } } /** * Create the environment for the test. This is done by BASIC. * @param tParam The test parameters. * @param log A log writer. * @return The test environment */ protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) { PropertyValue Res; boolean bObjectWasCreated = false; try { oBasicHandler.perform("setValue", "cObjectImplementationName = \"" + implName + "\""); Res = oBasicHandler.perform("createObject", objName); bObjectWasCreated = ((Boolean)Res.Value).booleanValue(); if (!bObjectWasCreated) { log.println("Couldn't create object"); throw new RuntimeException("Couldn't create object"); } } catch (BasicException e) { log.println(e.info); bObjectWasCreated = false; throw new RuntimeException(e.info); } TestEnvironment tEnv = new TestEnvironment(new XInterface(){}); tEnv.addObjRelation("objectCreated", new Boolean(bObjectWasCreated)); tEnv.addObjRelation("BasicHandler", oBasicHandler); return tEnv; } /** * BASIC is told to dispose the test object. * @param tParam The test parameters. */ public void cleanupTestCase(TestParameters tParam) { PropertyValue Res; oLog.println("Cleaning up testcase"); try { Res = oBasicHandler.perform("disposeObject", objName); } catch (BasicException e) { oLog.println(e.info); throw new RuntimeException(e.info); } } }