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 
24cdf0e10cSrcweir package ifc.lang;
25cdf0e10cSrcweir 
26cdf0e10cSrcweir import lib.MultiMethodTest;
27cdf0e10cSrcweir 
28cdf0e10cSrcweir import com.sun.star.lang.XInitialization;
29cdf0e10cSrcweir 
30cdf0e10cSrcweir /**
31cdf0e10cSrcweir * Testing <code>com.sun.star.lang.XInitialization</code>
32cdf0e10cSrcweir * interface methods. <p>
33cdf0e10cSrcweir * This test needs the following object relations :
34cdf0e10cSrcweir * <ul>
35cdf0e10cSrcweir *  <li> <code>'XInitialization.args'</code> (of type <code>Object[]</code>):
36cdf0e10cSrcweir *   (<b>Optional</b>) : argument for <code>initialize</code>
37cdf0e10cSrcweir *   method. If ommitet zero length array is used. </li>
38cdf0e10cSrcweir * <ul> <p>
39cdf0e10cSrcweir * Test is multithread compilant. <p>
40cdf0e10cSrcweir * Till the present time there was no need to recreate environment
41cdf0e10cSrcweir * after this test completion.
42cdf0e10cSrcweir */
43cdf0e10cSrcweir public class _XInitialization extends MultiMethodTest {
44cdf0e10cSrcweir 
45cdf0e10cSrcweir     public static XInitialization oObj = null;
46cdf0e10cSrcweir 
47cdf0e10cSrcweir     /**
48cdf0e10cSrcweir     * Test calls the method with 0 length array and checks that
49cdf0e10cSrcweir     * no exceptions were thrown. <p>
50cdf0e10cSrcweir     * Has <b> OK </b> status if no exceptions were thrown. <p>
51cdf0e10cSrcweir     */
_initialize()52cdf0e10cSrcweir     public void _initialize() {
53cdf0e10cSrcweir         boolean result = true ;
54cdf0e10cSrcweir 
55cdf0e10cSrcweir         try {
56cdf0e10cSrcweir             XInitialization xInit = (XInitialization) tEnv.getObjRelation("XInitialization.xIni");
57cdf0e10cSrcweir             if (xInit == null) xInit = oObj;
58cdf0e10cSrcweir 
59cdf0e10cSrcweir             log.println("calling method with valid arguments...");
60cdf0e10cSrcweir             Object[] args = (Object[]) tEnv.getObjRelation("XInitialization.args");
61cdf0e10cSrcweir             if (args==null) {
62cdf0e10cSrcweir                 System.out.println("Using new Object[0] as Argument");
63cdf0e10cSrcweir                 xInit.initialize(new Object[0]);
64cdf0e10cSrcweir             } else {
65cdf0e10cSrcweir                 xInit.initialize(args);
66cdf0e10cSrcweir             }
67cdf0e10cSrcweir 
68cdf0e10cSrcweir             // try to call the method with invalid parameters
69cdf0e10cSrcweir             Object[] ExArgs = (Object[]) tEnv.getObjRelation("XInitialization.ExceptionArgs");
70cdf0e10cSrcweir             if (ExArgs !=null) {
71cdf0e10cSrcweir                 log.println("calling method with in-valid arguments...");
72cdf0e10cSrcweir                 try{
73cdf0e10cSrcweir                     result = false;
74cdf0e10cSrcweir                     xInit.initialize(ExArgs);
75cdf0e10cSrcweir                 } catch (com.sun.star.uno.Exception e) {
76cdf0e10cSrcweir                     log.println("Expected Exception 'com.sun.star.uno.Exception' occured -> OK") ;
77cdf0e10cSrcweir                     result = true ;
78cdf0e10cSrcweir                 } catch (com.sun.star.uno.RuntimeException e) {
79cdf0e10cSrcweir                     log.println("Expected Exception 'com.sun.star.uno.RuntimeException' occured -> OK") ;
80cdf0e10cSrcweir                     result = true ;
81cdf0e10cSrcweir                 } catch (Exception e) {
82cdf0e10cSrcweir                     log.println("Un-Expected Exception occured -> FALSE") ;
83cdf0e10cSrcweir                     log.println(e.toString());
84cdf0e10cSrcweir                     e.printStackTrace();
85cdf0e10cSrcweir                 }
86cdf0e10cSrcweir             }
87cdf0e10cSrcweir 
88cdf0e10cSrcweir         } catch (com.sun.star.uno.Exception e) {
89cdf0e10cSrcweir             log.println("Exception occured while method calling.") ;
90cdf0e10cSrcweir             log.println(e) ;
91cdf0e10cSrcweir             result = false ;
92cdf0e10cSrcweir         }
93cdf0e10cSrcweir 
94cdf0e10cSrcweir         tRes.tested("initialize()", result) ;
95cdf0e10cSrcweir     } // finished _initialize()
96cdf0e10cSrcweir 
97cdf0e10cSrcweir     /**
98cdf0e10cSrcweir     * Disposes object environment.
99cdf0e10cSrcweir     */
after()100cdf0e10cSrcweir     public void after() {
101cdf0e10cSrcweir         disposeEnvironment() ;
102cdf0e10cSrcweir     }
103cdf0e10cSrcweir 
104cdf0e10cSrcweir } // finished class _XInitialization
105cdf0e10cSrcweir 
106cdf0e10cSrcweir 
107