xref: /aoo4110/main/cppu/qa/test_unotype.cxx (revision b1cdbd2c)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 // MARKER(update_precomp.py): autogen include statement, do not remove
25 #include "precompiled_cppu.hxx"
26 
27 #include "sal/config.h"
28 
29 #include <typeinfo>
30 
31 #include "com/sun/star/beans/Optional.hpp"
32 #include "com/sun/star/beans/PropertyChangeEvent.hpp"
33 #include "com/sun/star/lang/EventObject.hpp"
34 #include "com/sun/star/uno/Exception.hpp"
35 #include "com/sun/star/uno/Reference.hxx"
36 #include "com/sun/star/uno/RuntimeException.hpp"
37 #include "com/sun/star/uno/Sequence.hxx"
38 #include "com/sun/star/uno/Type.hxx"
39 #include "com/sun/star/uno/TypeClass.hpp"
40 #include "com/sun/star/uno/XComponentContext.hpp"
41 #include "com/sun/star/uno/XInterface.hpp"
42 #include "cppu/unotype.hxx"
43 #include "testshl/simpleheader.hxx"
44 #include "rtl/ustring.h"
45 #include "rtl/ustring.hxx"
46 #include "sal/types.h"
47 
48 namespace com { namespace sun { namespace star { namespace uno {
49     class Any;
50 } } } }
51 
52 namespace {
53 
54 namespace css = com::sun::star;
55 
56 struct DerivedStruct1: css::lang::EventObject {};
57 
58 struct DerivedStruct2: css::beans::PropertyChangeEvent {};
59 
60 struct DerivedException1: css::uno::Exception {};
61 
62 struct DerivedException2: css::uno::RuntimeException {};
63 
64 struct DerivedInterface1: css::uno::XInterface {};
65 
66 struct DerivedInterface2: css::uno::XComponentContext {};
67 
68 class Test: public ::CppUnit::TestFixture {
69 public:
70     void testUnoType();
71 
72     void testGetTypeFavourUnsigned();
73 
74     void testGetTypeFavourChar();
75 
76     CPPUNIT_TEST_SUITE(Test);
77     CPPUNIT_TEST(testUnoType);
78     CPPUNIT_TEST(testGetTypeFavourUnsigned);
79     CPPUNIT_TEST(testGetTypeFavourChar);
80     CPPUNIT_TEST_SUITE_END();
81 };
82 
testUnoType()83 void Test::testUnoType() {
84     css::uno::Type t;
85     t = ::cppu::UnoType< ::cppu::UnoVoidType >::get();
86     CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_VOID, t.getTypeClass());
87     CPPUNIT_ASSERT_EQUAL(
88         ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("void")), t.getTypeName());
89     t = ::cppu::UnoType< bool >::get();
90     CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_BOOLEAN, t.getTypeClass());
91     CPPUNIT_ASSERT_EQUAL(
92         ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("boolean")),
93         t.getTypeName());
94     CPPUNIT_ASSERT(::cppu::UnoType< ::sal_Bool >::get() == t);
95     t = ::cppu::UnoType< ::sal_Int8 >::get();
96     CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_BYTE, t.getTypeClass());
97     CPPUNIT_ASSERT_EQUAL(
98         ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("byte")), t.getTypeName());
99     t = ::cppu::UnoType< ::sal_Int16 >::get();
100     CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_SHORT, t.getTypeClass());
101     CPPUNIT_ASSERT_EQUAL(
102         ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("short")), t.getTypeName());
103     t = ::cppu::UnoType< ::cppu::UnoUnsignedShortType >::get();
104     CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_UNSIGNED_SHORT, t.getTypeClass());
105     CPPUNIT_ASSERT_EQUAL(
106         ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("unsigned short")),
107         t.getTypeName());
108     t = ::cppu::UnoType< ::sal_Int32 >::get();
109     CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_LONG, t.getTypeClass());
110     CPPUNIT_ASSERT_EQUAL(
111         ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("long")), t.getTypeName());
112     t = ::cppu::UnoType< ::sal_uInt32 >::get();
113     CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_UNSIGNED_LONG, t.getTypeClass());
114     CPPUNIT_ASSERT_EQUAL(
115         ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("unsigned long")),
116         t.getTypeName());
117     t = ::cppu::UnoType< ::sal_Int64 >::get();
118     CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_HYPER, t.getTypeClass());
119     CPPUNIT_ASSERT_EQUAL(
120         ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("hyper")), t.getTypeName());
121     t = ::cppu::UnoType< ::sal_uInt64 >::get();
122     CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_UNSIGNED_HYPER, t.getTypeClass());
123     CPPUNIT_ASSERT_EQUAL(
124         ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("unsigned hyper")),
125         t.getTypeName());
126     t = ::cppu::UnoType< float >::get();
127     CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_FLOAT, t.getTypeClass());
128     CPPUNIT_ASSERT_EQUAL(
129         ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("float")), t.getTypeName());
130     t = ::cppu::UnoType< double >::get();
131     CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_DOUBLE, t.getTypeClass());
132     CPPUNIT_ASSERT_EQUAL(
133         ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("double")),
134         t.getTypeName());
135     t = ::cppu::UnoType< ::cppu::UnoCharType >::get();
136     CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_CHAR, t.getTypeClass());
137     CPPUNIT_ASSERT_EQUAL(
138         ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("char")), t.getTypeName());
139     t = ::cppu::UnoType< ::rtl::OUString >::get();
140     CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_STRING, t.getTypeClass());
141     CPPUNIT_ASSERT_EQUAL(
142         ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("string")),
143         t.getTypeName());
144     t = ::cppu::UnoType< css::uno::Type >::get();
145     CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_TYPE, t.getTypeClass());
146     CPPUNIT_ASSERT_EQUAL(
147         ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("type")), t.getTypeName());
148     t = ::cppu::UnoType< css::uno::Any >::get();
149     CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_ANY, t.getTypeClass());
150     CPPUNIT_ASSERT_EQUAL(
151         ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("any")), t.getTypeName());
152     t = ::cppu::UnoType< ::cppu::UnoSequenceType< ::sal_Int8 > >::get();
153     CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_SEQUENCE, t.getTypeClass());
154     CPPUNIT_ASSERT_EQUAL(
155         ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("[]byte")),
156         t.getTypeName());
157     CPPUNIT_ASSERT(
158         ::cppu::UnoType< css::uno::Sequence< ::sal_Int8 > >::get() == t);
159     t = ::cppu::UnoType<
160         ::cppu::UnoSequenceType< ::cppu::UnoUnsignedShortType > >::get();
161     CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_SEQUENCE, t.getTypeClass());
162     CPPUNIT_ASSERT_EQUAL(
163         ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("[]unsigned short")),
164         t.getTypeName());
165     t = ::cppu::UnoType<
166         ::cppu::UnoSequenceType< ::cppu::UnoCharType > >::get();
167     CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_SEQUENCE, t.getTypeClass());
168     CPPUNIT_ASSERT_EQUAL(
169         ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("[]char")),
170         t.getTypeName());
171     t = ::cppu::UnoType< ::cppu::UnoSequenceType< ::cppu::UnoSequenceType<
172         ::sal_Int8 > > >::get();
173     CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_SEQUENCE, t.getTypeClass());
174     CPPUNIT_ASSERT_EQUAL(
175         ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("[][]byte")),
176         t.getTypeName());
177     CPPUNIT_ASSERT(
178         ::cppu::UnoType<
179         css::uno::Sequence< css::uno::Sequence< ::sal_Int8 > > >::get() == t);
180     t = ::cppu::UnoType< ::cppu::UnoSequenceType< ::cppu::UnoSequenceType<
181         ::cppu::UnoUnsignedShortType > > >::get();
182     CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_SEQUENCE, t.getTypeClass());
183     CPPUNIT_ASSERT_EQUAL(
184         ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("[][]unsigned short")),
185         t.getTypeName());
186     t = ::cppu::UnoType< ::cppu::UnoSequenceType< ::cppu::UnoSequenceType<
187         ::cppu::UnoCharType > > >::get();
188     CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_SEQUENCE, t.getTypeClass());
189     CPPUNIT_ASSERT_EQUAL(
190         ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("[][]char")),
191         t.getTypeName());
192     t = ::cppu::UnoType< css::uno::TypeClass >::get();
193     CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_ENUM, t.getTypeClass());
194     CPPUNIT_ASSERT_EQUAL(
195         ::rtl::OUString(
196             RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uno.TypeClass")),
197         t.getTypeName());
198     t = ::cppu::UnoType< css::lang::EventObject >::get();
199     CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_STRUCT, t.getTypeClass());
200     CPPUNIT_ASSERT_EQUAL(
201         ::rtl::OUString(
202             RTL_CONSTASCII_USTRINGPARAM("com.sun.star.lang.EventObject")),
203         t.getTypeName());
204     CPPUNIT_ASSERT(::cppu::UnoType< DerivedStruct1 >::get() == t);
205     t = ::cppu::UnoType< css::beans::PropertyChangeEvent >::get();
206     CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_STRUCT, t.getTypeClass());
207     CPPUNIT_ASSERT_EQUAL(
208         ::rtl::OUString(
209             RTL_CONSTASCII_USTRINGPARAM(
210                 "com.sun.star.beans.PropertyChangeEvent")),
211         t.getTypeName());
212 #if !(defined __SUNPRO_CC && __SUNPRO_CC <= 0x550) // erroneous ambiguity stated
213     CPPUNIT_ASSERT(::cppu::UnoType< DerivedStruct2 >::get() == t);
214 #endif
215     t = ::cppu::UnoType< css::beans::Optional< ::sal_Int8 > >::get();
216     CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_STRUCT, t.getTypeClass());
217     CPPUNIT_ASSERT_EQUAL(
218         ::rtl::OUString(
219             RTL_CONSTASCII_USTRINGPARAM("com.sun.star.beans.Optional<byte>")),
220         t.getTypeName());
221     t = ::cppu::UnoType< css::uno::Exception >::get();
222     CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_EXCEPTION, t.getTypeClass());
223     CPPUNIT_ASSERT_EQUAL(
224         ::rtl::OUString(
225             RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uno.Exception")),
226         t.getTypeName());
227     CPPUNIT_ASSERT(::cppu::UnoType< DerivedException1 >::get() == t);
228     t = ::cppu::UnoType< css::uno::RuntimeException >::get();
229     CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_EXCEPTION, t.getTypeClass());
230     CPPUNIT_ASSERT_EQUAL(
231         ::rtl::OUString(
232             RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uno.RuntimeException")),
233         t.getTypeName());
234 #if !(defined __SUNPRO_CC && __SUNPRO_CC <= 0x550) // erroneous ambiguity stated
235     CPPUNIT_ASSERT(::cppu::UnoType< DerivedException2 >::get() == t);
236 #endif
237     t = ::cppu::UnoType< css::uno::XInterface >::get();
238     CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_INTERFACE, t.getTypeClass());
239     CPPUNIT_ASSERT_EQUAL(
240         ::rtl::OUString(
241             RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uno.XInterface")),
242         t.getTypeName());
243     CPPUNIT_ASSERT(
244         ::cppu::UnoType< css::uno::Reference< css::uno::XInterface > >::get() ==
245         t);
246     CPPUNIT_ASSERT(::cppu::UnoType< DerivedInterface1 >::get() == t);
247     CPPUNIT_ASSERT(
248         ::cppu::UnoType< css::uno::Reference< DerivedInterface1 > >::get() ==
249         t);
250     t = ::cppu::UnoType< css::uno::XComponentContext >::get();
251     CPPUNIT_ASSERT_EQUAL(css::uno::TypeClass_INTERFACE, t.getTypeClass());
252     CPPUNIT_ASSERT_EQUAL(
253         ::rtl::OUString(
254             RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uno.XComponentContext")),
255         t.getTypeName());
256     CPPUNIT_ASSERT(
257         ::cppu::UnoType<
258         css::uno::Reference< css::uno::XComponentContext > >::get() == t);
259 #if !(defined __SUNPRO_CC && __SUNPRO_CC <= 0x550) // erroneous ambiguity stated
260     CPPUNIT_ASSERT(::cppu::UnoType< DerivedInterface2 >::get() == t);
261     CPPUNIT_ASSERT(
262         ::cppu::UnoType< css::uno::Reference< DerivedInterface2 > >::get() ==
263         t);
264 #endif
265 }
266 
testGetTypeFavourUnsigned()267 void Test::testGetTypeFavourUnsigned() {
268     CPPUNIT_ASSERT(typeid(::sal_Unicode) == typeid(::sal_uInt16));
269     CPPUNIT_ASSERT(
270         ::getCppuType(static_cast< ::sal_Unicode * >(0)) ==
271         ::getCppuType(static_cast< ::sal_uInt16 * >(0)));
272     CPPUNIT_ASSERT(
273         ::cppu::getTypeFavourUnsigned(
274             static_cast< ::cppu::UnoVoidType * >(0)) ==
275         ::cppu::UnoType< ::cppu::UnoVoidType >::get());
276     CPPUNIT_ASSERT(
277         ::cppu::getTypeFavourUnsigned(static_cast< bool * >(0)) ==
278         ::cppu::UnoType< bool >::get());
279     CPPUNIT_ASSERT(
280         ::cppu::getTypeFavourUnsigned(static_cast< bool * >(0)) ==
281         ::getCppuType(static_cast< bool * >(0)));
282     CPPUNIT_ASSERT(
283         ::cppu::getTypeFavourUnsigned(static_cast< ::sal_Bool * >(0)) ==
284         ::cppu::UnoType< bool >::get());
285     CPPUNIT_ASSERT(
286         ::cppu::getTypeFavourUnsigned(static_cast< ::sal_Bool * >(0)) ==
287         ::getCppuType(static_cast< ::sal_Bool * >(0)));
288     CPPUNIT_ASSERT(
289         ::cppu::getTypeFavourUnsigned(static_cast< ::sal_Int8 * >(0)) ==
290         ::cppu::UnoType< ::sal_Int8 >::get());
291     CPPUNIT_ASSERT(
292         ::cppu::getTypeFavourUnsigned(static_cast< ::sal_Int8 * >(0)) ==
293         ::getCppuType(static_cast< ::sal_Int8 * >(0)));
294     CPPUNIT_ASSERT(
295         ::cppu::getTypeFavourUnsigned(static_cast< ::sal_Int16 * >(0)) ==
296         ::cppu::UnoType< ::sal_Int16 >::get());
297     CPPUNIT_ASSERT(
298         ::cppu::getTypeFavourUnsigned(static_cast< ::sal_Int16 * >(0)) ==
299         ::getCppuType(static_cast< ::sal_Int16 * >(0)));
300     CPPUNIT_ASSERT(
301         ::cppu::getTypeFavourUnsigned(
302             static_cast< ::cppu::UnoUnsignedShortType * >(0)) ==
303         ::cppu::UnoType< ::cppu::UnoUnsignedShortType >::get());
304     CPPUNIT_ASSERT(
305         ::cppu::getTypeFavourUnsigned(static_cast< ::sal_uInt16 * >(0)) ==
306         ::cppu::UnoType< ::cppu::UnoUnsignedShortType >::get());
307     CPPUNIT_ASSERT(
308         ::cppu::getTypeFavourUnsigned(static_cast< ::sal_uInt16 * >(0)) ==
309         ::getCppuType(static_cast< ::sal_uInt16 * >(0)));
310     CPPUNIT_ASSERT(
311         ::cppu::getTypeFavourUnsigned(static_cast< ::sal_Int32 * >(0)) ==
312         ::cppu::UnoType< ::sal_Int32 >::get());
313     CPPUNIT_ASSERT(
314         ::cppu::getTypeFavourUnsigned(static_cast< ::sal_Int32 * >(0)) ==
315         ::getCppuType(static_cast< ::sal_Int32 * >(0)));
316     CPPUNIT_ASSERT(
317         ::cppu::getTypeFavourUnsigned(static_cast< ::sal_uInt32 * >(0)) ==
318         ::cppu::UnoType< ::sal_uInt32 >::get());
319     CPPUNIT_ASSERT(
320         ::cppu::getTypeFavourUnsigned(static_cast< ::sal_uInt32 * >(0)) ==
321         ::getCppuType(static_cast< ::sal_uInt32 * >(0)));
322     CPPUNIT_ASSERT(
323         ::cppu::getTypeFavourUnsigned(static_cast< ::sal_Int64 * >(0)) ==
324         ::cppu::UnoType< ::sal_Int64 >::get());
325     CPPUNIT_ASSERT(
326         ::cppu::getTypeFavourUnsigned(static_cast< ::sal_Int64 * >(0)) ==
327         ::getCppuType(static_cast< ::sal_Int64 * >(0)));
328     CPPUNIT_ASSERT(
329         ::cppu::getTypeFavourUnsigned(static_cast< ::sal_uInt64 * >(0)) ==
330         ::cppu::UnoType< ::sal_uInt64 >::get());
331     CPPUNIT_ASSERT(
332         ::cppu::getTypeFavourUnsigned(static_cast< ::sal_uInt64 * >(0)) ==
333         ::getCppuType(static_cast< ::sal_uInt64 * >(0)));
334     CPPUNIT_ASSERT(
335         ::cppu::getTypeFavourUnsigned(static_cast< float * >(0)) ==
336         ::cppu::UnoType< float >::get());
337     CPPUNIT_ASSERT(
338         ::cppu::getTypeFavourUnsigned(static_cast< float * >(0)) ==
339         ::getCppuType(static_cast< float * >(0)));
340     CPPUNIT_ASSERT(
341         ::cppu::getTypeFavourUnsigned(static_cast< double * >(0)) ==
342         ::cppu::UnoType< double >::get());
343     CPPUNIT_ASSERT(
344         ::cppu::getTypeFavourUnsigned(static_cast< double * >(0)) ==
345         ::getCppuType(static_cast< double * >(0)));
346     CPPUNIT_ASSERT(
347         ::cppu::getTypeFavourUnsigned(
348             static_cast< ::cppu::UnoCharType * >(0)) ==
349         ::cppu::UnoType< ::cppu::UnoCharType >::get());
350     CPPUNIT_ASSERT(
351         ::cppu::getTypeFavourUnsigned(static_cast< ::sal_Unicode * >(0)) ==
352         ::cppu::UnoType< ::cppu::UnoUnsignedShortType >::get());
353     CPPUNIT_ASSERT(
354         ::cppu::getTypeFavourUnsigned(static_cast< ::sal_Unicode * >(0)) ==
355         ::getCppuType(static_cast< ::sal_Unicode * >(0)));
356     CPPUNIT_ASSERT(
357         ::cppu::getTypeFavourUnsigned(static_cast< ::rtl::OUString * >(0)) ==
358         ::cppu::UnoType< ::rtl::OUString >::get());
359     CPPUNIT_ASSERT(
360         ::cppu::getTypeFavourUnsigned(static_cast< ::rtl::OUString * >(0)) ==
361         ::getCppuType(static_cast< ::rtl::OUString * >(0)));
362     CPPUNIT_ASSERT(
363         ::cppu::getTypeFavourUnsigned(static_cast< css::uno::Type * >(0)) ==
364         ::cppu::UnoType< css::uno::Type >::get());
365     CPPUNIT_ASSERT(
366         ::cppu::getTypeFavourUnsigned(static_cast< css::uno::Type * >(0)) ==
367         ::getCppuType(static_cast< css::uno::Type * >(0)));
368     CPPUNIT_ASSERT(
369         ::cppu::getTypeFavourUnsigned(static_cast< css::uno::Any * >(0)) ==
370         ::cppu::UnoType< css::uno::Any >::get());
371     CPPUNIT_ASSERT(
372         ::cppu::getTypeFavourUnsigned(static_cast< css::uno::Any * >(0)) ==
373         ::getCppuType(static_cast< css::uno::Any * >(0)));
374     CPPUNIT_ASSERT(
375         ::cppu::getTypeFavourUnsigned(
376             static_cast<
377             ::cppu::UnoSequenceType< ::cppu::UnoUnsignedShortType > * >(0)) ==
378         ::cppu::UnoType<
379         ::cppu::UnoSequenceType< ::cppu::UnoUnsignedShortType > >::get());
380     CPPUNIT_ASSERT(
381         ::cppu::getTypeFavourUnsigned(
382             static_cast< css::uno::Sequence< ::sal_uInt16 > * >(0)) ==
383         ::cppu::UnoType<
384         ::cppu::UnoSequenceType< ::cppu::UnoUnsignedShortType > >::get());
385     CPPUNIT_ASSERT(
386         ::cppu::getTypeFavourUnsigned(
387             static_cast< css::uno::Sequence< ::sal_uInt16 > * >(0)) ==
388         ::getCppuType(static_cast< css::uno::Sequence< ::sal_uInt16 > * >(0)));
389     CPPUNIT_ASSERT(
390         ::cppu::getTypeFavourUnsigned(
391             static_cast< ::cppu::UnoSequenceType< ::cppu::UnoSequenceType<
392             ::cppu::UnoUnsignedShortType > > * >(0)) ==
393         ::cppu::UnoType< ::cppu::UnoSequenceType< ::cppu::UnoSequenceType<
394         ::cppu::UnoUnsignedShortType > > >::get());
395     CPPUNIT_ASSERT(
396         ::cppu::getTypeFavourUnsigned(
397             static_cast< css::uno::Sequence< css::uno::Sequence<
398             ::sal_uInt16 > > * >(0)) ==
399         ::cppu::UnoType< ::cppu::UnoSequenceType< ::cppu::UnoSequenceType<
400         ::cppu::UnoUnsignedShortType > > >::get());
401     CPPUNIT_ASSERT(
402         ::cppu::getTypeFavourUnsigned(
403             static_cast< css::uno::Sequence< css::uno::Sequence<
404             ::sal_uInt16 > > * >(0)) ==
405         ::getCppuType(
406             static_cast< css::uno::Sequence< css::uno::Sequence<
407             ::sal_uInt16 > > * >(0)));
408     CPPUNIT_ASSERT(
409         ::cppu::getTypeFavourUnsigned(
410             static_cast< css::uno::Sequence< ::sal_Unicode > * >(0)) ==
411         ::cppu::UnoType<
412         ::cppu::UnoSequenceType< ::cppu::UnoUnsignedShortType > >::get());
413     CPPUNIT_ASSERT(
414         ::cppu::getTypeFavourUnsigned(
415             static_cast< css::uno::Sequence< ::sal_Unicode > * >(0)) ==
416         ::getCppuType(static_cast< css::uno::Sequence< ::sal_Unicode > * >(0)));
417     CPPUNIT_ASSERT(
418         ::cppu::getTypeFavourUnsigned(
419             static_cast< css::uno::Sequence< css::uno::Sequence<
420             ::sal_Unicode > > * >(0)) ==
421         ::cppu::UnoType< ::cppu::UnoSequenceType< ::cppu::UnoSequenceType<
422         ::cppu::UnoUnsignedShortType > > >::get());
423     CPPUNIT_ASSERT(
424         ::cppu::getTypeFavourUnsigned(
425             static_cast< css::uno::Sequence< css::uno::Sequence<
426             ::sal_Unicode > > * >(0)) ==
427         ::getCppuType(
428             static_cast< css::uno::Sequence< css::uno::Sequence<
429             ::sal_Unicode > > * >(0)));
430     CPPUNIT_ASSERT(
431         ::cppu::getTypeFavourUnsigned(
432             static_cast< css::uno::TypeClass * >(0)) ==
433         ::cppu::UnoType< css::uno::TypeClass >::get());
434     CPPUNIT_ASSERT(
435         ::cppu::getTypeFavourUnsigned(
436             static_cast< css::uno::TypeClass * >(0)) ==
437         ::getCppuType(static_cast< css::uno::TypeClass * >(0)));
438     CPPUNIT_ASSERT(
439         ::cppu::getTypeFavourUnsigned(
440             static_cast< css::lang::EventObject * >(0)) ==
441         ::cppu::UnoType< css::lang::EventObject >::get());
442     CPPUNIT_ASSERT(
443         ::cppu::getTypeFavourUnsigned(
444             static_cast< css::lang::EventObject * >(0)) ==
445         ::getCppuType(static_cast< css::lang::EventObject * >(0)));
446     CPPUNIT_ASSERT(
447         ::cppu::getTypeFavourUnsigned(static_cast< DerivedStruct1 * >(0)) ==
448         ::cppu::UnoType< css::lang::EventObject >::get());
449     CPPUNIT_ASSERT(
450         ::cppu::getTypeFavourUnsigned(static_cast< DerivedStruct1 * >(0)) ==
451         ::getCppuType(static_cast< DerivedStruct1 * >(0)));
452     CPPUNIT_ASSERT(
453         ::cppu::getTypeFavourUnsigned(
454             static_cast< css::beans::PropertyChangeEvent * >(0)) ==
455         ::cppu::UnoType< css::beans::PropertyChangeEvent >::get());
456     CPPUNIT_ASSERT(
457         ::cppu::getTypeFavourUnsigned(
458             static_cast< css::beans::PropertyChangeEvent * >(0)) ==
459         ::getCppuType(static_cast< css::beans::PropertyChangeEvent * >(0)));
460 #if !(defined __SUNPRO_CC && __SUNPRO_CC <= 0x550) // erroneous ambiguity stated
461     CPPUNIT_ASSERT(
462         ::cppu::getTypeFavourUnsigned(static_cast< DerivedStruct2 * >(0)) ==
463         ::cppu::UnoType< css::beans::PropertyChangeEvent >::get());
464     CPPUNIT_ASSERT(
465         ::cppu::getTypeFavourUnsigned(static_cast< DerivedStruct2 * >(0)) ==
466         ::getCppuType(static_cast< DerivedStruct2 * >(0)));
467 #endif
468     CPPUNIT_ASSERT(
469         ::cppu::getTypeFavourUnsigned(
470             static_cast< css::beans::Optional< ::sal_Int8 > * >(0)) ==
471         ::cppu::UnoType< css::beans::Optional< ::sal_Int8 > >::get());
472     CPPUNIT_ASSERT(
473         ::cppu::getTypeFavourUnsigned(
474             static_cast< css::beans::Optional< ::sal_Int8 > * >(0)) ==
475         ::getCppuType(static_cast< css::beans::Optional< ::sal_Int8 > * >(0)));
476     CPPUNIT_ASSERT(
477         ::cppu::getTypeFavourUnsigned(
478             static_cast< css::uno::Exception * >(0)) ==
479         ::cppu::UnoType< css::uno::Exception >::get());
480     CPPUNIT_ASSERT(
481         ::cppu::getTypeFavourUnsigned(
482             static_cast< css::uno::Exception * >(0)) ==
483         ::getCppuType(static_cast< css::uno::Exception * >(0)));
484     CPPUNIT_ASSERT(
485         ::cppu::getTypeFavourUnsigned(static_cast< DerivedException1 * >(0)) ==
486         ::cppu::UnoType< css::uno::Exception >::get());
487     CPPUNIT_ASSERT(
488         ::cppu::getTypeFavourUnsigned(static_cast< DerivedException1 * >(0)) ==
489         ::getCppuType(static_cast< DerivedException1 * >(0)));
490     CPPUNIT_ASSERT(
491         ::cppu::getTypeFavourUnsigned(
492             static_cast< css::uno::RuntimeException * >(0)) ==
493         ::cppu::UnoType< css::uno::RuntimeException >::get());
494     CPPUNIT_ASSERT(
495         ::cppu::getTypeFavourUnsigned(
496             static_cast< css::uno::RuntimeException * >(0)) ==
497         ::getCppuType(static_cast< css::uno::RuntimeException * >(0)));
498 #if !(defined __SUNPRO_CC && __SUNPRO_CC <= 0x550) // erroneous ambiguity stated
499     CPPUNIT_ASSERT(
500         ::cppu::getTypeFavourUnsigned(static_cast< DerivedException2 * >(0)) ==
501         ::cppu::UnoType< css::uno::RuntimeException >::get());
502     CPPUNIT_ASSERT(
503         ::cppu::getTypeFavourUnsigned(static_cast< DerivedException2 * >(0)) ==
504         ::getCppuType(static_cast< DerivedException2 * >(0)));
505 #endif
506     CPPUNIT_ASSERT(
507         ::cppu::getTypeFavourUnsigned(
508             static_cast< css::uno::XInterface * >(0)) ==
509         ::cppu::UnoType< css::uno::XInterface >::get());
510     CPPUNIT_ASSERT(
511         ::cppu::getTypeFavourUnsigned(
512             static_cast< css::uno::Reference< css::uno::XInterface > * >(0)) ==
513         ::cppu::UnoType< css::uno::XInterface >::get());
514     CPPUNIT_ASSERT(
515         ::cppu::getTypeFavourUnsigned(
516             static_cast< css::uno::Reference< css::uno::XInterface > * >(0)) ==
517         ::getCppuType(
518             static_cast< css::uno::Reference< css::uno::XInterface > * >(0)));
519     CPPUNIT_ASSERT(
520         ::cppu::getTypeFavourUnsigned(static_cast< DerivedInterface1 * >(0)) ==
521         ::cppu::UnoType< css::uno::XInterface >::get());
522     CPPUNIT_ASSERT(
523         ::cppu::getTypeFavourUnsigned(
524             static_cast< css::uno::Reference< DerivedInterface1 > * >(0)) ==
525         ::cppu::UnoType< css::uno::XInterface >::get());
526     CPPUNIT_ASSERT(
527         ::cppu::getTypeFavourUnsigned(
528             static_cast< css::uno::XComponentContext * >(0)) ==
529         ::cppu::UnoType< css::uno::XComponentContext >::get());
530     CPPUNIT_ASSERT(
531         ::cppu::getTypeFavourUnsigned(
532             static_cast<
533             css::uno::Reference< css::uno::XComponentContext > * >(0)) ==
534         ::cppu::UnoType< css::uno::XComponentContext >::get());
535     CPPUNIT_ASSERT(
536         ::cppu::getTypeFavourUnsigned(
537             static_cast<
538             css::uno::Reference< css::uno::XComponentContext > * >(0)) ==
539         ::getCppuType(
540             static_cast<
541             css::uno::Reference< css::uno::XComponentContext > * >(0)));
542 #if !(defined __SUNPRO_CC && __SUNPRO_CC <= 0x550) // erroneous ambiguity stated
543     CPPUNIT_ASSERT(
544         ::cppu::getTypeFavourUnsigned(static_cast< DerivedInterface2 * >(0)) ==
545         ::cppu::UnoType< css::uno::XComponentContext >::get());
546     CPPUNIT_ASSERT(
547         ::cppu::getTypeFavourUnsigned(
548             static_cast< css::uno::Reference< DerivedInterface2 > * >(0)) ==
549         ::cppu::UnoType< css::uno::XComponentContext >::get());
550 #endif
551 }
552 
testGetTypeFavourChar()553 void Test::testGetTypeFavourChar() {
554     CPPUNIT_ASSERT(typeid(::sal_Unicode) == typeid(::sal_uInt16));
555     CPPUNIT_ASSERT(
556         ::getCppuType< ::sal_Unicode >() == ::getCppuType< ::sal_uInt16 >());
557     CPPUNIT_ASSERT(
558         ::cppu::getTypeFavourChar(static_cast< ::cppu::UnoVoidType * >(0)) ==
559         ::cppu::UnoType< ::cppu::UnoVoidType >::get());
560     CPPUNIT_ASSERT(
561         ::cppu::getTypeFavourChar(static_cast< bool * >(0)) ==
562         ::cppu::UnoType< bool >::get());
563     CPPUNIT_ASSERT(
564         ::cppu::getTypeFavourChar(static_cast< bool * >(0)) ==
565         ::getCppuType< bool >());
566     CPPUNIT_ASSERT(
567         ::cppu::getTypeFavourChar(static_cast< ::sal_Bool * >(0)) ==
568         ::cppu::UnoType< bool >::get());
569     CPPUNIT_ASSERT(
570         ::cppu::getTypeFavourChar(static_cast< ::sal_Bool * >(0)) ==
571         ::getCppuType< ::sal_Bool >());
572     CPPUNIT_ASSERT(
573         ::cppu::getTypeFavourChar(static_cast< ::sal_Int8 * >(0)) ==
574         ::cppu::UnoType< ::sal_Int8 >::get());
575     CPPUNIT_ASSERT(
576         ::cppu::getTypeFavourChar(static_cast< ::sal_Int8 * >(0)) ==
577         ::getCppuType< ::sal_Int8 >());
578     CPPUNIT_ASSERT(
579         ::cppu::getTypeFavourChar(static_cast< ::sal_Int16 * >(0)) ==
580         ::cppu::UnoType< ::sal_Int16 >::get());
581     CPPUNIT_ASSERT(
582         ::cppu::getTypeFavourChar(static_cast< ::sal_Int16 * >(0)) ==
583         ::getCppuType< ::sal_Int16 >());
584     CPPUNIT_ASSERT(
585         ::cppu::getTypeFavourChar(
586             static_cast< ::cppu::UnoUnsignedShortType * >(0)) ==
587         ::cppu::UnoType< ::cppu::UnoUnsignedShortType >::get());
588     CPPUNIT_ASSERT(
589         ::cppu::getTypeFavourChar(static_cast< ::sal_uInt16 * >(0)) ==
590         ::cppu::UnoType< ::cppu::UnoCharType >::get());
591     CPPUNIT_ASSERT(
592         ::cppu::getTypeFavourChar(static_cast< ::sal_Int32 * >(0)) ==
593         ::cppu::UnoType< ::sal_Int32 >::get());
594     CPPUNIT_ASSERT(
595         ::cppu::getTypeFavourChar(static_cast< ::sal_Int32 * >(0)) ==
596         ::getCppuType< ::sal_Int32 >());
597     CPPUNIT_ASSERT(
598         ::cppu::getTypeFavourChar(static_cast< ::sal_uInt32 * >(0)) ==
599         ::cppu::UnoType< ::sal_uInt32 >::get());
600     CPPUNIT_ASSERT(
601         ::cppu::getTypeFavourChar(static_cast< ::sal_uInt32 * >(0)) ==
602         ::getCppuType< ::sal_uInt32 >());
603     CPPUNIT_ASSERT(
604         ::cppu::getTypeFavourChar(static_cast< ::sal_Int64 * >(0)) ==
605         ::cppu::UnoType< ::sal_Int64 >::get());
606     CPPUNIT_ASSERT(
607         ::cppu::getTypeFavourChar(static_cast< ::sal_Int64 * >(0)) ==
608         ::getCppuType< ::sal_Int64 >());
609     CPPUNIT_ASSERT(
610         ::cppu::getTypeFavourChar(static_cast< ::sal_uInt64 * >(0)) ==
611         ::cppu::UnoType< ::sal_uInt64 >::get());
612     CPPUNIT_ASSERT(
613         ::cppu::getTypeFavourChar(static_cast< ::sal_uInt64 * >(0)) ==
614         ::getCppuType< ::sal_uInt64 >());
615     CPPUNIT_ASSERT(
616         ::cppu::getTypeFavourChar(static_cast< float * >(0)) ==
617         ::cppu::UnoType< float >::get());
618     CPPUNIT_ASSERT(
619         ::cppu::getTypeFavourChar(static_cast< float * >(0)) ==
620         ::getCppuType< float >());
621     CPPUNIT_ASSERT(
622         ::cppu::getTypeFavourChar(static_cast< double * >(0)) ==
623         ::cppu::UnoType< double >::get());
624     CPPUNIT_ASSERT(
625         ::cppu::getTypeFavourChar(static_cast< double * >(0)) ==
626         ::getCppuType< double >());
627     CPPUNIT_ASSERT(
628         ::cppu::getTypeFavourChar(static_cast< ::cppu::UnoCharType * >(0)) ==
629         ::cppu::UnoType< ::cppu::UnoCharType >::get());
630     CPPUNIT_ASSERT(
631         ::cppu::getTypeFavourChar(static_cast< ::sal_Unicode * >(0)) ==
632         ::cppu::UnoType< ::cppu::UnoCharType >::get());
633     CPPUNIT_ASSERT(
634         ::cppu::getTypeFavourChar(static_cast< ::sal_Unicode * >(0)) ==
635         ::getCppuType< ::sal_Unicode >());
636     CPPUNIT_ASSERT(
637         ::cppu::getTypeFavourChar(static_cast< ::rtl::OUString * >(0)) ==
638         ::cppu::UnoType< ::rtl::OUString >::get());
639     CPPUNIT_ASSERT(
640         ::cppu::getTypeFavourChar(static_cast< ::rtl::OUString * >(0)) ==
641         ::getCppuType< ::rtl::OUString >());
642     CPPUNIT_ASSERT(
643         ::cppu::getTypeFavourChar(static_cast< css::uno::Type * >(0)) ==
644         ::cppu::UnoType< css::uno::Type >::get());
645     CPPUNIT_ASSERT(
646         ::cppu::getTypeFavourChar(static_cast< css::uno::Type * >(0)) ==
647         ::getCppuType< css::uno::Type >());
648     CPPUNIT_ASSERT(
649         ::cppu::getTypeFavourChar(static_cast< css::uno::Any * >(0)) ==
650         ::cppu::UnoType< css::uno::Any >::get());
651     CPPUNIT_ASSERT(
652         ::cppu::getTypeFavourChar(static_cast< css::uno::Any * >(0)) ==
653         ::getCppuType< css::uno::Any >());
654     CPPUNIT_ASSERT(
655         ::cppu::getTypeFavourChar(
656             static_cast<
657             ::cppu::UnoSequenceType< ::cppu::UnoUnsignedShortType > * >(0)) ==
658         ::cppu::UnoType<
659         ::cppu::UnoSequenceType< ::cppu::UnoUnsignedShortType > >::get());
660     CPPUNIT_ASSERT(
661         ::cppu::getTypeFavourChar(
662             static_cast< css::uno::Sequence< ::sal_uInt16 > * >(0)) ==
663         ::cppu::UnoType<
664         ::cppu::UnoSequenceType< ::cppu::UnoCharType > >::get());
665     CPPUNIT_ASSERT(
666         ::cppu::getTypeFavourChar(
667             static_cast< ::cppu::UnoSequenceType< ::cppu::UnoSequenceType<
668             ::cppu::UnoUnsignedShortType > > * >(0)) ==
669         ::cppu::UnoType< ::cppu::UnoSequenceType< ::cppu::UnoSequenceType<
670         ::cppu::UnoUnsignedShortType > > >::get());
671     CPPUNIT_ASSERT(
672         ::cppu::getTypeFavourChar(
673             static_cast< css::uno::Sequence< css::uno::Sequence<
674             ::sal_uInt16 > > * >(0)) ==
675         ::cppu::UnoType< ::cppu::UnoSequenceType< ::cppu::UnoSequenceType<
676         ::cppu::UnoCharType > > >::get());
677     CPPUNIT_ASSERT(
678         ::cppu::getTypeFavourChar(
679             static_cast< css::uno::Sequence< ::sal_Unicode > * >(0)) ==
680         ::cppu::UnoType<
681         ::cppu::UnoSequenceType< ::cppu::UnoCharType > >::get());
682     CPPUNIT_ASSERT(
683         ::cppu::getTypeFavourChar(
684             static_cast< css::uno::Sequence< css::uno::Sequence<
685             ::sal_Unicode > > * >(0)) ==
686         ::cppu::UnoType< ::cppu::UnoSequenceType< ::cppu::UnoSequenceType<
687         ::cppu::UnoCharType > > >::get());
688     CPPUNIT_ASSERT(
689         ::cppu::getTypeFavourChar(static_cast< css::uno::TypeClass * >(0)) ==
690         ::cppu::UnoType< css::uno::TypeClass >::get());
691     CPPUNIT_ASSERT(
692         ::cppu::getTypeFavourChar(static_cast< css::uno::TypeClass * >(0)) ==
693         ::getCppuType< css::uno::TypeClass >());
694     CPPUNIT_ASSERT(
695         ::cppu::getTypeFavourChar(
696             static_cast< css::lang::EventObject * >(0)) ==
697         ::cppu::UnoType< css::lang::EventObject >::get());
698     CPPUNIT_ASSERT(
699         ::cppu::getTypeFavourChar(
700             static_cast< css::lang::EventObject * >(0)) ==
701         ::getCppuType< css::lang::EventObject >());
702     CPPUNIT_ASSERT(
703         ::cppu::getTypeFavourChar(static_cast< DerivedStruct1 * >(0)) ==
704         ::cppu::UnoType< css::lang::EventObject >::get());
705     CPPUNIT_ASSERT(
706         ::cppu::getTypeFavourChar(static_cast< DerivedStruct1 * >(0)) ==
707         ::getCppuType< DerivedStruct1 >());
708     CPPUNIT_ASSERT(
709         ::cppu::getTypeFavourChar(
710             static_cast< css::beans::PropertyChangeEvent * >(0)) ==
711         ::cppu::UnoType< css::beans::PropertyChangeEvent >::get());
712     CPPUNIT_ASSERT(
713         ::cppu::getTypeFavourChar(
714             static_cast< css::beans::PropertyChangeEvent * >(0)) ==
715         ::getCppuType< css::beans::PropertyChangeEvent >());
716 #if !(defined __SUNPRO_CC && __SUNPRO_CC <= 0x550) // erroneous ambiguity stated
717     CPPUNIT_ASSERT(
718         ::cppu::getTypeFavourChar(static_cast< DerivedStruct2 * >(0)) ==
719         ::cppu::UnoType< css::beans::PropertyChangeEvent >::get());
720     CPPUNIT_ASSERT(
721         ::cppu::getTypeFavourChar(static_cast< DerivedStruct2 * >(0)) ==
722         ::getCppuType< DerivedStruct2 >());
723 #endif
724     CPPUNIT_ASSERT(
725         ::cppu::getTypeFavourChar(
726             static_cast< css::beans::Optional< ::sal_Int8 > * >(0)) ==
727         ::cppu::UnoType< css::beans::Optional< ::sal_Int8 > >::get());
728     CPPUNIT_ASSERT(
729         ::cppu::getTypeFavourChar(
730             static_cast< css::beans::Optional< ::sal_Int8 > * >(0)) ==
731         ::getCppuType< css::beans::Optional< ::sal_Int8 > >());
732     CPPUNIT_ASSERT(
733         ::cppu::getTypeFavourChar(static_cast< css::uno::Exception * >(0)) ==
734         ::cppu::UnoType< css::uno::Exception >::get());
735     CPPUNIT_ASSERT(
736         ::cppu::getTypeFavourChar(static_cast< css::uno::Exception * >(0)) ==
737         ::getCppuType< css::uno::Exception >());
738     CPPUNIT_ASSERT(
739         ::cppu::getTypeFavourChar(static_cast< DerivedException1 * >(0)) ==
740         ::cppu::UnoType< css::uno::Exception >::get());
741     CPPUNIT_ASSERT(
742         ::cppu::getTypeFavourChar(static_cast< DerivedException1 * >(0)) ==
743         ::getCppuType< DerivedException1 >());
744     CPPUNIT_ASSERT(
745         ::cppu::getTypeFavourChar(
746             static_cast< css::uno::RuntimeException * >(0)) ==
747         ::cppu::UnoType< css::uno::RuntimeException >::get());
748     CPPUNIT_ASSERT(
749         ::cppu::getTypeFavourChar(
750             static_cast< css::uno::RuntimeException * >(0)) ==
751         ::getCppuType< css::uno::RuntimeException >());
752 #if !(defined __SUNPRO_CC && __SUNPRO_CC <= 0x550) // erroneous ambiguity stated
753     CPPUNIT_ASSERT(
754         ::cppu::getTypeFavourChar(static_cast< DerivedException2 * >(0)) ==
755         ::cppu::UnoType< css::uno::RuntimeException >::get());
756     CPPUNIT_ASSERT(
757         ::cppu::getTypeFavourChar(static_cast< DerivedException2 * >(0)) ==
758         ::getCppuType< DerivedException2 >());
759 #endif
760     CPPUNIT_ASSERT(
761         ::cppu::getTypeFavourChar(
762             static_cast< css::uno::XInterface * >(0)) ==
763         ::cppu::UnoType< css::uno::XInterface >::get());
764     CPPUNIT_ASSERT(
765         ::cppu::getTypeFavourChar(
766             static_cast< css::uno::Reference< css::uno::XInterface > * >(0)) ==
767         ::cppu::UnoType< css::uno::XInterface >::get());
768     CPPUNIT_ASSERT(
769         ::cppu::getTypeFavourChar(
770             static_cast< css::uno::Reference< css::uno::XInterface > * >(0)) ==
771         ::getCppuType< css::uno::Reference< css::uno::XInterface > >());
772     CPPUNIT_ASSERT(
773         ::cppu::getTypeFavourChar(static_cast< DerivedInterface1 * >(0)) ==
774         ::cppu::UnoType< css::uno::XInterface >::get());
775     CPPUNIT_ASSERT(
776         ::cppu::getTypeFavourChar(
777             static_cast< css::uno::Reference< DerivedInterface1 > * >(0)) ==
778         ::cppu::UnoType< css::uno::XInterface >::get());
779     CPPUNIT_ASSERT(
780         ::cppu::getTypeFavourChar(
781             static_cast< css::uno::XComponentContext * >(0)) ==
782         ::cppu::UnoType< css::uno::XComponentContext >::get());
783     CPPUNIT_ASSERT(
784         ::cppu::getTypeFavourChar(
785             static_cast<
786             css::uno::Reference< css::uno::XComponentContext > * >(0)) ==
787         ::cppu::UnoType< css::uno::XComponentContext >::get());
788     CPPUNIT_ASSERT(
789         ::cppu::getTypeFavourChar(
790             static_cast<
791             css::uno::Reference< css::uno::XComponentContext > * >(0)) ==
792         ::getCppuType< css::uno::Reference< css::uno::XComponentContext > >());
793 #if !(defined __SUNPRO_CC && __SUNPRO_CC <= 0x550) // erroneous ambiguity stated
794     CPPUNIT_ASSERT(
795         ::cppu::getTypeFavourChar(static_cast< DerivedInterface2 * >(0)) ==
796         ::cppu::UnoType< css::uno::XComponentContext >::get());
797     CPPUNIT_ASSERT(
798         ::cppu::getTypeFavourChar(
799             static_cast< css::uno::Reference< DerivedInterface2 > * >(0)) ==
800         ::cppu::UnoType< css::uno::XComponentContext >::get());
801 #endif
802 }
803 
804 CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(Test, "alltests");
805 
806 }
807 
808 NOADDITIONAL;
809