1*ef39d40dSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*ef39d40dSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*ef39d40dSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*ef39d40dSAndrew Rist  * distributed with this work for additional information
6*ef39d40dSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*ef39d40dSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*ef39d40dSAndrew Rist  * "License"); you may not use this file except in compliance
9*ef39d40dSAndrew Rist  * with the License.  You may obtain a copy of the License at
10*ef39d40dSAndrew Rist  *
11*ef39d40dSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*ef39d40dSAndrew Rist  *
13*ef39d40dSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*ef39d40dSAndrew Rist  * software distributed under the License is distributed on an
15*ef39d40dSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*ef39d40dSAndrew Rist  * KIND, either express or implied.  See the License for the
17*ef39d40dSAndrew Rist  * specific language governing permissions and limitations
18*ef39d40dSAndrew Rist  * under the License.
19*ef39d40dSAndrew Rist  *
20*ef39d40dSAndrew Rist  *************************************************************/
21*ef39d40dSAndrew Rist 
22*ef39d40dSAndrew Rist 
23cdf0e10cSrcweir package basicrunner;
24cdf0e10cSrcweir 
25cdf0e10cSrcweir import lib.TestCase;
26cdf0e10cSrcweir import lib.TestParameters;
27cdf0e10cSrcweir import lib.TestEnvironment;
28cdf0e10cSrcweir import share.DescEntry;
29cdf0e10cSrcweir import share.LogWriter;
30cdf0e10cSrcweir 
31cdf0e10cSrcweir import com.sun.star.uno.XInterface;
32cdf0e10cSrcweir 
33cdf0e10cSrcweir import java.io.PrintWriter;
34cdf0e10cSrcweir 
35cdf0e10cSrcweir import com.sun.star.beans.PropertyValue;
36cdf0e10cSrcweir 
37cdf0e10cSrcweir 
38cdf0e10cSrcweir /**
39cdf0e10cSrcweir  * The basic test case.
40cdf0e10cSrcweir  */
41cdf0e10cSrcweir public class BasicTestCase extends TestCase {
42cdf0e10cSrcweir 
43cdf0e10cSrcweir     /**
44cdf0e10cSrcweir      * Specifies the PrintWriter to log information.
45cdf0e10cSrcweir      */
46cdf0e10cSrcweir     public PrintWriter oLog;
47cdf0e10cSrcweir 
48cdf0e10cSrcweir     /** The name of the test object **/
49cdf0e10cSrcweir     protected String objName;
50cdf0e10cSrcweir     /** The implementation name of the test object **/
51cdf0e10cSrcweir     protected String implName;
52cdf0e10cSrcweir     /** A BasicHandler **/
53cdf0e10cSrcweir     static BasicHandler oBasicHandler = null;
54cdf0e10cSrcweir 
55cdf0e10cSrcweir     /**
56cdf0e10cSrcweir      * Constructor with the entry which is to test.
57cdf0e10cSrcweir      * @param entry The description entry.
58cdf0e10cSrcweir      */
BasicTestCase(DescEntry entry)59cdf0e10cSrcweir     public BasicTestCase(DescEntry entry) {
60cdf0e10cSrcweir         this.objName = entry.entryName;
61cdf0e10cSrcweir         this.implName = entry.longName;
62cdf0e10cSrcweir     }
63cdf0e10cSrcweir 
64cdf0e10cSrcweir 
65cdf0e10cSrcweir     /**
66cdf0e10cSrcweir      * Initialize the test case.
67cdf0e10cSrcweir      * The BasicHandler is talken from the test parameters and several
68cdf0e10cSrcweir      * parameters are initialized.
69cdf0e10cSrcweir      * @param tParam The test parameters.
70cdf0e10cSrcweir      * @param pLog A log writer.
71cdf0e10cSrcweir      */
initialize(TestParameters tParam, PrintWriter pLog)72cdf0e10cSrcweir     protected void initialize(TestParameters tParam, PrintWriter pLog) {
73cdf0e10cSrcweir         // Create Handler ONLY here. If SOffice crashes,
74cdf0e10cSrcweir         // no new Handler will be created until new object's initialization.
75cdf0e10cSrcweir         this.oLog = pLog;
76cdf0e10cSrcweir         LogWriter log = (LogWriter)pLog;
77cdf0e10cSrcweir         oBasicHandler = BasicHandlerProvider.getHandler(tParam, log);
78cdf0e10cSrcweir         try {
79cdf0e10cSrcweir             oBasicHandler.perform("setValue",
80cdf0e10cSrcweir                         "cBASPath = \"" + tParam.get("BASICRESPTH") + "/\"");
81cdf0e10cSrcweir             oBasicHandler.perform("setValue",
82cdf0e10cSrcweir                         "cTestDocsDir = \"" + tParam.get("DOCPTH") + "/\"");
83cdf0e10cSrcweir             oBasicHandler.perform("setValue",
84cdf0e10cSrcweir                         "CNCSTR = \"" + tParam.get("CNCSTR") + "\"");
85cdf0e10cSrcweir             if (tParam.get("soapi.test.hidewindows") != null) {
86cdf0e10cSrcweir               oBasicHandler.perform("setValue",
87cdf0e10cSrcweir                         "soapi_test_hidewindows = true");
88cdf0e10cSrcweir             } else {
89cdf0e10cSrcweir               oBasicHandler.perform("setValue",
90cdf0e10cSrcweir                         "soapi_test_hidewindows = false");
91cdf0e10cSrcweir             }
92cdf0e10cSrcweir             //this parameters are used by testcases of db-driver components
93cdf0e10cSrcweir             oBasicHandler.perform("setValue", "dbaseUrl = \"sdbc:dbase:" +
94cdf0e10cSrcweir                 tParam.get("dbase.url") + "\"");
95cdf0e10cSrcweir             oBasicHandler.perform("setValue", "flatUrl = \"sdbc:flat:" +
96cdf0e10cSrcweir                 tParam.get("flat.url") + "\"");
97cdf0e10cSrcweir             oBasicHandler.perform("setValue", "calcUrl = \"sdbc:calc:" +
98cdf0e10cSrcweir                 tParam.get("calc.url") + "\"");
99cdf0e10cSrcweir             oBasicHandler.perform("setValue", "odbcUrl = \"sdbc:odbc:" +
100cdf0e10cSrcweir                 tParam.get("odbc.url") + "\"");
101cdf0e10cSrcweir             oBasicHandler.perform("setValue", "jdbcUrl = \"jdbc:" +
102cdf0e10cSrcweir                 tParam.get("jdbc.url") + "\"");
103cdf0e10cSrcweir             oBasicHandler.perform("setValue", "jdbcUser = \"" +
104cdf0e10cSrcweir                 tParam.get("jdbc.user") + "\"");
105cdf0e10cSrcweir             oBasicHandler.perform("setValue", "jdbcPassword = \"" +
106cdf0e10cSrcweir                 tParam.get("jdbc.password") + "\"");
107cdf0e10cSrcweir             oBasicHandler.perform("setValue", "adabasUrl = \"sdbc:adabas:" +
108cdf0e10cSrcweir                 tParam.get("adabas.url") + "\"");
109cdf0e10cSrcweir             oBasicHandler.perform("setValue", "adabasUser = \"" +
110cdf0e10cSrcweir                 tParam.get("adabas.user") + "\"");
111cdf0e10cSrcweir             oBasicHandler.perform("setValue", "adabasPassword = \"" +
112cdf0e10cSrcweir                 tParam.get("adabas.password") + "\"");
113cdf0e10cSrcweir             oBasicHandler.perform("setValue", "adoUrl = \"sdbc:ado:" +
114cdf0e10cSrcweir                 tParam.get("ado.url") + "\"");
115cdf0e10cSrcweir         } catch (BasicException e) {
116cdf0e10cSrcweir             log.println(e.info);
117cdf0e10cSrcweir             throw new RuntimeException(e.info);
118cdf0e10cSrcweir         }
119cdf0e10cSrcweir     }
120cdf0e10cSrcweir 
121cdf0e10cSrcweir     /**
122cdf0e10cSrcweir      * Create the environment for the test. This is done by BASIC.
123cdf0e10cSrcweir      * @param tParam The test parameters.
124cdf0e10cSrcweir      * @param log A log writer.
125cdf0e10cSrcweir      * @return The test environment
126cdf0e10cSrcweir      */
createTestEnvironment(TestParameters tParam, PrintWriter log)127cdf0e10cSrcweir     protected TestEnvironment createTestEnvironment(TestParameters tParam,
128cdf0e10cSrcweir                                                           PrintWriter log) {
129cdf0e10cSrcweir 
130cdf0e10cSrcweir         PropertyValue Res;
131cdf0e10cSrcweir         boolean bObjectWasCreated = false;
132cdf0e10cSrcweir 
133cdf0e10cSrcweir         try {
134cdf0e10cSrcweir             oBasicHandler.perform("setValue",
135cdf0e10cSrcweir                         "cObjectImplementationName = \"" + implName + "\"");
136cdf0e10cSrcweir             Res = oBasicHandler.perform("createObject", objName);
137cdf0e10cSrcweir             bObjectWasCreated = ((Boolean)Res.Value).booleanValue();
138cdf0e10cSrcweir 
139cdf0e10cSrcweir             if (!bObjectWasCreated) {
140cdf0e10cSrcweir                 log.println("Couldn't create object");
141cdf0e10cSrcweir                 throw new RuntimeException("Couldn't create object");
142cdf0e10cSrcweir             }
143cdf0e10cSrcweir 
144cdf0e10cSrcweir         } catch (BasicException e) {
145cdf0e10cSrcweir             log.println(e.info);
146cdf0e10cSrcweir             bObjectWasCreated = false;
147cdf0e10cSrcweir             throw new RuntimeException(e.info);
148cdf0e10cSrcweir         }
149cdf0e10cSrcweir 
150cdf0e10cSrcweir         TestEnvironment tEnv = new TestEnvironment(new XInterface(){});
151cdf0e10cSrcweir         tEnv.addObjRelation("objectCreated", new Boolean(bObjectWasCreated));
152cdf0e10cSrcweir         tEnv.addObjRelation("BasicHandler", oBasicHandler);
153cdf0e10cSrcweir         return tEnv;
154cdf0e10cSrcweir     }
155cdf0e10cSrcweir 
156cdf0e10cSrcweir     /**
157cdf0e10cSrcweir      * BASIC is told to dispose the test object.
158cdf0e10cSrcweir      * @param tParam The test parameters.
159cdf0e10cSrcweir      */
160cdf0e10cSrcweir 
cleanupTestCase(TestParameters tParam)161cdf0e10cSrcweir     public void cleanupTestCase(TestParameters tParam) {
162cdf0e10cSrcweir         PropertyValue Res;
163cdf0e10cSrcweir         oLog.println("Cleaning up testcase");
164cdf0e10cSrcweir         try {
165cdf0e10cSrcweir             Res = oBasicHandler.perform("disposeObject", objName);
166cdf0e10cSrcweir         } catch (BasicException e) {
167cdf0e10cSrcweir             oLog.println(e.info);
168cdf0e10cSrcweir             throw new RuntimeException(e.info);
169cdf0e10cSrcweir         }
170cdf0e10cSrcweir     }
171cdf0e10cSrcweir 
172cdf0e10cSrcweir }
173