xref: /AOO41X/main/qadevOOo/tests/java/ifc/reflection/_XIdlReflection.java (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 
28 package ifc.reflection;
29 
30 import com.sun.star.lang.XMultiServiceFactory;
31 import com.sun.star.reflection.XIdlClass;
32 import com.sun.star.reflection.XIdlReflection;
33 import com.sun.star.uno.TypeClass;
34 import lib.MultiMethodTest;
35 
36 /**
37 * Testing <code>com.sun.star.reflection.XIdlReflection</code>
38 * interface methods :
39 * <ul>
40 *  <li><code> forName()</code></li>
41 *  <li><code> getType()</code></li>
42 * </ul> <p>
43 * @see com.sun.star.reflection.XIdlReflection
44 */
45 public class _XIdlReflection extends MultiMethodTest{
46     public XIdlReflection oObj = null;
47     protected final static String typeName = "com.sun.star.container.XNameAccess";
48 
49     /**
50     * Test calls the method and checks returned interface
51     * <code>com.sun.star.container.XNameAccess</code>: gets the name and the
52     * type and checks it. <p>
53     * Has <b> OK </b> status if returned name is equal to the name of the
54     * interface that was passed as parameter in the method call and if returned
55     * type is equal to <code>com.sun.star.uno.TypeClass.INTERFACE</code>. <p>
56     */
57     public void _forName() {
58         boolean result = true;
59         XIdlClass cls = oObj.forName(typeName);
60 
61         if (cls != null) {
62             log.println("Class name: " + cls.getName());
63             result &= cls.getTypeClass() == TypeClass.INTERFACE;
64             result &= typeName.equals(cls.getName());
65         } else {
66             log.println("Method returned null");
67             result = false;
68         }
69 
70         tRes.tested("forName()", result);
71     }
72 
73     /**
74     * Test creates the instance of <code>com.sun.star.io.Pipe</code>,
75     * calls the method using this instance as parameter and checks returned
76     * value. <p>
77     * Has <b> OK </b> status if the instance was created successfully, if
78     * returned value isn't null and no exceptions were thrown. <p>
79     */
80     public void _getType() {
81         boolean result = true;
82         Object obj = null;
83 
84         try {
85             obj = ((XMultiServiceFactory)tParam.getMSF()).
86                                     createInstance("com.sun.star.io.Pipe") ;
87         } catch (com.sun.star.uno.Exception e) {
88             log.println("Can't create object");
89             tRes.tested("getType()", false);
90             return;
91         }
92 
93         if (obj == null) {
94             result = false;
95             log.println("Object wasn't created !");
96             tRes.tested("getType()", false);
97         }
98 
99         XIdlClass cls = oObj.getType(obj);
100 
101         log.println("The name is " + cls.getName());
102 
103         tRes.tested("getType()", cls != null);
104     }
105 }
106 
107 
108