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      */
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      */
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             oBasicHandler.perform("setValue", "mozabUrl = \"sdbc:address:" +
116cdf0e10cSrcweir                 tParam.get("mozab.url") + "\"");
117cdf0e10cSrcweir         } catch (BasicException e) {
118cdf0e10cSrcweir             log.println(e.info);
119cdf0e10cSrcweir             throw new RuntimeException(e.info);
120cdf0e10cSrcweir         }
121cdf0e10cSrcweir     }
122cdf0e10cSrcweir 
123cdf0e10cSrcweir     /**
124cdf0e10cSrcweir      * Create the environment for the test. This is done by BASIC.
125cdf0e10cSrcweir      * @param tParam The test parameters.
126cdf0e10cSrcweir      * @param log A log writer.
127cdf0e10cSrcweir      * @return The test environment
128cdf0e10cSrcweir      */
129cdf0e10cSrcweir     protected TestEnvironment createTestEnvironment(TestParameters tParam,
130cdf0e10cSrcweir                                                           PrintWriter log) {
131cdf0e10cSrcweir 
132cdf0e10cSrcweir         PropertyValue Res;
133cdf0e10cSrcweir         boolean bObjectWasCreated = false;
134cdf0e10cSrcweir 
135cdf0e10cSrcweir         try {
136cdf0e10cSrcweir             oBasicHandler.perform("setValue",
137cdf0e10cSrcweir                         "cObjectImplementationName = \"" + implName + "\"");
138cdf0e10cSrcweir             Res = oBasicHandler.perform("createObject", objName);
139cdf0e10cSrcweir             bObjectWasCreated = ((Boolean)Res.Value).booleanValue();
140cdf0e10cSrcweir 
141cdf0e10cSrcweir             if (!bObjectWasCreated) {
142cdf0e10cSrcweir                 log.println("Couldn't create object");
143cdf0e10cSrcweir                 throw new RuntimeException("Couldn't create object");
144cdf0e10cSrcweir             }
145cdf0e10cSrcweir 
146cdf0e10cSrcweir         } catch (BasicException e) {
147cdf0e10cSrcweir             log.println(e.info);
148cdf0e10cSrcweir             bObjectWasCreated = false;
149cdf0e10cSrcweir             throw new RuntimeException(e.info);
150cdf0e10cSrcweir         }
151cdf0e10cSrcweir 
152cdf0e10cSrcweir         TestEnvironment tEnv = new TestEnvironment(new XInterface(){});
153cdf0e10cSrcweir         tEnv.addObjRelation("objectCreated", new Boolean(bObjectWasCreated));
154cdf0e10cSrcweir         tEnv.addObjRelation("BasicHandler", oBasicHandler);
155cdf0e10cSrcweir         return tEnv;
156cdf0e10cSrcweir     }
157cdf0e10cSrcweir 
158cdf0e10cSrcweir     /**
159cdf0e10cSrcweir      * BASIC is told to dispose the test object.
160cdf0e10cSrcweir      * @param tParam The test parameters.
161cdf0e10cSrcweir      */
162cdf0e10cSrcweir 
163cdf0e10cSrcweir     public void cleanupTestCase(TestParameters tParam) {
164cdf0e10cSrcweir         PropertyValue Res;
165cdf0e10cSrcweir         oLog.println("Cleaning up testcase");
166cdf0e10cSrcweir         try {
167cdf0e10cSrcweir             Res = oBasicHandler.perform("disposeObject", objName);
168cdf0e10cSrcweir         } catch (BasicException e) {
169cdf0e10cSrcweir             oLog.println(e.info);
170cdf0e10cSrcweir             throw new RuntimeException(e.info);
171cdf0e10cSrcweir         }
172cdf0e10cSrcweir     }
173cdf0e10cSrcweir 
174cdf0e10cSrcweir }
175