xref: /aoo4110/main/cppu/qa/test_any.cxx (revision b1cdbd2c)
1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski // MARKER(update_precomp.py): autogen include statement, do not remove
25*b1cdbd2cSJim Jagielski #include "precompiled_cppu.hxx"
26*b1cdbd2cSJim Jagielski 
27*b1cdbd2cSJim Jagielski #include "sal/config.h"
28*b1cdbd2cSJim Jagielski 
29*b1cdbd2cSJim Jagielski #include <stdlib.h> // wntmsci10 does not like <cstdlib>
30*b1cdbd2cSJim Jagielski 
31*b1cdbd2cSJim Jagielski #include "Enum1.hpp"
32*b1cdbd2cSJim Jagielski #include "Enum2.hpp"
33*b1cdbd2cSJim Jagielski #include "Exception1.hpp"
34*b1cdbd2cSJim Jagielski #include "Exception2.hpp"
35*b1cdbd2cSJim Jagielski #include "Exception2a.hpp"
36*b1cdbd2cSJim Jagielski #include "Exception2b.hpp"
37*b1cdbd2cSJim Jagielski #include "Interface1.hpp"
38*b1cdbd2cSJim Jagielski #include "Interface2.hpp"
39*b1cdbd2cSJim Jagielski #include "Interface2a.hpp"
40*b1cdbd2cSJim Jagielski #include "Interface2b.hpp"
41*b1cdbd2cSJim Jagielski #include "Interface3.hpp"
42*b1cdbd2cSJim Jagielski #include "Poly.hpp"
43*b1cdbd2cSJim Jagielski #include "Struct1.hpp"
44*b1cdbd2cSJim Jagielski #include "Struct2.hpp"
45*b1cdbd2cSJim Jagielski #include "Struct2a.hpp"
46*b1cdbd2cSJim Jagielski #include "Struct2b.hpp"
47*b1cdbd2cSJim Jagielski #include "boost/type_traits/is_same.hpp"
48*b1cdbd2cSJim Jagielski #include "com/sun/star/uno/Any.hxx"
49*b1cdbd2cSJim Jagielski #include "com/sun/star/uno/Reference.hxx"
50*b1cdbd2cSJim Jagielski #include "com/sun/star/uno/RuntimeException.hpp"
51*b1cdbd2cSJim Jagielski #include "com/sun/star/uno/Sequence.hxx"
52*b1cdbd2cSJim Jagielski #include "com/sun/star/uno/Type.hxx"
53*b1cdbd2cSJim Jagielski #include "com/sun/star/uno/XInterface.hpp"
54*b1cdbd2cSJim Jagielski #include "testshl/simpleheader.hxx"
55*b1cdbd2cSJim Jagielski #include "osl/diagnose.h"
56*b1cdbd2cSJim Jagielski #include "osl/interlck.h"
57*b1cdbd2cSJim Jagielski #include "rtl/string.h"
58*b1cdbd2cSJim Jagielski #include "rtl/ustring.h"
59*b1cdbd2cSJim Jagielski #include "rtl/ustring.hxx"
60*b1cdbd2cSJim Jagielski #include "sal/types.h"
61*b1cdbd2cSJim Jagielski 
62*b1cdbd2cSJim Jagielski namespace {
63*b1cdbd2cSJim Jagielski 
64*b1cdbd2cSJim Jagielski namespace css = com::sun::star;
65*b1cdbd2cSJim Jagielski 
66*b1cdbd2cSJim Jagielski class Base {
67*b1cdbd2cSJim Jagielski public:
Base()68*b1cdbd2cSJim Jagielski     Base(): m_count(0) {}
69*b1cdbd2cSJim Jagielski 
acquire()70*b1cdbd2cSJim Jagielski     void acquire() {
71*b1cdbd2cSJim Jagielski         if (osl_incrementInterlockedCount(&m_count) == SAL_MAX_INT32) {
72*b1cdbd2cSJim Jagielski             abort();
73*b1cdbd2cSJim Jagielski         }
74*b1cdbd2cSJim Jagielski     }
75*b1cdbd2cSJim Jagielski 
release()76*b1cdbd2cSJim Jagielski     void release() {
77*b1cdbd2cSJim Jagielski         if (osl_decrementInterlockedCount(&m_count) == 0) {
78*b1cdbd2cSJim Jagielski             delete this;
79*b1cdbd2cSJim Jagielski         }
80*b1cdbd2cSJim Jagielski     }
81*b1cdbd2cSJim Jagielski 
82*b1cdbd2cSJim Jagielski protected:
~Base()83*b1cdbd2cSJim Jagielski     virtual ~Base() {}
84*b1cdbd2cSJim Jagielski 
85*b1cdbd2cSJim Jagielski private:
86*b1cdbd2cSJim Jagielski     Base(Base &); // not declared
87*b1cdbd2cSJim Jagielski     void operator =(Base &); // not declared
88*b1cdbd2cSJim Jagielski 
89*b1cdbd2cSJim Jagielski     oslInterlockedCount m_count;
90*b1cdbd2cSJim Jagielski };
91*b1cdbd2cSJim Jagielski 
92*b1cdbd2cSJim Jagielski class Impl1: public Interface1, private Base {
93*b1cdbd2cSJim Jagielski public:
queryInterface(css::uno::Type const & type)94*b1cdbd2cSJim Jagielski     virtual css::uno::Any SAL_CALL queryInterface(css::uno::Type const & type)
95*b1cdbd2cSJim Jagielski         throw (css::uno::RuntimeException)
96*b1cdbd2cSJim Jagielski     {
97*b1cdbd2cSJim Jagielski         if (type
98*b1cdbd2cSJim Jagielski             == getCppuType< css::uno::Reference< css::uno::XInterface > >())
99*b1cdbd2cSJim Jagielski         {
100*b1cdbd2cSJim Jagielski             css::uno::Reference< css::uno::XInterface > ref(
101*b1cdbd2cSJim Jagielski                 static_cast< css::uno::XInterface * >(this));
102*b1cdbd2cSJim Jagielski             return css::uno::Any(&ref, type);
103*b1cdbd2cSJim Jagielski         } else if (type == getCppuType< css::uno::Reference< Interface1 > >()) {
104*b1cdbd2cSJim Jagielski             css::uno::Reference< Interface1 > ref(this);
105*b1cdbd2cSJim Jagielski             return css::uno::Any(&ref, type);
106*b1cdbd2cSJim Jagielski         } else {
107*b1cdbd2cSJim Jagielski             return css::uno::Any();
108*b1cdbd2cSJim Jagielski         }
109*b1cdbd2cSJim Jagielski     }
110*b1cdbd2cSJim Jagielski 
acquire()111*b1cdbd2cSJim Jagielski     virtual void SAL_CALL acquire() throw () {
112*b1cdbd2cSJim Jagielski         Base::acquire();
113*b1cdbd2cSJim Jagielski     }
114*b1cdbd2cSJim Jagielski 
release()115*b1cdbd2cSJim Jagielski     virtual void SAL_CALL release() throw () {
116*b1cdbd2cSJim Jagielski         Base::release();
117*b1cdbd2cSJim Jagielski     }
118*b1cdbd2cSJim Jagielski };
119*b1cdbd2cSJim Jagielski 
120*b1cdbd2cSJim Jagielski class Impl2: public Interface2a, public Interface3, private Base {
121*b1cdbd2cSJim Jagielski public:
queryInterface(css::uno::Type const & type)122*b1cdbd2cSJim Jagielski     virtual css::uno::Any SAL_CALL queryInterface(css::uno::Type const & type)
123*b1cdbd2cSJim Jagielski         throw (css::uno::RuntimeException)
124*b1cdbd2cSJim Jagielski     {
125*b1cdbd2cSJim Jagielski         if (type
126*b1cdbd2cSJim Jagielski             == getCppuType< css::uno::Reference< css::uno::XInterface > >())
127*b1cdbd2cSJim Jagielski         {
128*b1cdbd2cSJim Jagielski             css::uno::Reference< css::uno::XInterface > ref(
129*b1cdbd2cSJim Jagielski                 static_cast< css::uno::XInterface * >(
130*b1cdbd2cSJim Jagielski                     static_cast< Interface2a * >(this)));
131*b1cdbd2cSJim Jagielski             return css::uno::Any(&ref, type);
132*b1cdbd2cSJim Jagielski         } else if (type == getCppuType< css::uno::Reference< Interface2 > >()) {
133*b1cdbd2cSJim Jagielski             css::uno::Reference< Interface2 > ref(this);
134*b1cdbd2cSJim Jagielski             return css::uno::Any(&ref, type);
135*b1cdbd2cSJim Jagielski         } else if (type == getCppuType< css::uno::Reference< Interface2a > >())
136*b1cdbd2cSJim Jagielski         {
137*b1cdbd2cSJim Jagielski             css::uno::Reference< Interface2a > ref(this);
138*b1cdbd2cSJim Jagielski             return css::uno::Any(&ref, type);
139*b1cdbd2cSJim Jagielski         } else if (type == getCppuType< css::uno::Reference< Interface3 > >()) {
140*b1cdbd2cSJim Jagielski             css::uno::Reference< Interface3 > ref(this);
141*b1cdbd2cSJim Jagielski             return css::uno::Any(&ref, type);
142*b1cdbd2cSJim Jagielski         } else {
143*b1cdbd2cSJim Jagielski             return css::uno::Any();
144*b1cdbd2cSJim Jagielski         }
145*b1cdbd2cSJim Jagielski     }
146*b1cdbd2cSJim Jagielski 
acquire()147*b1cdbd2cSJim Jagielski     virtual void SAL_CALL acquire() throw () {
148*b1cdbd2cSJim Jagielski         Base::acquire();
149*b1cdbd2cSJim Jagielski     }
150*b1cdbd2cSJim Jagielski 
release()151*b1cdbd2cSJim Jagielski     virtual void SAL_CALL release() throw () {
152*b1cdbd2cSJim Jagielski         Base::release();
153*b1cdbd2cSJim Jagielski     }
154*b1cdbd2cSJim Jagielski };
155*b1cdbd2cSJim Jagielski 
156*b1cdbd2cSJim Jagielski class Impl2b: public Interface2b, private Base {
157*b1cdbd2cSJim Jagielski public:
queryInterface(css::uno::Type const & type)158*b1cdbd2cSJim Jagielski     virtual css::uno::Any SAL_CALL queryInterface(css::uno::Type const & type)
159*b1cdbd2cSJim Jagielski         throw (css::uno::RuntimeException)
160*b1cdbd2cSJim Jagielski     {
161*b1cdbd2cSJim Jagielski         if (type
162*b1cdbd2cSJim Jagielski             == getCppuType< css::uno::Reference< css::uno::XInterface > >())
163*b1cdbd2cSJim Jagielski         {
164*b1cdbd2cSJim Jagielski             css::uno::Reference< css::uno::XInterface > ref(
165*b1cdbd2cSJim Jagielski                 static_cast< css::uno::XInterface * >(
166*b1cdbd2cSJim Jagielski                     static_cast< Interface2a * >(this)));
167*b1cdbd2cSJim Jagielski             return css::uno::Any(&ref, type);
168*b1cdbd2cSJim Jagielski         } else if (type == getCppuType< css::uno::Reference< Interface2 > >()) {
169*b1cdbd2cSJim Jagielski             css::uno::Reference< Interface2 > ref(this);
170*b1cdbd2cSJim Jagielski             return css::uno::Any(&ref, type);
171*b1cdbd2cSJim Jagielski         } else if (type == getCppuType< css::uno::Reference< Interface2a > >())
172*b1cdbd2cSJim Jagielski         {
173*b1cdbd2cSJim Jagielski             css::uno::Reference< Interface2a > ref(this);
174*b1cdbd2cSJim Jagielski             return css::uno::Any(&ref, type);
175*b1cdbd2cSJim Jagielski         } else if (type == getCppuType< css::uno::Reference< Interface2b > >())
176*b1cdbd2cSJim Jagielski         {
177*b1cdbd2cSJim Jagielski             css::uno::Reference< Interface2b > ref(this);
178*b1cdbd2cSJim Jagielski             return css::uno::Any(&ref, type);
179*b1cdbd2cSJim Jagielski         } else {
180*b1cdbd2cSJim Jagielski             return css::uno::Any();
181*b1cdbd2cSJim Jagielski         }
182*b1cdbd2cSJim Jagielski     }
183*b1cdbd2cSJim Jagielski 
acquire()184*b1cdbd2cSJim Jagielski     virtual void SAL_CALL acquire() throw () {
185*b1cdbd2cSJim Jagielski         Base::acquire();
186*b1cdbd2cSJim Jagielski     }
187*b1cdbd2cSJim Jagielski 
release()188*b1cdbd2cSJim Jagielski     virtual void SAL_CALL release() throw () {
189*b1cdbd2cSJim Jagielski         Base::release();
190*b1cdbd2cSJim Jagielski     }
191*b1cdbd2cSJim Jagielski };
192*b1cdbd2cSJim Jagielski 
193*b1cdbd2cSJim Jagielski class Test: public CppUnit::TestFixture {
194*b1cdbd2cSJim Jagielski public:
195*b1cdbd2cSJim Jagielski     void testVoid();
196*b1cdbd2cSJim Jagielski 
197*b1cdbd2cSJim Jagielski     void testBoolean();
198*b1cdbd2cSJim Jagielski 
199*b1cdbd2cSJim Jagielski     void testByte();
200*b1cdbd2cSJim Jagielski 
201*b1cdbd2cSJim Jagielski     void testShort();
202*b1cdbd2cSJim Jagielski 
203*b1cdbd2cSJim Jagielski     void testUnsignedShort();
204*b1cdbd2cSJim Jagielski 
205*b1cdbd2cSJim Jagielski     void testLong();
206*b1cdbd2cSJim Jagielski 
207*b1cdbd2cSJim Jagielski     void testUnsignedLong();
208*b1cdbd2cSJim Jagielski 
209*b1cdbd2cSJim Jagielski     void testHyper();
210*b1cdbd2cSJim Jagielski 
211*b1cdbd2cSJim Jagielski     void testUnsignedHyper();
212*b1cdbd2cSJim Jagielski 
213*b1cdbd2cSJim Jagielski     void testFloat();
214*b1cdbd2cSJim Jagielski 
215*b1cdbd2cSJim Jagielski     void testDouble();
216*b1cdbd2cSJim Jagielski 
217*b1cdbd2cSJim Jagielski     void testChar();
218*b1cdbd2cSJim Jagielski 
219*b1cdbd2cSJim Jagielski     void testString();
220*b1cdbd2cSJim Jagielski 
221*b1cdbd2cSJim Jagielski     void testType();
222*b1cdbd2cSJim Jagielski 
223*b1cdbd2cSJim Jagielski     void testSequence();
224*b1cdbd2cSJim Jagielski 
225*b1cdbd2cSJim Jagielski     void testEnum();
226*b1cdbd2cSJim Jagielski 
227*b1cdbd2cSJim Jagielski     void testStruct();
228*b1cdbd2cSJim Jagielski 
229*b1cdbd2cSJim Jagielski     void testPoly();
230*b1cdbd2cSJim Jagielski 
231*b1cdbd2cSJim Jagielski     void testException();
232*b1cdbd2cSJim Jagielski 
233*b1cdbd2cSJim Jagielski     void testInterface();
234*b1cdbd2cSJim Jagielski 
235*b1cdbd2cSJim Jagielski     void testNull();
236*b1cdbd2cSJim Jagielski 
237*b1cdbd2cSJim Jagielski     CPPUNIT_TEST_SUITE(Test);
238*b1cdbd2cSJim Jagielski     CPPUNIT_TEST(testVoid);
239*b1cdbd2cSJim Jagielski     CPPUNIT_TEST(testBoolean);
240*b1cdbd2cSJim Jagielski     CPPUNIT_TEST(testByte);
241*b1cdbd2cSJim Jagielski     CPPUNIT_TEST(testShort);
242*b1cdbd2cSJim Jagielski     CPPUNIT_TEST(testUnsignedShort);
243*b1cdbd2cSJim Jagielski     CPPUNIT_TEST(testLong);
244*b1cdbd2cSJim Jagielski     CPPUNIT_TEST(testUnsignedLong);
245*b1cdbd2cSJim Jagielski     CPPUNIT_TEST(testHyper);
246*b1cdbd2cSJim Jagielski     CPPUNIT_TEST(testUnsignedHyper);
247*b1cdbd2cSJim Jagielski     CPPUNIT_TEST(testFloat);
248*b1cdbd2cSJim Jagielski     CPPUNIT_TEST(testDouble);
249*b1cdbd2cSJim Jagielski     CPPUNIT_TEST(testChar);
250*b1cdbd2cSJim Jagielski     CPPUNIT_TEST(testString);
251*b1cdbd2cSJim Jagielski     CPPUNIT_TEST(testType);
252*b1cdbd2cSJim Jagielski     CPPUNIT_TEST(testSequence);
253*b1cdbd2cSJim Jagielski     CPPUNIT_TEST(testEnum);
254*b1cdbd2cSJim Jagielski     CPPUNIT_TEST(testStruct);
255*b1cdbd2cSJim Jagielski     CPPUNIT_TEST(testPoly);
256*b1cdbd2cSJim Jagielski     CPPUNIT_TEST(testException);
257*b1cdbd2cSJim Jagielski     CPPUNIT_TEST(testInterface);
258*b1cdbd2cSJim Jagielski     CPPUNIT_TEST(testNull);
259*b1cdbd2cSJim Jagielski     CPPUNIT_TEST_SUITE_END();
260*b1cdbd2cSJim Jagielski };
261*b1cdbd2cSJim Jagielski 
testVoid()262*b1cdbd2cSJim Jagielski void Test::testVoid() {
263*b1cdbd2cSJim Jagielski     css::uno::Any a;
264*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT(a.getValueType() == getVoidCppuType());
265*b1cdbd2cSJim Jagielski     {
266*b1cdbd2cSJim Jagielski         bool b = true;
267*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
268*b1cdbd2cSJim Jagielski     }
269*b1cdbd2cSJim Jagielski     {
270*b1cdbd2cSJim Jagielski         sal_Bool b = true;
271*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
272*b1cdbd2cSJim Jagielski     }
273*b1cdbd2cSJim Jagielski     {
274*b1cdbd2cSJim Jagielski         sal_Int8 b = 2;
275*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
276*b1cdbd2cSJim Jagielski     }
277*b1cdbd2cSJim Jagielski     {
278*b1cdbd2cSJim Jagielski         sal_uInt8 b = 2;
279*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
280*b1cdbd2cSJim Jagielski     }
281*b1cdbd2cSJim Jagielski     {
282*b1cdbd2cSJim Jagielski         sal_Int16 b = 2;
283*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
284*b1cdbd2cSJim Jagielski     }
285*b1cdbd2cSJim Jagielski     {
286*b1cdbd2cSJim Jagielski         sal_uInt16 b = 2;
287*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
288*b1cdbd2cSJim Jagielski     }
289*b1cdbd2cSJim Jagielski     {
290*b1cdbd2cSJim Jagielski         sal_Int32 b = 2;
291*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
292*b1cdbd2cSJim Jagielski     }
293*b1cdbd2cSJim Jagielski     {
294*b1cdbd2cSJim Jagielski         sal_uInt32 b = 2;
295*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
296*b1cdbd2cSJim Jagielski     }
297*b1cdbd2cSJim Jagielski     {
298*b1cdbd2cSJim Jagielski         sal_Int64 b = 2;
299*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b) && b == 2);
300*b1cdbd2cSJim Jagielski     }
301*b1cdbd2cSJim Jagielski     {
302*b1cdbd2cSJim Jagielski         sal_uInt64 b = 2;
303*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b) && b == 2);
304*b1cdbd2cSJim Jagielski     }
305*b1cdbd2cSJim Jagielski     {
306*b1cdbd2cSJim Jagielski         float b = 2;
307*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
308*b1cdbd2cSJim Jagielski     }
309*b1cdbd2cSJim Jagielski     {
310*b1cdbd2cSJim Jagielski         double b = 2;
311*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b) && b == 2);
312*b1cdbd2cSJim Jagielski     }
313*b1cdbd2cSJim Jagielski     {
314*b1cdbd2cSJim Jagielski         sal_Unicode b = '2';
315*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
316*b1cdbd2cSJim Jagielski     }
317*b1cdbd2cSJim Jagielski     {
318*b1cdbd2cSJim Jagielski         rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
319*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
320*b1cdbd2cSJim Jagielski             "rtl::OUString",
321*b1cdbd2cSJim Jagielski             !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
322*b1cdbd2cSJim Jagielski     }
323*b1cdbd2cSJim Jagielski     {
324*b1cdbd2cSJim Jagielski         css::uno::Type b(getCppuType< rtl::OUString >());
325*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
326*b1cdbd2cSJim Jagielski             "css::uno::Type",
327*b1cdbd2cSJim Jagielski             !(a >>= b) && b == getCppuType< rtl::OUString >());
328*b1cdbd2cSJim Jagielski     }
329*b1cdbd2cSJim Jagielski     {
330*b1cdbd2cSJim Jagielski         css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
331*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
332*b1cdbd2cSJim Jagielski     }
333*b1cdbd2cSJim Jagielski     {
334*b1cdbd2cSJim Jagielski         css::uno::Sequence< rtl::OUString > b(2);
335*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
336*b1cdbd2cSJim Jagielski             "css::uno::Sequence<rtl::OUString>", !(a >>= b) && b.getLength() == 2);
337*b1cdbd2cSJim Jagielski     }
338*b1cdbd2cSJim Jagielski     {
339*b1cdbd2cSJim Jagielski         Enum1 b = Enum1_M2;
340*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
341*b1cdbd2cSJim Jagielski     }
342*b1cdbd2cSJim Jagielski     {
343*b1cdbd2cSJim Jagielski         Struct1 b(2);
344*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
345*b1cdbd2cSJim Jagielski     }
346*b1cdbd2cSJim Jagielski     {
347*b1cdbd2cSJim Jagielski         Exception1 b(
348*b1cdbd2cSJim Jagielski             rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
349*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
350*b1cdbd2cSJim Jagielski     }
351*b1cdbd2cSJim Jagielski     {
352*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface1 > i(new Impl1);
353*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface1 > b(i);
354*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b) && b == i);
355*b1cdbd2cSJim Jagielski     }
356*b1cdbd2cSJim Jagielski }
357*b1cdbd2cSJim Jagielski 
testBoolean()358*b1cdbd2cSJim Jagielski void Test::testBoolean() {
359*b1cdbd2cSJim Jagielski     css::uno::Any a(false);
360*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT(a.getValueType() == getCppuType< sal_Bool >());
361*b1cdbd2cSJim Jagielski     {
362*b1cdbd2cSJim Jagielski         bool b = true;
363*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("bool", (a >>= b) && !b);
364*b1cdbd2cSJim Jagielski     }
365*b1cdbd2cSJim Jagielski     {
366*b1cdbd2cSJim Jagielski         sal_Bool b = true;
367*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Bool", (a >>= b) && !b);
368*b1cdbd2cSJim Jagielski     }
369*b1cdbd2cSJim Jagielski     {
370*b1cdbd2cSJim Jagielski         sal_Int8 b = 2;
371*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
372*b1cdbd2cSJim Jagielski     }
373*b1cdbd2cSJim Jagielski     {
374*b1cdbd2cSJim Jagielski         sal_uInt8 b = 2;
375*b1cdbd2cSJim Jagielski         if (boost::is_same< sal_uInt8, sal_Bool >::value) {
376*b1cdbd2cSJim Jagielski             CPPUNIT_ASSERT_MESSAGE("@sal_uInt8", (a >>= b) && b == 0);
377*b1cdbd2cSJim Jagielski         } else {
378*b1cdbd2cSJim Jagielski             CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
379*b1cdbd2cSJim Jagielski         }
380*b1cdbd2cSJim Jagielski     }
381*b1cdbd2cSJim Jagielski     {
382*b1cdbd2cSJim Jagielski         sal_Int16 b = 2;
383*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
384*b1cdbd2cSJim Jagielski     }
385*b1cdbd2cSJim Jagielski     {
386*b1cdbd2cSJim Jagielski         sal_uInt16 b = 2;
387*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
388*b1cdbd2cSJim Jagielski     }
389*b1cdbd2cSJim Jagielski     {
390*b1cdbd2cSJim Jagielski         sal_Int32 b = 2;
391*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
392*b1cdbd2cSJim Jagielski     }
393*b1cdbd2cSJim Jagielski     {
394*b1cdbd2cSJim Jagielski         sal_uInt32 b = 2;
395*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
396*b1cdbd2cSJim Jagielski     }
397*b1cdbd2cSJim Jagielski     {
398*b1cdbd2cSJim Jagielski         sal_Int64 b = 2;
399*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b) && b == 2);
400*b1cdbd2cSJim Jagielski     }
401*b1cdbd2cSJim Jagielski     {
402*b1cdbd2cSJim Jagielski         sal_uInt64 b = 2;
403*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b) && b == 2);
404*b1cdbd2cSJim Jagielski     }
405*b1cdbd2cSJim Jagielski     {
406*b1cdbd2cSJim Jagielski         float b = 2;
407*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
408*b1cdbd2cSJim Jagielski     }
409*b1cdbd2cSJim Jagielski     {
410*b1cdbd2cSJim Jagielski         double b = 2;
411*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b) && b == 2);
412*b1cdbd2cSJim Jagielski     }
413*b1cdbd2cSJim Jagielski     {
414*b1cdbd2cSJim Jagielski         sal_Unicode b = '2';
415*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
416*b1cdbd2cSJim Jagielski     }
417*b1cdbd2cSJim Jagielski     {
418*b1cdbd2cSJim Jagielski         rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
419*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
420*b1cdbd2cSJim Jagielski             "rtl::OUString",
421*b1cdbd2cSJim Jagielski             !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
422*b1cdbd2cSJim Jagielski     }
423*b1cdbd2cSJim Jagielski     {
424*b1cdbd2cSJim Jagielski         css::uno::Type b(getCppuType< rtl::OUString >());
425*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
426*b1cdbd2cSJim Jagielski             "css::uno::Type",
427*b1cdbd2cSJim Jagielski             !(a >>= b) && b == getCppuType< rtl::OUString >());
428*b1cdbd2cSJim Jagielski     }
429*b1cdbd2cSJim Jagielski     {
430*b1cdbd2cSJim Jagielski         css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
431*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
432*b1cdbd2cSJim Jagielski     }
433*b1cdbd2cSJim Jagielski     {
434*b1cdbd2cSJim Jagielski         css::uno::Sequence< rtl::OUString > b(2);
435*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
436*b1cdbd2cSJim Jagielski             "css::uno::Sequence<rtl::OUString>",
437*b1cdbd2cSJim Jagielski             !(a >>= b) && b.getLength() == 2);
438*b1cdbd2cSJim Jagielski     }
439*b1cdbd2cSJim Jagielski     {
440*b1cdbd2cSJim Jagielski         Enum1 b = Enum1_M2;
441*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
442*b1cdbd2cSJim Jagielski     }
443*b1cdbd2cSJim Jagielski     {
444*b1cdbd2cSJim Jagielski         Struct1 b(2);
445*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
446*b1cdbd2cSJim Jagielski     }
447*b1cdbd2cSJim Jagielski     {
448*b1cdbd2cSJim Jagielski         Exception1 b(
449*b1cdbd2cSJim Jagielski             rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
450*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
451*b1cdbd2cSJim Jagielski     }
452*b1cdbd2cSJim Jagielski     {
453*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface1 > i(new Impl1);
454*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface1 > b(i);
455*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b) && b == i);
456*b1cdbd2cSJim Jagielski     }
457*b1cdbd2cSJim Jagielski }
458*b1cdbd2cSJim Jagielski 
testByte()459*b1cdbd2cSJim Jagielski void Test::testByte() {
460*b1cdbd2cSJim Jagielski     css::uno::Any a(static_cast< sal_Int8 >(1));
461*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT(a.getValueType() == getCppuType< sal_Int8 >());
462*b1cdbd2cSJim Jagielski     {
463*b1cdbd2cSJim Jagielski         bool b = true;
464*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
465*b1cdbd2cSJim Jagielski     }
466*b1cdbd2cSJim Jagielski     {
467*b1cdbd2cSJim Jagielski         sal_Bool b = true;
468*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
469*b1cdbd2cSJim Jagielski     }
470*b1cdbd2cSJim Jagielski     {
471*b1cdbd2cSJim Jagielski         sal_Int8 b = 2;
472*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int8", (a >>= b) && b == 1);
473*b1cdbd2cSJim Jagielski     }
474*b1cdbd2cSJim Jagielski     {
475*b1cdbd2cSJim Jagielski         sal_uInt8 b = 2;
476*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
477*b1cdbd2cSJim Jagielski     }
478*b1cdbd2cSJim Jagielski     {
479*b1cdbd2cSJim Jagielski         sal_Int16 b = 2;
480*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int16", (a >>= b) && b == 1);
481*b1cdbd2cSJim Jagielski     }
482*b1cdbd2cSJim Jagielski     {
483*b1cdbd2cSJim Jagielski         sal_uInt16 b = 2;
484*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt16", (a >>= b) && b == 1);
485*b1cdbd2cSJim Jagielski     }
486*b1cdbd2cSJim Jagielski     {
487*b1cdbd2cSJim Jagielski         sal_Int32 b = 2;
488*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int32", (a >>= b) && b == 1);
489*b1cdbd2cSJim Jagielski     }
490*b1cdbd2cSJim Jagielski     {
491*b1cdbd2cSJim Jagielski         sal_uInt32 b = 2;
492*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt32", (a >>= b) && b == 1);
493*b1cdbd2cSJim Jagielski     }
494*b1cdbd2cSJim Jagielski     {
495*b1cdbd2cSJim Jagielski         sal_Int64 b = 2;
496*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int64", (a >>= b) && b == 1);
497*b1cdbd2cSJim Jagielski     }
498*b1cdbd2cSJim Jagielski     {
499*b1cdbd2cSJim Jagielski         sal_uInt64 b = 2;
500*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt64", (a >>= b) && b == 1);
501*b1cdbd2cSJim Jagielski     }
502*b1cdbd2cSJim Jagielski     {
503*b1cdbd2cSJim Jagielski         float b = 2;
504*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("float", (a >>= b) && b == 1);
505*b1cdbd2cSJim Jagielski     }
506*b1cdbd2cSJim Jagielski     {
507*b1cdbd2cSJim Jagielski         double b = 2;
508*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("double", (a >>= b) && b == 1);
509*b1cdbd2cSJim Jagielski     }
510*b1cdbd2cSJim Jagielski     {
511*b1cdbd2cSJim Jagielski         sal_Unicode b = '2';
512*b1cdbd2cSJim Jagielski         if (boost::is_same< sal_Unicode, sal_uInt16 >::value) {
513*b1cdbd2cSJim Jagielski             CPPUNIT_ASSERT_MESSAGE("@sal_Unicode", (a >>= b) && b == 1);
514*b1cdbd2cSJim Jagielski         } else {
515*b1cdbd2cSJim Jagielski             CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
516*b1cdbd2cSJim Jagielski         }
517*b1cdbd2cSJim Jagielski     }
518*b1cdbd2cSJim Jagielski     {
519*b1cdbd2cSJim Jagielski         rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
520*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
521*b1cdbd2cSJim Jagielski             "rtl::OUString",
522*b1cdbd2cSJim Jagielski             !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
523*b1cdbd2cSJim Jagielski     }
524*b1cdbd2cSJim Jagielski     {
525*b1cdbd2cSJim Jagielski         css::uno::Type b(getCppuType< rtl::OUString >());
526*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
527*b1cdbd2cSJim Jagielski             "css::uno::Type",
528*b1cdbd2cSJim Jagielski             !(a >>= b) && b == getCppuType< rtl::OUString >());
529*b1cdbd2cSJim Jagielski     }
530*b1cdbd2cSJim Jagielski     {
531*b1cdbd2cSJim Jagielski         css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
532*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
533*b1cdbd2cSJim Jagielski     }
534*b1cdbd2cSJim Jagielski     {
535*b1cdbd2cSJim Jagielski         css::uno::Sequence< rtl::OUString > b(2);
536*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
537*b1cdbd2cSJim Jagielski             "css::uno::Sequence<rtl::OUString>",
538*b1cdbd2cSJim Jagielski             !(a >>= b) && b.getLength() == 2);
539*b1cdbd2cSJim Jagielski     }
540*b1cdbd2cSJim Jagielski     {
541*b1cdbd2cSJim Jagielski         Enum1 b = Enum1_M2;
542*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
543*b1cdbd2cSJim Jagielski     }
544*b1cdbd2cSJim Jagielski     {
545*b1cdbd2cSJim Jagielski         Struct1 b(2);
546*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
547*b1cdbd2cSJim Jagielski     }
548*b1cdbd2cSJim Jagielski     {
549*b1cdbd2cSJim Jagielski         Exception1 b(
550*b1cdbd2cSJim Jagielski             rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
551*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
552*b1cdbd2cSJim Jagielski     }
553*b1cdbd2cSJim Jagielski     {
554*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface1 > i(new Impl1);
555*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface1 > b(i);
556*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b) && b == i);
557*b1cdbd2cSJim Jagielski     }
558*b1cdbd2cSJim Jagielski }
559*b1cdbd2cSJim Jagielski 
testShort()560*b1cdbd2cSJim Jagielski void Test::testShort() {
561*b1cdbd2cSJim Jagielski     css::uno::Any a(static_cast< sal_Int16 >(1));
562*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT(a.getValueType() == getCppuType< sal_Int16 >());
563*b1cdbd2cSJim Jagielski     {
564*b1cdbd2cSJim Jagielski         bool b = true;
565*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
566*b1cdbd2cSJim Jagielski     }
567*b1cdbd2cSJim Jagielski     {
568*b1cdbd2cSJim Jagielski         sal_Bool b = true;
569*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
570*b1cdbd2cSJim Jagielski     }
571*b1cdbd2cSJim Jagielski     {
572*b1cdbd2cSJim Jagielski         sal_Int8 b = 2;
573*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
574*b1cdbd2cSJim Jagielski     }
575*b1cdbd2cSJim Jagielski     {
576*b1cdbd2cSJim Jagielski         sal_uInt8 b = 2;
577*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
578*b1cdbd2cSJim Jagielski     }
579*b1cdbd2cSJim Jagielski     {
580*b1cdbd2cSJim Jagielski         sal_Int16 b = 2;
581*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int16", (a >>= b) && b == 1);
582*b1cdbd2cSJim Jagielski     }
583*b1cdbd2cSJim Jagielski     {
584*b1cdbd2cSJim Jagielski         sal_uInt16 b = 2;
585*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt16", (a >>= b) && b == 1);
586*b1cdbd2cSJim Jagielski     }
587*b1cdbd2cSJim Jagielski     {
588*b1cdbd2cSJim Jagielski         sal_Int32 b = 2;
589*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int32", (a >>= b) && b == 1);
590*b1cdbd2cSJim Jagielski     }
591*b1cdbd2cSJim Jagielski     {
592*b1cdbd2cSJim Jagielski         sal_uInt32 b = 2;
593*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt32", (a >>= b) && b == 1);
594*b1cdbd2cSJim Jagielski     }
595*b1cdbd2cSJim Jagielski     {
596*b1cdbd2cSJim Jagielski         sal_Int64 b = 2;
597*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int64", (a >>= b) && b == 1);
598*b1cdbd2cSJim Jagielski     }
599*b1cdbd2cSJim Jagielski     {
600*b1cdbd2cSJim Jagielski         sal_uInt64 b = 2;
601*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt64", (a >>= b) && b == 1);
602*b1cdbd2cSJim Jagielski     }
603*b1cdbd2cSJim Jagielski     {
604*b1cdbd2cSJim Jagielski         float b = 2;
605*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("float", (a >>= b) && b == 1);
606*b1cdbd2cSJim Jagielski     }
607*b1cdbd2cSJim Jagielski     {
608*b1cdbd2cSJim Jagielski         double b = 2;
609*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("double", (a >>= b) && b == 1);
610*b1cdbd2cSJim Jagielski     }
611*b1cdbd2cSJim Jagielski     {
612*b1cdbd2cSJim Jagielski         sal_Unicode b = '2';
613*b1cdbd2cSJim Jagielski         if (boost::is_same< sal_Unicode, sal_uInt16 >::value) {
614*b1cdbd2cSJim Jagielski             CPPUNIT_ASSERT_MESSAGE("@sal_Unicode", (a >>= b) && b == 1);
615*b1cdbd2cSJim Jagielski         } else {
616*b1cdbd2cSJim Jagielski             CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
617*b1cdbd2cSJim Jagielski         }
618*b1cdbd2cSJim Jagielski     }
619*b1cdbd2cSJim Jagielski     {
620*b1cdbd2cSJim Jagielski         rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
621*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
622*b1cdbd2cSJim Jagielski             "rtl::OUString",
623*b1cdbd2cSJim Jagielski             !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
624*b1cdbd2cSJim Jagielski     }
625*b1cdbd2cSJim Jagielski     {
626*b1cdbd2cSJim Jagielski         css::uno::Type b(getCppuType< rtl::OUString >());
627*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
628*b1cdbd2cSJim Jagielski             "css::uno::Type",
629*b1cdbd2cSJim Jagielski             !(a >>= b) && b == getCppuType< rtl::OUString >());
630*b1cdbd2cSJim Jagielski     }
631*b1cdbd2cSJim Jagielski     {
632*b1cdbd2cSJim Jagielski         css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
633*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
634*b1cdbd2cSJim Jagielski     }
635*b1cdbd2cSJim Jagielski     {
636*b1cdbd2cSJim Jagielski         css::uno::Sequence< rtl::OUString > b(2);
637*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
638*b1cdbd2cSJim Jagielski             "css::uno::Sequence<rtl::OUString>",
639*b1cdbd2cSJim Jagielski             !(a >>= b) && b.getLength() == 2);
640*b1cdbd2cSJim Jagielski     }
641*b1cdbd2cSJim Jagielski     {
642*b1cdbd2cSJim Jagielski         Enum1 b = Enum1_M2;
643*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
644*b1cdbd2cSJim Jagielski     }
645*b1cdbd2cSJim Jagielski     {
646*b1cdbd2cSJim Jagielski         Struct1 b(2);
647*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
648*b1cdbd2cSJim Jagielski     }
649*b1cdbd2cSJim Jagielski     {
650*b1cdbd2cSJim Jagielski         Exception1 b(
651*b1cdbd2cSJim Jagielski             rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
652*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
653*b1cdbd2cSJim Jagielski     }
654*b1cdbd2cSJim Jagielski     {
655*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface1 > i(new Impl1);
656*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface1 > b(i);
657*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b) && b == i);
658*b1cdbd2cSJim Jagielski     }
659*b1cdbd2cSJim Jagielski }
660*b1cdbd2cSJim Jagielski 
testUnsignedShort()661*b1cdbd2cSJim Jagielski void Test::testUnsignedShort() {
662*b1cdbd2cSJim Jagielski     sal_uInt16 n = 1;
663*b1cdbd2cSJim Jagielski     css::uno::Any a(&n, getCppuType(static_cast< sal_uInt16 const * >(0)));
664*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT(
665*b1cdbd2cSJim Jagielski         a.getValueType() == getCppuType(static_cast< sal_uInt16 const * >(0)));
666*b1cdbd2cSJim Jagielski     {
667*b1cdbd2cSJim Jagielski         bool b = true;
668*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
669*b1cdbd2cSJim Jagielski     }
670*b1cdbd2cSJim Jagielski     {
671*b1cdbd2cSJim Jagielski         sal_Bool b = true;
672*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
673*b1cdbd2cSJim Jagielski     }
674*b1cdbd2cSJim Jagielski     {
675*b1cdbd2cSJim Jagielski         sal_Int8 b = 2;
676*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
677*b1cdbd2cSJim Jagielski     }
678*b1cdbd2cSJim Jagielski     {
679*b1cdbd2cSJim Jagielski         sal_uInt8 b = 2;
680*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
681*b1cdbd2cSJim Jagielski     }
682*b1cdbd2cSJim Jagielski     {
683*b1cdbd2cSJim Jagielski         sal_Int16 b = 2;
684*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int16", (a >>= b) && b == 1);
685*b1cdbd2cSJim Jagielski     }
686*b1cdbd2cSJim Jagielski     {
687*b1cdbd2cSJim Jagielski         sal_uInt16 b = 2;
688*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt16", (a >>= b) && b == 1);
689*b1cdbd2cSJim Jagielski     }
690*b1cdbd2cSJim Jagielski     {
691*b1cdbd2cSJim Jagielski         sal_Int32 b = 2;
692*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int32", (a >>= b) && b == 1);
693*b1cdbd2cSJim Jagielski     }
694*b1cdbd2cSJim Jagielski     {
695*b1cdbd2cSJim Jagielski         sal_uInt32 b = 2;
696*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt32", (a >>= b) && b == 1);
697*b1cdbd2cSJim Jagielski     }
698*b1cdbd2cSJim Jagielski     {
699*b1cdbd2cSJim Jagielski         sal_Int64 b = 2;
700*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int64", (a >>= b) && b == 1);
701*b1cdbd2cSJim Jagielski     }
702*b1cdbd2cSJim Jagielski     {
703*b1cdbd2cSJim Jagielski         sal_uInt64 b = 2;
704*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt64", (a >>= b) && b == 1);
705*b1cdbd2cSJim Jagielski     }
706*b1cdbd2cSJim Jagielski     {
707*b1cdbd2cSJim Jagielski         float b = 2;
708*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("float", (a >>= b) && b == 1);
709*b1cdbd2cSJim Jagielski     }
710*b1cdbd2cSJim Jagielski     {
711*b1cdbd2cSJim Jagielski         double b = 2;
712*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("double", (a >>= b) && b == 1);
713*b1cdbd2cSJim Jagielski     }
714*b1cdbd2cSJim Jagielski     {
715*b1cdbd2cSJim Jagielski         sal_Unicode b = '2';
716*b1cdbd2cSJim Jagielski         if (boost::is_same< sal_Unicode, sal_uInt16 >::value) {
717*b1cdbd2cSJim Jagielski             CPPUNIT_ASSERT_MESSAGE("@sal_Unicode", (a >>= b) && b == 1);
718*b1cdbd2cSJim Jagielski         } else {
719*b1cdbd2cSJim Jagielski             CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
720*b1cdbd2cSJim Jagielski         }
721*b1cdbd2cSJim Jagielski     }
722*b1cdbd2cSJim Jagielski     {
723*b1cdbd2cSJim Jagielski         rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
724*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
725*b1cdbd2cSJim Jagielski             "rtl::OUString",
726*b1cdbd2cSJim Jagielski             !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
727*b1cdbd2cSJim Jagielski     }
728*b1cdbd2cSJim Jagielski     {
729*b1cdbd2cSJim Jagielski         css::uno::Type b(getCppuType< rtl::OUString >());
730*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
731*b1cdbd2cSJim Jagielski             "css::uno::Type",
732*b1cdbd2cSJim Jagielski             !(a >>= b) && b == getCppuType< rtl::OUString >());
733*b1cdbd2cSJim Jagielski     }
734*b1cdbd2cSJim Jagielski     {
735*b1cdbd2cSJim Jagielski         css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
736*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
737*b1cdbd2cSJim Jagielski     }
738*b1cdbd2cSJim Jagielski     {
739*b1cdbd2cSJim Jagielski         css::uno::Sequence< rtl::OUString > b(2);
740*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
741*b1cdbd2cSJim Jagielski             "css::uno::Sequence<rtl::OUString>",
742*b1cdbd2cSJim Jagielski             !(a >>= b) && b.getLength() == 2);
743*b1cdbd2cSJim Jagielski     }
744*b1cdbd2cSJim Jagielski     {
745*b1cdbd2cSJim Jagielski         Enum1 b = Enum1_M2;
746*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
747*b1cdbd2cSJim Jagielski     }
748*b1cdbd2cSJim Jagielski     {
749*b1cdbd2cSJim Jagielski         Struct1 b(2);
750*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
751*b1cdbd2cSJim Jagielski     }
752*b1cdbd2cSJim Jagielski     {
753*b1cdbd2cSJim Jagielski         Exception1 b(
754*b1cdbd2cSJim Jagielski             rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
755*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
756*b1cdbd2cSJim Jagielski     }
757*b1cdbd2cSJim Jagielski     {
758*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface1 > i(new Impl1);
759*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface1 > b(i);
760*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b) && b == i);
761*b1cdbd2cSJim Jagielski     }
762*b1cdbd2cSJim Jagielski }
763*b1cdbd2cSJim Jagielski 
testLong()764*b1cdbd2cSJim Jagielski void Test::testLong() {
765*b1cdbd2cSJim Jagielski     css::uno::Any a(static_cast< sal_Int32 >(1));
766*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT(a.getValueType() == getCppuType< sal_Int32 >());
767*b1cdbd2cSJim Jagielski     {
768*b1cdbd2cSJim Jagielski         bool b = true;
769*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
770*b1cdbd2cSJim Jagielski     }
771*b1cdbd2cSJim Jagielski     {
772*b1cdbd2cSJim Jagielski         sal_Bool b = true;
773*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
774*b1cdbd2cSJim Jagielski     }
775*b1cdbd2cSJim Jagielski     {
776*b1cdbd2cSJim Jagielski         sal_Int8 b = 2;
777*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
778*b1cdbd2cSJim Jagielski     }
779*b1cdbd2cSJim Jagielski     {
780*b1cdbd2cSJim Jagielski         sal_uInt8 b = 2;
781*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
782*b1cdbd2cSJim Jagielski     }
783*b1cdbd2cSJim Jagielski     {
784*b1cdbd2cSJim Jagielski         sal_Int16 b = 2;
785*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
786*b1cdbd2cSJim Jagielski     }
787*b1cdbd2cSJim Jagielski     {
788*b1cdbd2cSJim Jagielski         sal_uInt16 b = 2;
789*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
790*b1cdbd2cSJim Jagielski     }
791*b1cdbd2cSJim Jagielski     {
792*b1cdbd2cSJim Jagielski         sal_Int32 b = 2;
793*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int32", (a >>= b) && b == 1);
794*b1cdbd2cSJim Jagielski     }
795*b1cdbd2cSJim Jagielski     {
796*b1cdbd2cSJim Jagielski         sal_uInt32 b = 2;
797*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt32", (a >>= b) && b == 1);
798*b1cdbd2cSJim Jagielski     }
799*b1cdbd2cSJim Jagielski     {
800*b1cdbd2cSJim Jagielski         sal_Int64 b = 2;
801*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int64", (a >>= b) && b == 1);
802*b1cdbd2cSJim Jagielski     }
803*b1cdbd2cSJim Jagielski     {
804*b1cdbd2cSJim Jagielski         sal_uInt64 b = 2;
805*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt64", (a >>= b) && b == 1);
806*b1cdbd2cSJim Jagielski     }
807*b1cdbd2cSJim Jagielski     {
808*b1cdbd2cSJim Jagielski         float b = 2;
809*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
810*b1cdbd2cSJim Jagielski     }
811*b1cdbd2cSJim Jagielski     {
812*b1cdbd2cSJim Jagielski         double b = 2;
813*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("double", (a >>= b) && b == 1);
814*b1cdbd2cSJim Jagielski     }
815*b1cdbd2cSJim Jagielski     {
816*b1cdbd2cSJim Jagielski         sal_Unicode b = '2';
817*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
818*b1cdbd2cSJim Jagielski     }
819*b1cdbd2cSJim Jagielski     {
820*b1cdbd2cSJim Jagielski         rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
821*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
822*b1cdbd2cSJim Jagielski             "rtl::OUString",
823*b1cdbd2cSJim Jagielski             !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
824*b1cdbd2cSJim Jagielski     }
825*b1cdbd2cSJim Jagielski     {
826*b1cdbd2cSJim Jagielski         css::uno::Type b(getCppuType< rtl::OUString >());
827*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
828*b1cdbd2cSJim Jagielski             "css::uno::Type",
829*b1cdbd2cSJim Jagielski             !(a >>= b) && b == getCppuType< rtl::OUString >());
830*b1cdbd2cSJim Jagielski     }
831*b1cdbd2cSJim Jagielski     {
832*b1cdbd2cSJim Jagielski         css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
833*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
834*b1cdbd2cSJim Jagielski     }
835*b1cdbd2cSJim Jagielski     {
836*b1cdbd2cSJim Jagielski         css::uno::Sequence< rtl::OUString > b(2);
837*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
838*b1cdbd2cSJim Jagielski             "css::uno::Sequence<rtl::OUString>",
839*b1cdbd2cSJim Jagielski             !(a >>= b) && b.getLength() == 2);
840*b1cdbd2cSJim Jagielski     }
841*b1cdbd2cSJim Jagielski     {
842*b1cdbd2cSJim Jagielski         Enum1 b = Enum1_M2;
843*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
844*b1cdbd2cSJim Jagielski     }
845*b1cdbd2cSJim Jagielski     {
846*b1cdbd2cSJim Jagielski         Struct1 b(2);
847*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
848*b1cdbd2cSJim Jagielski     }
849*b1cdbd2cSJim Jagielski     {
850*b1cdbd2cSJim Jagielski         Exception1 b(
851*b1cdbd2cSJim Jagielski             rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
852*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
853*b1cdbd2cSJim Jagielski     }
854*b1cdbd2cSJim Jagielski     {
855*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface1 > i(new Impl1);
856*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface1 > b(i);
857*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b) && b == i);
858*b1cdbd2cSJim Jagielski     }
859*b1cdbd2cSJim Jagielski }
860*b1cdbd2cSJim Jagielski 
testUnsignedLong()861*b1cdbd2cSJim Jagielski void Test::testUnsignedLong() {
862*b1cdbd2cSJim Jagielski     css::uno::Any a(static_cast< sal_uInt32 >(1));
863*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT(a.getValueType() == getCppuType< sal_uInt32 >());
864*b1cdbd2cSJim Jagielski     {
865*b1cdbd2cSJim Jagielski         bool b = true;
866*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
867*b1cdbd2cSJim Jagielski     }
868*b1cdbd2cSJim Jagielski     {
869*b1cdbd2cSJim Jagielski         sal_Bool b = true;
870*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
871*b1cdbd2cSJim Jagielski     }
872*b1cdbd2cSJim Jagielski     {
873*b1cdbd2cSJim Jagielski         sal_Int8 b = 2;
874*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
875*b1cdbd2cSJim Jagielski     }
876*b1cdbd2cSJim Jagielski     {
877*b1cdbd2cSJim Jagielski         sal_uInt8 b = 2;
878*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
879*b1cdbd2cSJim Jagielski     }
880*b1cdbd2cSJim Jagielski     {
881*b1cdbd2cSJim Jagielski         sal_Int16 b = 2;
882*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
883*b1cdbd2cSJim Jagielski     }
884*b1cdbd2cSJim Jagielski     {
885*b1cdbd2cSJim Jagielski         sal_uInt16 b = 2;
886*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
887*b1cdbd2cSJim Jagielski     }
888*b1cdbd2cSJim Jagielski     {
889*b1cdbd2cSJim Jagielski         sal_Int32 b = 2;
890*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int32", (a >>= b) && b == 1);
891*b1cdbd2cSJim Jagielski     }
892*b1cdbd2cSJim Jagielski     {
893*b1cdbd2cSJim Jagielski         sal_uInt32 b = 2;
894*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt32", (a >>= b) && b == 1);
895*b1cdbd2cSJim Jagielski     }
896*b1cdbd2cSJim Jagielski     {
897*b1cdbd2cSJim Jagielski         sal_Int64 b = 2;
898*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int64", (a >>= b) && b == 1);
899*b1cdbd2cSJim Jagielski     }
900*b1cdbd2cSJim Jagielski     {
901*b1cdbd2cSJim Jagielski         sal_uInt64 b = 2;
902*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt64", (a >>= b) && b == 1);
903*b1cdbd2cSJim Jagielski     }
904*b1cdbd2cSJim Jagielski     {
905*b1cdbd2cSJim Jagielski         float b = 2;
906*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
907*b1cdbd2cSJim Jagielski     }
908*b1cdbd2cSJim Jagielski     {
909*b1cdbd2cSJim Jagielski         double b = 2;
910*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("double", (a >>= b) && b == 1);
911*b1cdbd2cSJim Jagielski     }
912*b1cdbd2cSJim Jagielski     {
913*b1cdbd2cSJim Jagielski         sal_Unicode b = '2';
914*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
915*b1cdbd2cSJim Jagielski     }
916*b1cdbd2cSJim Jagielski     {
917*b1cdbd2cSJim Jagielski         rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
918*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
919*b1cdbd2cSJim Jagielski             "rtl::OUString",
920*b1cdbd2cSJim Jagielski             !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
921*b1cdbd2cSJim Jagielski     }
922*b1cdbd2cSJim Jagielski     {
923*b1cdbd2cSJim Jagielski         css::uno::Type b(getCppuType< rtl::OUString >());
924*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
925*b1cdbd2cSJim Jagielski             "css::uno::Type",
926*b1cdbd2cSJim Jagielski             !(a >>= b) && b == getCppuType< rtl::OUString >());
927*b1cdbd2cSJim Jagielski     }
928*b1cdbd2cSJim Jagielski     {
929*b1cdbd2cSJim Jagielski         css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
930*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
931*b1cdbd2cSJim Jagielski     }
932*b1cdbd2cSJim Jagielski     {
933*b1cdbd2cSJim Jagielski         css::uno::Sequence< rtl::OUString > b(2);
934*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
935*b1cdbd2cSJim Jagielski             "css::uno::Sequence<rtl::OUString>",
936*b1cdbd2cSJim Jagielski             !(a >>= b) && b.getLength() == 2);
937*b1cdbd2cSJim Jagielski     }
938*b1cdbd2cSJim Jagielski     {
939*b1cdbd2cSJim Jagielski         Enum1 b = Enum1_M2;
940*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
941*b1cdbd2cSJim Jagielski     }
942*b1cdbd2cSJim Jagielski     {
943*b1cdbd2cSJim Jagielski         Struct1 b(2);
944*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
945*b1cdbd2cSJim Jagielski     }
946*b1cdbd2cSJim Jagielski     {
947*b1cdbd2cSJim Jagielski         Exception1 b(
948*b1cdbd2cSJim Jagielski             rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
949*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
950*b1cdbd2cSJim Jagielski     }
951*b1cdbd2cSJim Jagielski     {
952*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface1 > i(new Impl1);
953*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface1 > b(i);
954*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b) && b == i);
955*b1cdbd2cSJim Jagielski     }
956*b1cdbd2cSJim Jagielski }
957*b1cdbd2cSJim Jagielski 
testHyper()958*b1cdbd2cSJim Jagielski void Test::testHyper() {
959*b1cdbd2cSJim Jagielski     css::uno::Any a(static_cast< sal_Int64 >(1));
960*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT(a.getValueType() == getCppuType< sal_Int64 >());
961*b1cdbd2cSJim Jagielski     {
962*b1cdbd2cSJim Jagielski         bool b = true;
963*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
964*b1cdbd2cSJim Jagielski     }
965*b1cdbd2cSJim Jagielski     {
966*b1cdbd2cSJim Jagielski         sal_Bool b = true;
967*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
968*b1cdbd2cSJim Jagielski     }
969*b1cdbd2cSJim Jagielski     {
970*b1cdbd2cSJim Jagielski         sal_Int8 b = 2;
971*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
972*b1cdbd2cSJim Jagielski     }
973*b1cdbd2cSJim Jagielski     {
974*b1cdbd2cSJim Jagielski         sal_uInt8 b = 2;
975*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
976*b1cdbd2cSJim Jagielski     }
977*b1cdbd2cSJim Jagielski     {
978*b1cdbd2cSJim Jagielski         sal_Int16 b = 2;
979*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
980*b1cdbd2cSJim Jagielski     }
981*b1cdbd2cSJim Jagielski     {
982*b1cdbd2cSJim Jagielski         sal_uInt16 b = 2;
983*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
984*b1cdbd2cSJim Jagielski     }
985*b1cdbd2cSJim Jagielski     {
986*b1cdbd2cSJim Jagielski         sal_Int32 b = 2;
987*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
988*b1cdbd2cSJim Jagielski     }
989*b1cdbd2cSJim Jagielski     {
990*b1cdbd2cSJim Jagielski         sal_uInt32 b = 2;
991*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
992*b1cdbd2cSJim Jagielski     }
993*b1cdbd2cSJim Jagielski     {
994*b1cdbd2cSJim Jagielski         sal_Int64 b = 2;
995*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int64", (a >>= b) && b == 1);
996*b1cdbd2cSJim Jagielski     }
997*b1cdbd2cSJim Jagielski     {
998*b1cdbd2cSJim Jagielski         sal_uInt64 b = 2;
999*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt64", (a >>= b) && b == 1);
1000*b1cdbd2cSJim Jagielski     }
1001*b1cdbd2cSJim Jagielski     {
1002*b1cdbd2cSJim Jagielski         float b = 2;
1003*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
1004*b1cdbd2cSJim Jagielski     }
1005*b1cdbd2cSJim Jagielski     {
1006*b1cdbd2cSJim Jagielski         double b = 2;
1007*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b) && b == 2);
1008*b1cdbd2cSJim Jagielski     }
1009*b1cdbd2cSJim Jagielski     {
1010*b1cdbd2cSJim Jagielski         sal_Unicode b = '2';
1011*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
1012*b1cdbd2cSJim Jagielski     }
1013*b1cdbd2cSJim Jagielski     {
1014*b1cdbd2cSJim Jagielski         rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
1015*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
1016*b1cdbd2cSJim Jagielski             "rtl::OUString",
1017*b1cdbd2cSJim Jagielski             !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
1018*b1cdbd2cSJim Jagielski     }
1019*b1cdbd2cSJim Jagielski     {
1020*b1cdbd2cSJim Jagielski         css::uno::Type b(getCppuType< rtl::OUString >());
1021*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
1022*b1cdbd2cSJim Jagielski             "css::uno::Type",
1023*b1cdbd2cSJim Jagielski             !(a >>= b) && b == getCppuType< rtl::OUString >());
1024*b1cdbd2cSJim Jagielski     }
1025*b1cdbd2cSJim Jagielski     {
1026*b1cdbd2cSJim Jagielski         css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
1027*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
1028*b1cdbd2cSJim Jagielski     }
1029*b1cdbd2cSJim Jagielski     {
1030*b1cdbd2cSJim Jagielski         css::uno::Sequence< rtl::OUString > b(2);
1031*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
1032*b1cdbd2cSJim Jagielski             "css::uno::Sequence<rtl::OUString>",
1033*b1cdbd2cSJim Jagielski             !(a >>= b) && b.getLength() == 2);
1034*b1cdbd2cSJim Jagielski     }
1035*b1cdbd2cSJim Jagielski     {
1036*b1cdbd2cSJim Jagielski         Enum1 b = Enum1_M2;
1037*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
1038*b1cdbd2cSJim Jagielski     }
1039*b1cdbd2cSJim Jagielski     {
1040*b1cdbd2cSJim Jagielski         Struct1 b(2);
1041*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
1042*b1cdbd2cSJim Jagielski     }
1043*b1cdbd2cSJim Jagielski     {
1044*b1cdbd2cSJim Jagielski         Exception1 b(
1045*b1cdbd2cSJim Jagielski             rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
1046*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
1047*b1cdbd2cSJim Jagielski     }
1048*b1cdbd2cSJim Jagielski     {
1049*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface1 > i(new Impl1);
1050*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface1 > b(i);
1051*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b) && b == i);
1052*b1cdbd2cSJim Jagielski     }
1053*b1cdbd2cSJim Jagielski }
1054*b1cdbd2cSJim Jagielski 
testUnsignedHyper()1055*b1cdbd2cSJim Jagielski void Test::testUnsignedHyper() {
1056*b1cdbd2cSJim Jagielski     css::uno::Any a(static_cast< sal_uInt64 >(1));
1057*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT(a.getValueType() == getCppuType< sal_uInt64 >());
1058*b1cdbd2cSJim Jagielski     {
1059*b1cdbd2cSJim Jagielski         bool b = true;
1060*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
1061*b1cdbd2cSJim Jagielski     }
1062*b1cdbd2cSJim Jagielski     {
1063*b1cdbd2cSJim Jagielski         sal_Bool b = true;
1064*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
1065*b1cdbd2cSJim Jagielski     }
1066*b1cdbd2cSJim Jagielski     {
1067*b1cdbd2cSJim Jagielski         sal_Int8 b = 2;
1068*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
1069*b1cdbd2cSJim Jagielski     }
1070*b1cdbd2cSJim Jagielski     {
1071*b1cdbd2cSJim Jagielski         sal_uInt8 b = 2;
1072*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
1073*b1cdbd2cSJim Jagielski     }
1074*b1cdbd2cSJim Jagielski     {
1075*b1cdbd2cSJim Jagielski         sal_Int16 b = 2;
1076*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
1077*b1cdbd2cSJim Jagielski     }
1078*b1cdbd2cSJim Jagielski     {
1079*b1cdbd2cSJim Jagielski         sal_uInt16 b = 2;
1080*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
1081*b1cdbd2cSJim Jagielski     }
1082*b1cdbd2cSJim Jagielski     {
1083*b1cdbd2cSJim Jagielski         sal_Int32 b = 2;
1084*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
1085*b1cdbd2cSJim Jagielski     }
1086*b1cdbd2cSJim Jagielski     {
1087*b1cdbd2cSJim Jagielski         sal_uInt32 b = 2;
1088*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
1089*b1cdbd2cSJim Jagielski     }
1090*b1cdbd2cSJim Jagielski     {
1091*b1cdbd2cSJim Jagielski         sal_Int64 b = 2;
1092*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int64", (a >>= b) && b == 1);
1093*b1cdbd2cSJim Jagielski     }
1094*b1cdbd2cSJim Jagielski     {
1095*b1cdbd2cSJim Jagielski         sal_uInt64 b = 2;
1096*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt64", (a >>= b) && b == 1);
1097*b1cdbd2cSJim Jagielski     }
1098*b1cdbd2cSJim Jagielski     {
1099*b1cdbd2cSJim Jagielski         float b = 2;
1100*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
1101*b1cdbd2cSJim Jagielski     }
1102*b1cdbd2cSJim Jagielski     {
1103*b1cdbd2cSJim Jagielski         double b = 2;
1104*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b) && b == 2);
1105*b1cdbd2cSJim Jagielski     }
1106*b1cdbd2cSJim Jagielski     {
1107*b1cdbd2cSJim Jagielski         sal_Unicode b = '2';
1108*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
1109*b1cdbd2cSJim Jagielski     }
1110*b1cdbd2cSJim Jagielski     {
1111*b1cdbd2cSJim Jagielski         rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
1112*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
1113*b1cdbd2cSJim Jagielski             "rtl::OUString",
1114*b1cdbd2cSJim Jagielski             !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
1115*b1cdbd2cSJim Jagielski     }
1116*b1cdbd2cSJim Jagielski     {
1117*b1cdbd2cSJim Jagielski         css::uno::Type b(getCppuType< rtl::OUString >());
1118*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
1119*b1cdbd2cSJim Jagielski             "css::uno::Type",
1120*b1cdbd2cSJim Jagielski             !(a >>= b) && b == getCppuType< rtl::OUString >());
1121*b1cdbd2cSJim Jagielski     }
1122*b1cdbd2cSJim Jagielski     {
1123*b1cdbd2cSJim Jagielski         css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
1124*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
1125*b1cdbd2cSJim Jagielski     }
1126*b1cdbd2cSJim Jagielski     {
1127*b1cdbd2cSJim Jagielski         css::uno::Sequence< rtl::OUString > b(2);
1128*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
1129*b1cdbd2cSJim Jagielski             "css::uno::Sequence<rtl::OUString>",
1130*b1cdbd2cSJim Jagielski             !(a >>= b) && b.getLength() == 2);
1131*b1cdbd2cSJim Jagielski     }
1132*b1cdbd2cSJim Jagielski     {
1133*b1cdbd2cSJim Jagielski         Enum1 b = Enum1_M2;
1134*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
1135*b1cdbd2cSJim Jagielski     }
1136*b1cdbd2cSJim Jagielski     {
1137*b1cdbd2cSJim Jagielski         Struct1 b(2);
1138*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
1139*b1cdbd2cSJim Jagielski     }
1140*b1cdbd2cSJim Jagielski     {
1141*b1cdbd2cSJim Jagielski         Exception1 b(
1142*b1cdbd2cSJim Jagielski             rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
1143*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
1144*b1cdbd2cSJim Jagielski     }
1145*b1cdbd2cSJim Jagielski     {
1146*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface1 > i(new Impl1);
1147*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface1 > b(i);
1148*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b) && b == i);
1149*b1cdbd2cSJim Jagielski     }
1150*b1cdbd2cSJim Jagielski }
1151*b1cdbd2cSJim Jagielski 
testFloat()1152*b1cdbd2cSJim Jagielski void Test::testFloat() {
1153*b1cdbd2cSJim Jagielski     css::uno::Any a(1.f);
1154*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT(a.getValueType() == getCppuType< float >());
1155*b1cdbd2cSJim Jagielski     {
1156*b1cdbd2cSJim Jagielski         bool b = true;
1157*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
1158*b1cdbd2cSJim Jagielski     }
1159*b1cdbd2cSJim Jagielski     {
1160*b1cdbd2cSJim Jagielski         sal_Bool b = true;
1161*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
1162*b1cdbd2cSJim Jagielski     }
1163*b1cdbd2cSJim Jagielski     {
1164*b1cdbd2cSJim Jagielski         sal_Int8 b = 2;
1165*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
1166*b1cdbd2cSJim Jagielski     }
1167*b1cdbd2cSJim Jagielski     {
1168*b1cdbd2cSJim Jagielski         sal_uInt8 b = 2;
1169*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
1170*b1cdbd2cSJim Jagielski     }
1171*b1cdbd2cSJim Jagielski     {
1172*b1cdbd2cSJim Jagielski         sal_Int16 b = 2;
1173*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
1174*b1cdbd2cSJim Jagielski     }
1175*b1cdbd2cSJim Jagielski     {
1176*b1cdbd2cSJim Jagielski         sal_uInt16 b = 2;
1177*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
1178*b1cdbd2cSJim Jagielski     }
1179*b1cdbd2cSJim Jagielski     {
1180*b1cdbd2cSJim Jagielski         sal_Int32 b = 2;
1181*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
1182*b1cdbd2cSJim Jagielski     }
1183*b1cdbd2cSJim Jagielski     {
1184*b1cdbd2cSJim Jagielski         sal_uInt32 b = 2;
1185*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
1186*b1cdbd2cSJim Jagielski     }
1187*b1cdbd2cSJim Jagielski     {
1188*b1cdbd2cSJim Jagielski         sal_Int64 b = 2;
1189*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b) && b == 2);
1190*b1cdbd2cSJim Jagielski     }
1191*b1cdbd2cSJim Jagielski     {
1192*b1cdbd2cSJim Jagielski         sal_uInt64 b = 2;
1193*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b) && b == 2);
1194*b1cdbd2cSJim Jagielski     }
1195*b1cdbd2cSJim Jagielski     {
1196*b1cdbd2cSJim Jagielski         float b = 2;
1197*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("float", (a >>= b) && b == 1);
1198*b1cdbd2cSJim Jagielski     }
1199*b1cdbd2cSJim Jagielski     {
1200*b1cdbd2cSJim Jagielski         double b = 2;
1201*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("double", (a >>= b) && b == 1);
1202*b1cdbd2cSJim Jagielski     }
1203*b1cdbd2cSJim Jagielski     {
1204*b1cdbd2cSJim Jagielski         sal_Unicode b = '2';
1205*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
1206*b1cdbd2cSJim Jagielski     }
1207*b1cdbd2cSJim Jagielski     {
1208*b1cdbd2cSJim Jagielski         rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
1209*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
1210*b1cdbd2cSJim Jagielski             "rtl::OUString",
1211*b1cdbd2cSJim Jagielski             !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
1212*b1cdbd2cSJim Jagielski     }
1213*b1cdbd2cSJim Jagielski     {
1214*b1cdbd2cSJim Jagielski         css::uno::Type b(getCppuType< rtl::OUString >());
1215*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
1216*b1cdbd2cSJim Jagielski             "css::uno::Type",
1217*b1cdbd2cSJim Jagielski             !(a >>= b) && b == getCppuType< rtl::OUString >());
1218*b1cdbd2cSJim Jagielski     }
1219*b1cdbd2cSJim Jagielski     {
1220*b1cdbd2cSJim Jagielski         css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
1221*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
1222*b1cdbd2cSJim Jagielski     }
1223*b1cdbd2cSJim Jagielski     {
1224*b1cdbd2cSJim Jagielski         css::uno::Sequence< rtl::OUString > b(2);
1225*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
1226*b1cdbd2cSJim Jagielski             "css::uno::Sequence<rtl::OUString>",
1227*b1cdbd2cSJim Jagielski             !(a >>= b) && b.getLength() == 2);
1228*b1cdbd2cSJim Jagielski     }
1229*b1cdbd2cSJim Jagielski     {
1230*b1cdbd2cSJim Jagielski         Enum1 b = Enum1_M2;
1231*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
1232*b1cdbd2cSJim Jagielski     }
1233*b1cdbd2cSJim Jagielski     {
1234*b1cdbd2cSJim Jagielski         Struct1 b(2);
1235*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
1236*b1cdbd2cSJim Jagielski     }
1237*b1cdbd2cSJim Jagielski     {
1238*b1cdbd2cSJim Jagielski         Exception1 b(
1239*b1cdbd2cSJim Jagielski             rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
1240*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
1241*b1cdbd2cSJim Jagielski     }
1242*b1cdbd2cSJim Jagielski     {
1243*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface1 > i(new Impl1);
1244*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface1 > b(i);
1245*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b) && b == i);
1246*b1cdbd2cSJim Jagielski     }
1247*b1cdbd2cSJim Jagielski }
1248*b1cdbd2cSJim Jagielski 
testDouble()1249*b1cdbd2cSJim Jagielski void Test::testDouble() {
1250*b1cdbd2cSJim Jagielski     css::uno::Any a(1.);
1251*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT(a.getValueType() == getCppuType< double >());
1252*b1cdbd2cSJim Jagielski     {
1253*b1cdbd2cSJim Jagielski         bool b = true;
1254*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
1255*b1cdbd2cSJim Jagielski     }
1256*b1cdbd2cSJim Jagielski     {
1257*b1cdbd2cSJim Jagielski         sal_Bool b = true;
1258*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
1259*b1cdbd2cSJim Jagielski     }
1260*b1cdbd2cSJim Jagielski     {
1261*b1cdbd2cSJim Jagielski         sal_Int8 b = 2;
1262*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
1263*b1cdbd2cSJim Jagielski     }
1264*b1cdbd2cSJim Jagielski     {
1265*b1cdbd2cSJim Jagielski         sal_uInt8 b = 2;
1266*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
1267*b1cdbd2cSJim Jagielski     }
1268*b1cdbd2cSJim Jagielski     {
1269*b1cdbd2cSJim Jagielski         sal_Int16 b = 2;
1270*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
1271*b1cdbd2cSJim Jagielski     }
1272*b1cdbd2cSJim Jagielski     {
1273*b1cdbd2cSJim Jagielski         sal_uInt16 b = 2;
1274*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
1275*b1cdbd2cSJim Jagielski     }
1276*b1cdbd2cSJim Jagielski     {
1277*b1cdbd2cSJim Jagielski         sal_Int32 b = 2;
1278*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
1279*b1cdbd2cSJim Jagielski     }
1280*b1cdbd2cSJim Jagielski     {
1281*b1cdbd2cSJim Jagielski         sal_uInt32 b = 2;
1282*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
1283*b1cdbd2cSJim Jagielski     }
1284*b1cdbd2cSJim Jagielski     {
1285*b1cdbd2cSJim Jagielski         sal_Int64 b = 2;
1286*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b) && b == 2);
1287*b1cdbd2cSJim Jagielski     }
1288*b1cdbd2cSJim Jagielski     {
1289*b1cdbd2cSJim Jagielski         sal_uInt64 b = 2;
1290*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b) && b == 2);
1291*b1cdbd2cSJim Jagielski     }
1292*b1cdbd2cSJim Jagielski     {
1293*b1cdbd2cSJim Jagielski         float b = 2;
1294*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
1295*b1cdbd2cSJim Jagielski     }
1296*b1cdbd2cSJim Jagielski     {
1297*b1cdbd2cSJim Jagielski         double b = 2;
1298*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("double", (a >>= b) && b == 1);
1299*b1cdbd2cSJim Jagielski     }
1300*b1cdbd2cSJim Jagielski     {
1301*b1cdbd2cSJim Jagielski         sal_Unicode b = '2';
1302*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
1303*b1cdbd2cSJim Jagielski     }
1304*b1cdbd2cSJim Jagielski     {
1305*b1cdbd2cSJim Jagielski         rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
1306*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
1307*b1cdbd2cSJim Jagielski             "rtl::OUString",
1308*b1cdbd2cSJim Jagielski             !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
1309*b1cdbd2cSJim Jagielski     }
1310*b1cdbd2cSJim Jagielski     {
1311*b1cdbd2cSJim Jagielski         css::uno::Type b(getCppuType< rtl::OUString >());
1312*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
1313*b1cdbd2cSJim Jagielski             "css::uno::Type",
1314*b1cdbd2cSJim Jagielski             !(a >>= b) && b == getCppuType< rtl::OUString >());
1315*b1cdbd2cSJim Jagielski     }
1316*b1cdbd2cSJim Jagielski     {
1317*b1cdbd2cSJim Jagielski         css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
1318*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
1319*b1cdbd2cSJim Jagielski     }
1320*b1cdbd2cSJim Jagielski     {
1321*b1cdbd2cSJim Jagielski         css::uno::Sequence< rtl::OUString > b(2);
1322*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
1323*b1cdbd2cSJim Jagielski             "css::uno::Sequence<rtl::OUString>",
1324*b1cdbd2cSJim Jagielski             !(a >>= b) && b.getLength() == 2);
1325*b1cdbd2cSJim Jagielski     }
1326*b1cdbd2cSJim Jagielski     {
1327*b1cdbd2cSJim Jagielski         Enum1 b = Enum1_M2;
1328*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
1329*b1cdbd2cSJim Jagielski     }
1330*b1cdbd2cSJim Jagielski     {
1331*b1cdbd2cSJim Jagielski         Struct1 b(2);
1332*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
1333*b1cdbd2cSJim Jagielski     }
1334*b1cdbd2cSJim Jagielski     {
1335*b1cdbd2cSJim Jagielski         Exception1 b(
1336*b1cdbd2cSJim Jagielski             rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
1337*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
1338*b1cdbd2cSJim Jagielski     }
1339*b1cdbd2cSJim Jagielski     {
1340*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface1 > i(new Impl1);
1341*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface1 > b(i);
1342*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b) && b == i);
1343*b1cdbd2cSJim Jagielski     }
1344*b1cdbd2cSJim Jagielski }
1345*b1cdbd2cSJim Jagielski 
testChar()1346*b1cdbd2cSJim Jagielski void Test::testChar() {
1347*b1cdbd2cSJim Jagielski     sal_Unicode c = '1';
1348*b1cdbd2cSJim Jagielski     css::uno::Any a(&c, getCppuType< sal_Unicode >());
1349*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT(a.getValueType() == getCppuType< sal_Unicode >());
1350*b1cdbd2cSJim Jagielski     {
1351*b1cdbd2cSJim Jagielski         bool b = true;
1352*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
1353*b1cdbd2cSJim Jagielski     }
1354*b1cdbd2cSJim Jagielski     {
1355*b1cdbd2cSJim Jagielski         sal_Bool b = true;
1356*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
1357*b1cdbd2cSJim Jagielski     }
1358*b1cdbd2cSJim Jagielski     {
1359*b1cdbd2cSJim Jagielski         sal_Int8 b = 2;
1360*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
1361*b1cdbd2cSJim Jagielski     }
1362*b1cdbd2cSJim Jagielski     {
1363*b1cdbd2cSJim Jagielski         sal_uInt8 b = 2;
1364*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
1365*b1cdbd2cSJim Jagielski     }
1366*b1cdbd2cSJim Jagielski     {
1367*b1cdbd2cSJim Jagielski         sal_Int16 b = 2;
1368*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
1369*b1cdbd2cSJim Jagielski     }
1370*b1cdbd2cSJim Jagielski     {
1371*b1cdbd2cSJim Jagielski         sal_uInt16 b = 2;
1372*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
1373*b1cdbd2cSJim Jagielski     }
1374*b1cdbd2cSJim Jagielski     {
1375*b1cdbd2cSJim Jagielski         sal_Int32 b = 2;
1376*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
1377*b1cdbd2cSJim Jagielski     }
1378*b1cdbd2cSJim Jagielski     {
1379*b1cdbd2cSJim Jagielski         sal_uInt32 b = 2;
1380*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
1381*b1cdbd2cSJim Jagielski     }
1382*b1cdbd2cSJim Jagielski     {
1383*b1cdbd2cSJim Jagielski         sal_Int64 b = 2;
1384*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b) && b == 2);
1385*b1cdbd2cSJim Jagielski     }
1386*b1cdbd2cSJim Jagielski     {
1387*b1cdbd2cSJim Jagielski         sal_uInt64 b = 2;
1388*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b) && b == 2);
1389*b1cdbd2cSJim Jagielski     }
1390*b1cdbd2cSJim Jagielski     {
1391*b1cdbd2cSJim Jagielski         float b = 2;
1392*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
1393*b1cdbd2cSJim Jagielski     }
1394*b1cdbd2cSJim Jagielski     {
1395*b1cdbd2cSJim Jagielski         double b = 2;
1396*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b) && b == 2);
1397*b1cdbd2cSJim Jagielski     }
1398*b1cdbd2cSJim Jagielski     {
1399*b1cdbd2cSJim Jagielski         sal_Unicode b = '2';
1400*b1cdbd2cSJim Jagielski         if (boost::is_same< sal_Unicode, sal_uInt16 >::value) {
1401*b1cdbd2cSJim Jagielski             CPPUNIT_ASSERT_MESSAGE("@sal_Unicode", !(a >>= b) && b == '2');
1402*b1cdbd2cSJim Jagielski         } else {
1403*b1cdbd2cSJim Jagielski             CPPUNIT_ASSERT_MESSAGE("sal_Unicode", (a >>= b) && b == '1');
1404*b1cdbd2cSJim Jagielski         }
1405*b1cdbd2cSJim Jagielski     }
1406*b1cdbd2cSJim Jagielski     {
1407*b1cdbd2cSJim Jagielski         rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
1408*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
1409*b1cdbd2cSJim Jagielski             "rtl::OUString",
1410*b1cdbd2cSJim Jagielski             !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
1411*b1cdbd2cSJim Jagielski     }
1412*b1cdbd2cSJim Jagielski     {
1413*b1cdbd2cSJim Jagielski         css::uno::Type b(getCppuType< rtl::OUString >());
1414*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
1415*b1cdbd2cSJim Jagielski             "css::uno::Type",
1416*b1cdbd2cSJim Jagielski             !(a >>= b) && b == getCppuType< rtl::OUString >());
1417*b1cdbd2cSJim Jagielski     }
1418*b1cdbd2cSJim Jagielski     {
1419*b1cdbd2cSJim Jagielski         css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
1420*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
1421*b1cdbd2cSJim Jagielski     }
1422*b1cdbd2cSJim Jagielski     {
1423*b1cdbd2cSJim Jagielski         css::uno::Sequence< rtl::OUString > b(2);
1424*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
1425*b1cdbd2cSJim Jagielski             "css::uno::Sequence<rtl::OUString>",
1426*b1cdbd2cSJim Jagielski             !(a >>= b) && b.getLength() == 2);
1427*b1cdbd2cSJim Jagielski     }
1428*b1cdbd2cSJim Jagielski     {
1429*b1cdbd2cSJim Jagielski         Enum1 b = Enum1_M2;
1430*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
1431*b1cdbd2cSJim Jagielski     }
1432*b1cdbd2cSJim Jagielski     {
1433*b1cdbd2cSJim Jagielski         Struct1 b(2);
1434*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
1435*b1cdbd2cSJim Jagielski     }
1436*b1cdbd2cSJim Jagielski     {
1437*b1cdbd2cSJim Jagielski         Exception1 b(
1438*b1cdbd2cSJim Jagielski             rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
1439*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
1440*b1cdbd2cSJim Jagielski     }
1441*b1cdbd2cSJim Jagielski     {
1442*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface1 > i(new Impl1);
1443*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface1 > b(i);
1444*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b) && b == i);
1445*b1cdbd2cSJim Jagielski     }
1446*b1cdbd2cSJim Jagielski }
1447*b1cdbd2cSJim Jagielski 
testString()1448*b1cdbd2cSJim Jagielski void Test::testString() {
1449*b1cdbd2cSJim Jagielski     css::uno::Any a(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("1")));
1450*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT(a.getValueType() == getCppuType< rtl::OUString >());
1451*b1cdbd2cSJim Jagielski     {
1452*b1cdbd2cSJim Jagielski         bool b = true;
1453*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
1454*b1cdbd2cSJim Jagielski     }
1455*b1cdbd2cSJim Jagielski     {
1456*b1cdbd2cSJim Jagielski         sal_Bool b = true;
1457*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
1458*b1cdbd2cSJim Jagielski     }
1459*b1cdbd2cSJim Jagielski     {
1460*b1cdbd2cSJim Jagielski         sal_Int8 b = 2;
1461*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
1462*b1cdbd2cSJim Jagielski     }
1463*b1cdbd2cSJim Jagielski     {
1464*b1cdbd2cSJim Jagielski         sal_uInt8 b = 2;
1465*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
1466*b1cdbd2cSJim Jagielski     }
1467*b1cdbd2cSJim Jagielski     {
1468*b1cdbd2cSJim Jagielski         sal_Int16 b = 2;
1469*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
1470*b1cdbd2cSJim Jagielski     }
1471*b1cdbd2cSJim Jagielski     {
1472*b1cdbd2cSJim Jagielski         sal_uInt16 b = 2;
1473*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
1474*b1cdbd2cSJim Jagielski     }
1475*b1cdbd2cSJim Jagielski     {
1476*b1cdbd2cSJim Jagielski         sal_Int32 b = 2;
1477*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
1478*b1cdbd2cSJim Jagielski     }
1479*b1cdbd2cSJim Jagielski     {
1480*b1cdbd2cSJim Jagielski         sal_uInt32 b = 2;
1481*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
1482*b1cdbd2cSJim Jagielski     }
1483*b1cdbd2cSJim Jagielski     {
1484*b1cdbd2cSJim Jagielski         sal_Int64 b = 2;
1485*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b) && b == 2);
1486*b1cdbd2cSJim Jagielski     }
1487*b1cdbd2cSJim Jagielski     {
1488*b1cdbd2cSJim Jagielski         sal_uInt64 b = 2;
1489*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b) && b == 2);
1490*b1cdbd2cSJim Jagielski     }
1491*b1cdbd2cSJim Jagielski     {
1492*b1cdbd2cSJim Jagielski         float b = 2;
1493*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
1494*b1cdbd2cSJim Jagielski     }
1495*b1cdbd2cSJim Jagielski     {
1496*b1cdbd2cSJim Jagielski         double b = 2;
1497*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b) && b == 2);
1498*b1cdbd2cSJim Jagielski     }
1499*b1cdbd2cSJim Jagielski     {
1500*b1cdbd2cSJim Jagielski         sal_Unicode b = '2';
1501*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
1502*b1cdbd2cSJim Jagielski     }
1503*b1cdbd2cSJim Jagielski     {
1504*b1cdbd2cSJim Jagielski         rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
1505*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
1506*b1cdbd2cSJim Jagielski             "rtl::OUString",
1507*b1cdbd2cSJim Jagielski             (a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("1")));
1508*b1cdbd2cSJim Jagielski     }
1509*b1cdbd2cSJim Jagielski     {
1510*b1cdbd2cSJim Jagielski         css::uno::Type b(getCppuType< rtl::OUString >());
1511*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
1512*b1cdbd2cSJim Jagielski             "css::uno::Type",
1513*b1cdbd2cSJim Jagielski             !(a >>= b) && b == getCppuType< rtl::OUString >());
1514*b1cdbd2cSJim Jagielski     }
1515*b1cdbd2cSJim Jagielski     {
1516*b1cdbd2cSJim Jagielski         css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
1517*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
1518*b1cdbd2cSJim Jagielski     }
1519*b1cdbd2cSJim Jagielski     {
1520*b1cdbd2cSJim Jagielski         css::uno::Sequence< rtl::OUString > b(2);
1521*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
1522*b1cdbd2cSJim Jagielski             "css::uno::Sequence<rtl::OUString>",
1523*b1cdbd2cSJim Jagielski             !(a >>= b) && b.getLength() == 2);
1524*b1cdbd2cSJim Jagielski     }
1525*b1cdbd2cSJim Jagielski     {
1526*b1cdbd2cSJim Jagielski         Enum1 b = Enum1_M2;
1527*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
1528*b1cdbd2cSJim Jagielski     }
1529*b1cdbd2cSJim Jagielski     {
1530*b1cdbd2cSJim Jagielski         Struct1 b(2);
1531*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
1532*b1cdbd2cSJim Jagielski     }
1533*b1cdbd2cSJim Jagielski     {
1534*b1cdbd2cSJim Jagielski         Exception1 b(
1535*b1cdbd2cSJim Jagielski             rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
1536*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
1537*b1cdbd2cSJim Jagielski     }
1538*b1cdbd2cSJim Jagielski     {
1539*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface1 > i(new Impl1);
1540*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface1 > b(i);
1541*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b) && b == i);
1542*b1cdbd2cSJim Jagielski     }
1543*b1cdbd2cSJim Jagielski }
1544*b1cdbd2cSJim Jagielski 
testType()1545*b1cdbd2cSJim Jagielski void Test::testType() {
1546*b1cdbd2cSJim Jagielski     css::uno::Any a(getCppuType< sal_Int32 >());
1547*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT(a.getValueType() == getCppuType< css::uno::Type >());
1548*b1cdbd2cSJim Jagielski     {
1549*b1cdbd2cSJim Jagielski         bool b = true;
1550*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
1551*b1cdbd2cSJim Jagielski     }
1552*b1cdbd2cSJim Jagielski     {
1553*b1cdbd2cSJim Jagielski         sal_Bool b = true;
1554*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
1555*b1cdbd2cSJim Jagielski     }
1556*b1cdbd2cSJim Jagielski     {
1557*b1cdbd2cSJim Jagielski         sal_Int8 b = 2;
1558*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
1559*b1cdbd2cSJim Jagielski     }
1560*b1cdbd2cSJim Jagielski     {
1561*b1cdbd2cSJim Jagielski         sal_uInt8 b = 2;
1562*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
1563*b1cdbd2cSJim Jagielski     }
1564*b1cdbd2cSJim Jagielski     {
1565*b1cdbd2cSJim Jagielski         sal_Int16 b = 2;
1566*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
1567*b1cdbd2cSJim Jagielski     }
1568*b1cdbd2cSJim Jagielski     {
1569*b1cdbd2cSJim Jagielski         sal_uInt16 b = 2;
1570*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
1571*b1cdbd2cSJim Jagielski     }
1572*b1cdbd2cSJim Jagielski     {
1573*b1cdbd2cSJim Jagielski         sal_Int32 b = 2;
1574*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
1575*b1cdbd2cSJim Jagielski     }
1576*b1cdbd2cSJim Jagielski     {
1577*b1cdbd2cSJim Jagielski         sal_uInt32 b = 2;
1578*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
1579*b1cdbd2cSJim Jagielski     }
1580*b1cdbd2cSJim Jagielski     {
1581*b1cdbd2cSJim Jagielski         sal_Int64 b = 2;
1582*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b) && b == 2);
1583*b1cdbd2cSJim Jagielski     }
1584*b1cdbd2cSJim Jagielski     {
1585*b1cdbd2cSJim Jagielski         sal_uInt64 b = 2;
1586*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b) && b == 2);
1587*b1cdbd2cSJim Jagielski     }
1588*b1cdbd2cSJim Jagielski     {
1589*b1cdbd2cSJim Jagielski         float b = 2;
1590*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
1591*b1cdbd2cSJim Jagielski     }
1592*b1cdbd2cSJim Jagielski     {
1593*b1cdbd2cSJim Jagielski         double b = 2;
1594*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b) && b == 2);
1595*b1cdbd2cSJim Jagielski     }
1596*b1cdbd2cSJim Jagielski     {
1597*b1cdbd2cSJim Jagielski         sal_Unicode b = '2';
1598*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
1599*b1cdbd2cSJim Jagielski     }
1600*b1cdbd2cSJim Jagielski     {
1601*b1cdbd2cSJim Jagielski         rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
1602*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
1603*b1cdbd2cSJim Jagielski             "rtl::OUString",
1604*b1cdbd2cSJim Jagielski             !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
1605*b1cdbd2cSJim Jagielski     }
1606*b1cdbd2cSJim Jagielski     {
1607*b1cdbd2cSJim Jagielski         css::uno::Type b(getCppuType< rtl::OUString >());
1608*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
1609*b1cdbd2cSJim Jagielski             "css::uno::Type", (a >>= b) && b == getCppuType< sal_Int32 >());
1610*b1cdbd2cSJim Jagielski     }
1611*b1cdbd2cSJim Jagielski     {
1612*b1cdbd2cSJim Jagielski         css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
1613*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
1614*b1cdbd2cSJim Jagielski     }
1615*b1cdbd2cSJim Jagielski     {
1616*b1cdbd2cSJim Jagielski         css::uno::Sequence< rtl::OUString > b(2);
1617*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
1618*b1cdbd2cSJim Jagielski             "css::uno::Sequence<rtl::OUString>",
1619*b1cdbd2cSJim Jagielski             !(a >>= b) && b.getLength() == 2);
1620*b1cdbd2cSJim Jagielski     }
1621*b1cdbd2cSJim Jagielski     {
1622*b1cdbd2cSJim Jagielski         Enum1 b = Enum1_M2;
1623*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
1624*b1cdbd2cSJim Jagielski     }
1625*b1cdbd2cSJim Jagielski     {
1626*b1cdbd2cSJim Jagielski         Struct1 b(2);
1627*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
1628*b1cdbd2cSJim Jagielski     }
1629*b1cdbd2cSJim Jagielski     {
1630*b1cdbd2cSJim Jagielski         Exception1 b(
1631*b1cdbd2cSJim Jagielski             rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
1632*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
1633*b1cdbd2cSJim Jagielski     }
1634*b1cdbd2cSJim Jagielski     {
1635*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface1 > i(new Impl1);
1636*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface1 > b(i);
1637*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b) && b == i);
1638*b1cdbd2cSJim Jagielski     }
1639*b1cdbd2cSJim Jagielski }
1640*b1cdbd2cSJim Jagielski 
testSequence()1641*b1cdbd2cSJim Jagielski void Test::testSequence() {
1642*b1cdbd2cSJim Jagielski     sal_Int32 n = 1;
1643*b1cdbd2cSJim Jagielski     css::uno::Any a(css::uno::Sequence< sal_Int32 >(&n, 1));
1644*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT(
1645*b1cdbd2cSJim Jagielski         a.getValueType() == getCppuType< css::uno::Sequence< sal_Int32 > >());
1646*b1cdbd2cSJim Jagielski     {
1647*b1cdbd2cSJim Jagielski         bool b = true;
1648*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
1649*b1cdbd2cSJim Jagielski     }
1650*b1cdbd2cSJim Jagielski     {
1651*b1cdbd2cSJim Jagielski         sal_Bool b = true;
1652*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
1653*b1cdbd2cSJim Jagielski     }
1654*b1cdbd2cSJim Jagielski     {
1655*b1cdbd2cSJim Jagielski         sal_Int8 b = 2;
1656*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
1657*b1cdbd2cSJim Jagielski     }
1658*b1cdbd2cSJim Jagielski     {
1659*b1cdbd2cSJim Jagielski         sal_uInt8 b = 2;
1660*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
1661*b1cdbd2cSJim Jagielski     }
1662*b1cdbd2cSJim Jagielski     {
1663*b1cdbd2cSJim Jagielski         sal_Int16 b = 2;
1664*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
1665*b1cdbd2cSJim Jagielski     }
1666*b1cdbd2cSJim Jagielski     {
1667*b1cdbd2cSJim Jagielski         sal_uInt16 b = 2;
1668*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
1669*b1cdbd2cSJim Jagielski     }
1670*b1cdbd2cSJim Jagielski     {
1671*b1cdbd2cSJim Jagielski         sal_Int32 b = 2;
1672*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
1673*b1cdbd2cSJim Jagielski     }
1674*b1cdbd2cSJim Jagielski     {
1675*b1cdbd2cSJim Jagielski         sal_uInt32 b = 2;
1676*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
1677*b1cdbd2cSJim Jagielski     }
1678*b1cdbd2cSJim Jagielski     {
1679*b1cdbd2cSJim Jagielski         sal_Int64 b = 2;
1680*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b) && b == 2);
1681*b1cdbd2cSJim Jagielski     }
1682*b1cdbd2cSJim Jagielski     {
1683*b1cdbd2cSJim Jagielski         sal_uInt64 b = 2;
1684*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b) && b == 2);
1685*b1cdbd2cSJim Jagielski     }
1686*b1cdbd2cSJim Jagielski     {
1687*b1cdbd2cSJim Jagielski         float b = 2;
1688*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
1689*b1cdbd2cSJim Jagielski     }
1690*b1cdbd2cSJim Jagielski     {
1691*b1cdbd2cSJim Jagielski         double b = 2;
1692*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b) && b == 2);
1693*b1cdbd2cSJim Jagielski     }
1694*b1cdbd2cSJim Jagielski     {
1695*b1cdbd2cSJim Jagielski         sal_Unicode b = '2';
1696*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
1697*b1cdbd2cSJim Jagielski     }
1698*b1cdbd2cSJim Jagielski     {
1699*b1cdbd2cSJim Jagielski         rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
1700*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
1701*b1cdbd2cSJim Jagielski             "rtl::OUString",
1702*b1cdbd2cSJim Jagielski             !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
1703*b1cdbd2cSJim Jagielski     }
1704*b1cdbd2cSJim Jagielski     {
1705*b1cdbd2cSJim Jagielski         css::uno::Type b(getCppuType< rtl::OUString >());
1706*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
1707*b1cdbd2cSJim Jagielski             "css::uno::Type",
1708*b1cdbd2cSJim Jagielski             !(a >>= b) && b == getCppuType< rtl::OUString >());
1709*b1cdbd2cSJim Jagielski     }
1710*b1cdbd2cSJim Jagielski     {
1711*b1cdbd2cSJim Jagielski         css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
1712*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
1713*b1cdbd2cSJim Jagielski     }
1714*b1cdbd2cSJim Jagielski     {
1715*b1cdbd2cSJim Jagielski         css::uno::Sequence< rtl::OUString > b(2);
1716*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
1717*b1cdbd2cSJim Jagielski             "css::uno::Sequence<rtl::OUString>",
1718*b1cdbd2cSJim Jagielski             !(a >>= b) && b.getLength() == 2);
1719*b1cdbd2cSJim Jagielski     }
1720*b1cdbd2cSJim Jagielski     {
1721*b1cdbd2cSJim Jagielski         css::uno::Sequence< sal_Int32 > b(2);
1722*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
1723*b1cdbd2cSJim Jagielski             "css::uno::Sequence<sal_Int32>",
1724*b1cdbd2cSJim Jagielski             (a >>= b) && b.getLength() == 1 && b[0] == 1);
1725*b1cdbd2cSJim Jagielski     }
1726*b1cdbd2cSJim Jagielski     {
1727*b1cdbd2cSJim Jagielski         Enum1 b = Enum1_M2;
1728*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
1729*b1cdbd2cSJim Jagielski     }
1730*b1cdbd2cSJim Jagielski     {
1731*b1cdbd2cSJim Jagielski         Struct1 b(2);
1732*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
1733*b1cdbd2cSJim Jagielski     }
1734*b1cdbd2cSJim Jagielski     {
1735*b1cdbd2cSJim Jagielski         Exception1 b(
1736*b1cdbd2cSJim Jagielski             rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
1737*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
1738*b1cdbd2cSJim Jagielski     }
1739*b1cdbd2cSJim Jagielski     {
1740*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface1 > i(new Impl1);
1741*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface1 > b(i);
1742*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b) && b == i);
1743*b1cdbd2cSJim Jagielski     }
1744*b1cdbd2cSJim Jagielski }
1745*b1cdbd2cSJim Jagielski 
testEnum()1746*b1cdbd2cSJim Jagielski void Test::testEnum() {
1747*b1cdbd2cSJim Jagielski     css::uno::Any a(Enum2_M1);
1748*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT(a.getValueType() == getCppuType< Enum2 >());
1749*b1cdbd2cSJim Jagielski     {
1750*b1cdbd2cSJim Jagielski         bool b = true;
1751*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
1752*b1cdbd2cSJim Jagielski     }
1753*b1cdbd2cSJim Jagielski     {
1754*b1cdbd2cSJim Jagielski         sal_Bool b = true;
1755*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
1756*b1cdbd2cSJim Jagielski     }
1757*b1cdbd2cSJim Jagielski     {
1758*b1cdbd2cSJim Jagielski         sal_Int8 b = 2;
1759*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
1760*b1cdbd2cSJim Jagielski     }
1761*b1cdbd2cSJim Jagielski     {
1762*b1cdbd2cSJim Jagielski         sal_uInt8 b = 2;
1763*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
1764*b1cdbd2cSJim Jagielski     }
1765*b1cdbd2cSJim Jagielski     {
1766*b1cdbd2cSJim Jagielski         sal_Int16 b = 2;
1767*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
1768*b1cdbd2cSJim Jagielski     }
1769*b1cdbd2cSJim Jagielski     {
1770*b1cdbd2cSJim Jagielski         sal_uInt16 b = 2;
1771*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
1772*b1cdbd2cSJim Jagielski     }
1773*b1cdbd2cSJim Jagielski     {
1774*b1cdbd2cSJim Jagielski         sal_Int32 b = 2;
1775*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
1776*b1cdbd2cSJim Jagielski     }
1777*b1cdbd2cSJim Jagielski     {
1778*b1cdbd2cSJim Jagielski         sal_uInt32 b = 2;
1779*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
1780*b1cdbd2cSJim Jagielski     }
1781*b1cdbd2cSJim Jagielski     {
1782*b1cdbd2cSJim Jagielski         sal_Int64 b = 2;
1783*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b) && b == 2);
1784*b1cdbd2cSJim Jagielski     }
1785*b1cdbd2cSJim Jagielski     {
1786*b1cdbd2cSJim Jagielski         sal_uInt64 b = 2;
1787*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b) && b == 2);
1788*b1cdbd2cSJim Jagielski     }
1789*b1cdbd2cSJim Jagielski     {
1790*b1cdbd2cSJim Jagielski         float b = 2;
1791*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
1792*b1cdbd2cSJim Jagielski     }
1793*b1cdbd2cSJim Jagielski     {
1794*b1cdbd2cSJim Jagielski         double b = 2;
1795*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b) && b == 2);
1796*b1cdbd2cSJim Jagielski     }
1797*b1cdbd2cSJim Jagielski     {
1798*b1cdbd2cSJim Jagielski         sal_Unicode b = '2';
1799*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
1800*b1cdbd2cSJim Jagielski     }
1801*b1cdbd2cSJim Jagielski     {
1802*b1cdbd2cSJim Jagielski         rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
1803*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
1804*b1cdbd2cSJim Jagielski             "rtl::OUString",
1805*b1cdbd2cSJim Jagielski             !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
1806*b1cdbd2cSJim Jagielski     }
1807*b1cdbd2cSJim Jagielski     {
1808*b1cdbd2cSJim Jagielski         css::uno::Type b(getCppuType< rtl::OUString >());
1809*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
1810*b1cdbd2cSJim Jagielski             "css::uno::Type",
1811*b1cdbd2cSJim Jagielski             !(a >>= b) && b == getCppuType< rtl::OUString >());
1812*b1cdbd2cSJim Jagielski     }
1813*b1cdbd2cSJim Jagielski     {
1814*b1cdbd2cSJim Jagielski         css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
1815*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
1816*b1cdbd2cSJim Jagielski     }
1817*b1cdbd2cSJim Jagielski     {
1818*b1cdbd2cSJim Jagielski         css::uno::Sequence< rtl::OUString > b(2);
1819*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
1820*b1cdbd2cSJim Jagielski             "css::uno::Sequence<rtl::OUString>",
1821*b1cdbd2cSJim Jagielski             !(a >>= b) && b.getLength() == 2);
1822*b1cdbd2cSJim Jagielski     }
1823*b1cdbd2cSJim Jagielski     {
1824*b1cdbd2cSJim Jagielski         Enum1 b = Enum1_M2;
1825*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
1826*b1cdbd2cSJim Jagielski     }
1827*b1cdbd2cSJim Jagielski     {
1828*b1cdbd2cSJim Jagielski         Enum2 b = Enum2_M2;
1829*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Enum2", (a >>= b) && b == Enum2_M1);
1830*b1cdbd2cSJim Jagielski     }
1831*b1cdbd2cSJim Jagielski     {
1832*b1cdbd2cSJim Jagielski         Struct1 b(2);
1833*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
1834*b1cdbd2cSJim Jagielski     }
1835*b1cdbd2cSJim Jagielski     {
1836*b1cdbd2cSJim Jagielski         Exception1 b(
1837*b1cdbd2cSJim Jagielski             rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
1838*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
1839*b1cdbd2cSJim Jagielski     }
1840*b1cdbd2cSJim Jagielski     {
1841*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface1 > i(new Impl1);
1842*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface1 > b(i);
1843*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b) && b == i);
1844*b1cdbd2cSJim Jagielski     }
1845*b1cdbd2cSJim Jagielski }
1846*b1cdbd2cSJim Jagielski 
testStruct()1847*b1cdbd2cSJim Jagielski void Test::testStruct() {
1848*b1cdbd2cSJim Jagielski     css::uno::Any a(Struct2a(1, 3));
1849*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT(a.getValueType() == getCppuType< Struct2a >());
1850*b1cdbd2cSJim Jagielski     {
1851*b1cdbd2cSJim Jagielski         bool b = true;
1852*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
1853*b1cdbd2cSJim Jagielski     }
1854*b1cdbd2cSJim Jagielski     {
1855*b1cdbd2cSJim Jagielski         sal_Bool b = true;
1856*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
1857*b1cdbd2cSJim Jagielski     }
1858*b1cdbd2cSJim Jagielski     {
1859*b1cdbd2cSJim Jagielski         sal_Int8 b = 2;
1860*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
1861*b1cdbd2cSJim Jagielski     }
1862*b1cdbd2cSJim Jagielski     {
1863*b1cdbd2cSJim Jagielski         sal_uInt8 b = 2;
1864*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
1865*b1cdbd2cSJim Jagielski     }
1866*b1cdbd2cSJim Jagielski     {
1867*b1cdbd2cSJim Jagielski         sal_Int16 b = 2;
1868*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
1869*b1cdbd2cSJim Jagielski     }
1870*b1cdbd2cSJim Jagielski     {
1871*b1cdbd2cSJim Jagielski         sal_uInt16 b = 2;
1872*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
1873*b1cdbd2cSJim Jagielski     }
1874*b1cdbd2cSJim Jagielski     {
1875*b1cdbd2cSJim Jagielski         sal_Int32 b = 2;
1876*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
1877*b1cdbd2cSJim Jagielski     }
1878*b1cdbd2cSJim Jagielski     {
1879*b1cdbd2cSJim Jagielski         sal_uInt32 b = 2;
1880*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
1881*b1cdbd2cSJim Jagielski     }
1882*b1cdbd2cSJim Jagielski     {
1883*b1cdbd2cSJim Jagielski         sal_Int64 b = 2;
1884*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b) && b == 2);
1885*b1cdbd2cSJim Jagielski     }
1886*b1cdbd2cSJim Jagielski     {
1887*b1cdbd2cSJim Jagielski         sal_uInt64 b = 2;
1888*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b) && b == 2);
1889*b1cdbd2cSJim Jagielski     }
1890*b1cdbd2cSJim Jagielski     {
1891*b1cdbd2cSJim Jagielski         float b = 2;
1892*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
1893*b1cdbd2cSJim Jagielski     }
1894*b1cdbd2cSJim Jagielski     {
1895*b1cdbd2cSJim Jagielski         double b = 2;
1896*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b) && b == 2);
1897*b1cdbd2cSJim Jagielski     }
1898*b1cdbd2cSJim Jagielski     {
1899*b1cdbd2cSJim Jagielski         sal_Unicode b = '2';
1900*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
1901*b1cdbd2cSJim Jagielski     }
1902*b1cdbd2cSJim Jagielski     {
1903*b1cdbd2cSJim Jagielski         rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
1904*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
1905*b1cdbd2cSJim Jagielski             "rtl::OUString",
1906*b1cdbd2cSJim Jagielski             !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
1907*b1cdbd2cSJim Jagielski     }
1908*b1cdbd2cSJim Jagielski     {
1909*b1cdbd2cSJim Jagielski         css::uno::Type b(getCppuType< rtl::OUString >());
1910*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
1911*b1cdbd2cSJim Jagielski             "css::uno::Type",
1912*b1cdbd2cSJim Jagielski             !(a >>= b) && b == getCppuType< rtl::OUString >());
1913*b1cdbd2cSJim Jagielski     }
1914*b1cdbd2cSJim Jagielski     {
1915*b1cdbd2cSJim Jagielski         css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
1916*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
1917*b1cdbd2cSJim Jagielski     }
1918*b1cdbd2cSJim Jagielski     {
1919*b1cdbd2cSJim Jagielski         css::uno::Sequence< rtl::OUString > b(2);
1920*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
1921*b1cdbd2cSJim Jagielski             "css::uno::Sequence<rtl::OUString>",
1922*b1cdbd2cSJim Jagielski             !(a >>= b) && b.getLength() == 2);
1923*b1cdbd2cSJim Jagielski     }
1924*b1cdbd2cSJim Jagielski     {
1925*b1cdbd2cSJim Jagielski         Enum1 b = Enum1_M2;
1926*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
1927*b1cdbd2cSJim Jagielski     }
1928*b1cdbd2cSJim Jagielski     {
1929*b1cdbd2cSJim Jagielski         Struct1 b(2);
1930*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
1931*b1cdbd2cSJim Jagielski     }
1932*b1cdbd2cSJim Jagielski     {
1933*b1cdbd2cSJim Jagielski         Struct2 b(2);
1934*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Struct2", (a >>= b) && b.member == 1);
1935*b1cdbd2cSJim Jagielski     }
1936*b1cdbd2cSJim Jagielski     {
1937*b1cdbd2cSJim Jagielski         Struct2a b(2, 2);
1938*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
1939*b1cdbd2cSJim Jagielski             "Struct2a", (a >>= b) && b.member == 1 && b.member2 == 3);
1940*b1cdbd2cSJim Jagielski     }
1941*b1cdbd2cSJim Jagielski     {
1942*b1cdbd2cSJim Jagielski         Struct2b b(2, 2, 2);
1943*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Struct2b", !(a >>= b) && b.member == 2);
1944*b1cdbd2cSJim Jagielski     }
1945*b1cdbd2cSJim Jagielski     {
1946*b1cdbd2cSJim Jagielski         Exception1 b(
1947*b1cdbd2cSJim Jagielski             rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
1948*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
1949*b1cdbd2cSJim Jagielski     }
1950*b1cdbd2cSJim Jagielski     {
1951*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface1 > i(new Impl1);
1952*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface1 > b(i);
1953*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b) && b == i);
1954*b1cdbd2cSJim Jagielski     }
1955*b1cdbd2cSJim Jagielski }
1956*b1cdbd2cSJim Jagielski 
testPoly()1957*b1cdbd2cSJim Jagielski void Test::testPoly() {
1958*b1cdbd2cSJim Jagielski     css::uno::Any a;
1959*b1cdbd2cSJim Jagielski     a <<= Poly< css::uno::Sequence< ::sal_Unicode > >();
1960*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_MESSAGE(
1961*b1cdbd2cSJim Jagielski         "type name",
1962*b1cdbd2cSJim Jagielski         a.getValueType().getTypeName().equalsAsciiL(
1963*b1cdbd2cSJim Jagielski             RTL_CONSTASCII_STRINGPARAM("Poly<[]char>")));
1964*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT_MESSAGE(
1965*b1cdbd2cSJim Jagielski         "constructor",
1966*b1cdbd2cSJim Jagielski         a == css::uno::Any(Poly< css::uno::Sequence< ::sal_Unicode > >()));
1967*b1cdbd2cSJim Jagielski }
1968*b1cdbd2cSJim Jagielski 
testException()1969*b1cdbd2cSJim Jagielski void Test::testException() {
1970*b1cdbd2cSJim Jagielski     css::uno::Any a(
1971*b1cdbd2cSJim Jagielski         Exception2a(
1972*b1cdbd2cSJim Jagielski             rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 1,
1973*b1cdbd2cSJim Jagielski             3));
1974*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT(a.getValueType() == getCppuType< Exception2a >());
1975*b1cdbd2cSJim Jagielski     {
1976*b1cdbd2cSJim Jagielski         bool b = true;
1977*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
1978*b1cdbd2cSJim Jagielski     }
1979*b1cdbd2cSJim Jagielski     {
1980*b1cdbd2cSJim Jagielski         sal_Bool b = true;
1981*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
1982*b1cdbd2cSJim Jagielski     }
1983*b1cdbd2cSJim Jagielski     {
1984*b1cdbd2cSJim Jagielski         sal_Int8 b = 2;
1985*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
1986*b1cdbd2cSJim Jagielski     }
1987*b1cdbd2cSJim Jagielski     {
1988*b1cdbd2cSJim Jagielski         sal_uInt8 b = 2;
1989*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
1990*b1cdbd2cSJim Jagielski     }
1991*b1cdbd2cSJim Jagielski     {
1992*b1cdbd2cSJim Jagielski         sal_Int16 b = 2;
1993*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
1994*b1cdbd2cSJim Jagielski     }
1995*b1cdbd2cSJim Jagielski     {
1996*b1cdbd2cSJim Jagielski         sal_uInt16 b = 2;
1997*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
1998*b1cdbd2cSJim Jagielski     }
1999*b1cdbd2cSJim Jagielski     {
2000*b1cdbd2cSJim Jagielski         sal_Int32 b = 2;
2001*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
2002*b1cdbd2cSJim Jagielski     }
2003*b1cdbd2cSJim Jagielski     {
2004*b1cdbd2cSJim Jagielski         sal_uInt32 b = 2;
2005*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
2006*b1cdbd2cSJim Jagielski     }
2007*b1cdbd2cSJim Jagielski     {
2008*b1cdbd2cSJim Jagielski         sal_Int64 b = 2;
2009*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b) && b == 2);
2010*b1cdbd2cSJim Jagielski     }
2011*b1cdbd2cSJim Jagielski     {
2012*b1cdbd2cSJim Jagielski         sal_uInt64 b = 2;
2013*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b) && b == 2);
2014*b1cdbd2cSJim Jagielski     }
2015*b1cdbd2cSJim Jagielski     {
2016*b1cdbd2cSJim Jagielski         float b = 2;
2017*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
2018*b1cdbd2cSJim Jagielski     }
2019*b1cdbd2cSJim Jagielski     {
2020*b1cdbd2cSJim Jagielski         double b = 2;
2021*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b) && b == 2);
2022*b1cdbd2cSJim Jagielski     }
2023*b1cdbd2cSJim Jagielski     {
2024*b1cdbd2cSJim Jagielski         sal_Unicode b = '2';
2025*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
2026*b1cdbd2cSJim Jagielski     }
2027*b1cdbd2cSJim Jagielski     {
2028*b1cdbd2cSJim Jagielski         rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
2029*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
2030*b1cdbd2cSJim Jagielski             "rtl::OUString",
2031*b1cdbd2cSJim Jagielski             !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
2032*b1cdbd2cSJim Jagielski     }
2033*b1cdbd2cSJim Jagielski     {
2034*b1cdbd2cSJim Jagielski         css::uno::Type b(getCppuType< rtl::OUString >());
2035*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
2036*b1cdbd2cSJim Jagielski             "css::uno::Type",
2037*b1cdbd2cSJim Jagielski             !(a >>= b) && b == getCppuType< rtl::OUString >());
2038*b1cdbd2cSJim Jagielski     }
2039*b1cdbd2cSJim Jagielski     {
2040*b1cdbd2cSJim Jagielski         css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
2041*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
2042*b1cdbd2cSJim Jagielski     }
2043*b1cdbd2cSJim Jagielski     {
2044*b1cdbd2cSJim Jagielski         css::uno::Sequence< rtl::OUString > b(2);
2045*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
2046*b1cdbd2cSJim Jagielski             "css::uno::Sequence<rtl::OUString>",
2047*b1cdbd2cSJim Jagielski             !(a >>= b) && b.getLength() == 2);
2048*b1cdbd2cSJim Jagielski     }
2049*b1cdbd2cSJim Jagielski     {
2050*b1cdbd2cSJim Jagielski         Enum1 b = Enum1_M2;
2051*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
2052*b1cdbd2cSJim Jagielski     }
2053*b1cdbd2cSJim Jagielski     {
2054*b1cdbd2cSJim Jagielski         Struct1 b(2);
2055*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
2056*b1cdbd2cSJim Jagielski     }
2057*b1cdbd2cSJim Jagielski     {
2058*b1cdbd2cSJim Jagielski         Exception1 b(
2059*b1cdbd2cSJim Jagielski             rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
2060*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
2061*b1cdbd2cSJim Jagielski     }
2062*b1cdbd2cSJim Jagielski     {
2063*b1cdbd2cSJim Jagielski         Exception2 b(
2064*b1cdbd2cSJim Jagielski             rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
2065*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Exception2", (a >>= b) && b.member == 1);
2066*b1cdbd2cSJim Jagielski     }
2067*b1cdbd2cSJim Jagielski     {
2068*b1cdbd2cSJim Jagielski         Exception2a b(
2069*b1cdbd2cSJim Jagielski             rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2,
2070*b1cdbd2cSJim Jagielski             2);
2071*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
2072*b1cdbd2cSJim Jagielski             "Exception2a", (a >>= b) && b.member == 1 && b.member2 == 3);
2073*b1cdbd2cSJim Jagielski     }
2074*b1cdbd2cSJim Jagielski     {
2075*b1cdbd2cSJim Jagielski         Exception2b b(
2076*b1cdbd2cSJim Jagielski             rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2,
2077*b1cdbd2cSJim Jagielski             2);
2078*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Exception2b", !(a >>= b) && b.member == 2);
2079*b1cdbd2cSJim Jagielski     }
2080*b1cdbd2cSJim Jagielski     {
2081*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface1 > i(new Impl1);
2082*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface1 > b(i);
2083*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b) && b == i);
2084*b1cdbd2cSJim Jagielski     }
2085*b1cdbd2cSJim Jagielski }
2086*b1cdbd2cSJim Jagielski 
testInterface()2087*b1cdbd2cSJim Jagielski void Test::testInterface() {
2088*b1cdbd2cSJim Jagielski     css::uno::Reference< Interface2a > i2(new Impl2);
2089*b1cdbd2cSJim Jagielski     css::uno::Any a(i2);
2090*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT(
2091*b1cdbd2cSJim Jagielski         a.getValueType()
2092*b1cdbd2cSJim Jagielski         == getCppuType< css::uno::Reference< Interface2a > >());
2093*b1cdbd2cSJim Jagielski     {
2094*b1cdbd2cSJim Jagielski         bool b = true;
2095*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
2096*b1cdbd2cSJim Jagielski     }
2097*b1cdbd2cSJim Jagielski     {
2098*b1cdbd2cSJim Jagielski         sal_Bool b = true;
2099*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
2100*b1cdbd2cSJim Jagielski     }
2101*b1cdbd2cSJim Jagielski     {
2102*b1cdbd2cSJim Jagielski         sal_Int8 b = 2;
2103*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
2104*b1cdbd2cSJim Jagielski     }
2105*b1cdbd2cSJim Jagielski     {
2106*b1cdbd2cSJim Jagielski         sal_uInt8 b = 2;
2107*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
2108*b1cdbd2cSJim Jagielski     }
2109*b1cdbd2cSJim Jagielski     {
2110*b1cdbd2cSJim Jagielski         sal_Int16 b = 2;
2111*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
2112*b1cdbd2cSJim Jagielski     }
2113*b1cdbd2cSJim Jagielski     {
2114*b1cdbd2cSJim Jagielski         sal_uInt16 b = 2;
2115*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
2116*b1cdbd2cSJim Jagielski     }
2117*b1cdbd2cSJim Jagielski     {
2118*b1cdbd2cSJim Jagielski         sal_Int32 b = 2;
2119*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
2120*b1cdbd2cSJim Jagielski     }
2121*b1cdbd2cSJim Jagielski     {
2122*b1cdbd2cSJim Jagielski         sal_uInt32 b = 2;
2123*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
2124*b1cdbd2cSJim Jagielski     }
2125*b1cdbd2cSJim Jagielski     {
2126*b1cdbd2cSJim Jagielski         sal_Int64 b = 2;
2127*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b) && b == 2);
2128*b1cdbd2cSJim Jagielski     }
2129*b1cdbd2cSJim Jagielski     {
2130*b1cdbd2cSJim Jagielski         sal_uInt64 b = 2;
2131*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b) && b == 2);
2132*b1cdbd2cSJim Jagielski     }
2133*b1cdbd2cSJim Jagielski     {
2134*b1cdbd2cSJim Jagielski         float b = 2;
2135*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
2136*b1cdbd2cSJim Jagielski     }
2137*b1cdbd2cSJim Jagielski     {
2138*b1cdbd2cSJim Jagielski         double b = 2;
2139*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b) && b == 2);
2140*b1cdbd2cSJim Jagielski     }
2141*b1cdbd2cSJim Jagielski     {
2142*b1cdbd2cSJim Jagielski         sal_Unicode b = '2';
2143*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
2144*b1cdbd2cSJim Jagielski     }
2145*b1cdbd2cSJim Jagielski     {
2146*b1cdbd2cSJim Jagielski         rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
2147*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
2148*b1cdbd2cSJim Jagielski             "rtl::OUString",
2149*b1cdbd2cSJim Jagielski             !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
2150*b1cdbd2cSJim Jagielski     }
2151*b1cdbd2cSJim Jagielski     {
2152*b1cdbd2cSJim Jagielski         css::uno::Type b(getCppuType< rtl::OUString >());
2153*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
2154*b1cdbd2cSJim Jagielski             "css::uno::Type",
2155*b1cdbd2cSJim Jagielski             !(a >>= b) && b == getCppuType< rtl::OUString >());
2156*b1cdbd2cSJim Jagielski     }
2157*b1cdbd2cSJim Jagielski     {
2158*b1cdbd2cSJim Jagielski         css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
2159*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
2160*b1cdbd2cSJim Jagielski     }
2161*b1cdbd2cSJim Jagielski     {
2162*b1cdbd2cSJim Jagielski         css::uno::Sequence< rtl::OUString > b(2);
2163*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
2164*b1cdbd2cSJim Jagielski             "css::uno::Sequence<rtl::OUString>",
2165*b1cdbd2cSJim Jagielski             !(a >>= b) && b.getLength() == 2);
2166*b1cdbd2cSJim Jagielski     }
2167*b1cdbd2cSJim Jagielski     {
2168*b1cdbd2cSJim Jagielski         Enum1 b = Enum1_M2;
2169*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
2170*b1cdbd2cSJim Jagielski     }
2171*b1cdbd2cSJim Jagielski     {
2172*b1cdbd2cSJim Jagielski         Struct1 b(2);
2173*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
2174*b1cdbd2cSJim Jagielski     }
2175*b1cdbd2cSJim Jagielski     {
2176*b1cdbd2cSJim Jagielski         Exception1 b(
2177*b1cdbd2cSJim Jagielski             rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
2178*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
2179*b1cdbd2cSJim Jagielski     }
2180*b1cdbd2cSJim Jagielski     {
2181*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface1 > i(new Impl1);
2182*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface1 > b(i);
2183*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b) && b == i);
2184*b1cdbd2cSJim Jagielski     }
2185*b1cdbd2cSJim Jagielski     {
2186*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface2 > b(new Impl2);
2187*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Interface2", (a >>= b) && b == i2);
2188*b1cdbd2cSJim Jagielski     }
2189*b1cdbd2cSJim Jagielski     {
2190*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface2a > b(new Impl2);
2191*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Interface2a", (a >>= b) && b == i2);
2192*b1cdbd2cSJim Jagielski     }
2193*b1cdbd2cSJim Jagielski     {
2194*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface2b > i(new Impl2b);
2195*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface2b > b(i);
2196*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Interface2b", !(a >>= b) && b == i);
2197*b1cdbd2cSJim Jagielski     }
2198*b1cdbd2cSJim Jagielski     {
2199*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface3 > b(new Impl2);
2200*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Interface3", (a >>= b) && b == i2);
2201*b1cdbd2cSJim Jagielski     }
2202*b1cdbd2cSJim Jagielski }
2203*b1cdbd2cSJim Jagielski 
testNull()2204*b1cdbd2cSJim Jagielski void Test::testNull() {
2205*b1cdbd2cSJim Jagielski     css::uno::Any a = css::uno::Any(css::uno::Reference< Interface2a >());
2206*b1cdbd2cSJim Jagielski     CPPUNIT_ASSERT(
2207*b1cdbd2cSJim Jagielski         a.getValueType()
2208*b1cdbd2cSJim Jagielski         == getCppuType< css::uno::Reference< Interface2a > >());
2209*b1cdbd2cSJim Jagielski     {
2210*b1cdbd2cSJim Jagielski         bool b = true;
2211*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b) && b);
2212*b1cdbd2cSJim Jagielski     }
2213*b1cdbd2cSJim Jagielski     {
2214*b1cdbd2cSJim Jagielski         sal_Bool b = true;
2215*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b) && b);
2216*b1cdbd2cSJim Jagielski     }
2217*b1cdbd2cSJim Jagielski     {
2218*b1cdbd2cSJim Jagielski         sal_Int8 b = 2;
2219*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b) && b == 2);
2220*b1cdbd2cSJim Jagielski     }
2221*b1cdbd2cSJim Jagielski     {
2222*b1cdbd2cSJim Jagielski         sal_uInt8 b = 2;
2223*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt8", !(a >>= b) && b == 2);
2224*b1cdbd2cSJim Jagielski     }
2225*b1cdbd2cSJim Jagielski     {
2226*b1cdbd2cSJim Jagielski         sal_Int16 b = 2;
2227*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b) && b == 2);
2228*b1cdbd2cSJim Jagielski     }
2229*b1cdbd2cSJim Jagielski     {
2230*b1cdbd2cSJim Jagielski         sal_uInt16 b = 2;
2231*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b) && b == 2);
2232*b1cdbd2cSJim Jagielski     }
2233*b1cdbd2cSJim Jagielski     {
2234*b1cdbd2cSJim Jagielski         sal_Int32 b = 2;
2235*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b) && b == 2);
2236*b1cdbd2cSJim Jagielski     }
2237*b1cdbd2cSJim Jagielski     {
2238*b1cdbd2cSJim Jagielski         sal_uInt32 b = 2;
2239*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b) && b == 2);
2240*b1cdbd2cSJim Jagielski     }
2241*b1cdbd2cSJim Jagielski     {
2242*b1cdbd2cSJim Jagielski         sal_Int64 b = 2;
2243*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b) && b == 2);
2244*b1cdbd2cSJim Jagielski     }
2245*b1cdbd2cSJim Jagielski     {
2246*b1cdbd2cSJim Jagielski         sal_uInt64 b = 2;
2247*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b) && b == 2);
2248*b1cdbd2cSJim Jagielski     }
2249*b1cdbd2cSJim Jagielski     {
2250*b1cdbd2cSJim Jagielski         float b = 2;
2251*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b) && b == 2);
2252*b1cdbd2cSJim Jagielski     }
2253*b1cdbd2cSJim Jagielski     {
2254*b1cdbd2cSJim Jagielski         double b = 2;
2255*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b) && b == 2);
2256*b1cdbd2cSJim Jagielski     }
2257*b1cdbd2cSJim Jagielski     {
2258*b1cdbd2cSJim Jagielski         sal_Unicode b = '2';
2259*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b) && b == '2');
2260*b1cdbd2cSJim Jagielski     }
2261*b1cdbd2cSJim Jagielski     {
2262*b1cdbd2cSJim Jagielski         rtl::OUString b(RTL_CONSTASCII_USTRINGPARAM("2"));
2263*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
2264*b1cdbd2cSJim Jagielski             "rtl::OUString",
2265*b1cdbd2cSJim Jagielski             !(a >>= b) && b.equalsAsciiL(RTL_CONSTASCII_STRINGPARAM("2")));
2266*b1cdbd2cSJim Jagielski     }
2267*b1cdbd2cSJim Jagielski     {
2268*b1cdbd2cSJim Jagielski         css::uno::Type b(getCppuType< rtl::OUString >());
2269*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
2270*b1cdbd2cSJim Jagielski             "css::uno::Type",
2271*b1cdbd2cSJim Jagielski             !(a >>= b) && b == getCppuType< rtl::OUString >());
2272*b1cdbd2cSJim Jagielski     }
2273*b1cdbd2cSJim Jagielski     {
2274*b1cdbd2cSJim Jagielski         css::uno::Any b(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("2")));
2275*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("css::uno::Any", (a >>= b) && b == a);
2276*b1cdbd2cSJim Jagielski     }
2277*b1cdbd2cSJim Jagielski     {
2278*b1cdbd2cSJim Jagielski         css::uno::Sequence< rtl::OUString > b(2);
2279*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
2280*b1cdbd2cSJim Jagielski             "css::uno::Sequence<rtl::OUString>",
2281*b1cdbd2cSJim Jagielski             !(a >>= b) && b.getLength() == 2);
2282*b1cdbd2cSJim Jagielski     }
2283*b1cdbd2cSJim Jagielski     {
2284*b1cdbd2cSJim Jagielski         Enum1 b = Enum1_M2;
2285*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b) && b == Enum1_M2);
2286*b1cdbd2cSJim Jagielski     }
2287*b1cdbd2cSJim Jagielski     {
2288*b1cdbd2cSJim Jagielski         Struct1 b(2);
2289*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b) && b.member == 2);
2290*b1cdbd2cSJim Jagielski     }
2291*b1cdbd2cSJim Jagielski     {
2292*b1cdbd2cSJim Jagielski         Exception1 b(
2293*b1cdbd2cSJim Jagielski             rtl::OUString(), css::uno::Reference< css::uno::XInterface >(), 2);
2294*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b) && b.member == 2);
2295*b1cdbd2cSJim Jagielski     }
2296*b1cdbd2cSJim Jagielski     {
2297*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface1 > b(new Impl1);
2298*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
2299*b1cdbd2cSJim Jagielski             "Interface1", (a >>= b) && !b.is());
2300*b1cdbd2cSJim Jagielski     }
2301*b1cdbd2cSJim Jagielski     {
2302*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface2 > b(new Impl2);
2303*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
2304*b1cdbd2cSJim Jagielski             "Interface2", (a >>= b) && !b.is());
2305*b1cdbd2cSJim Jagielski     }
2306*b1cdbd2cSJim Jagielski     {
2307*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface2a > b(new Impl2);
2308*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE("Interface2a", (a >>= b) && !b.is());
2309*b1cdbd2cSJim Jagielski     }
2310*b1cdbd2cSJim Jagielski     {
2311*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface2b > b(new Impl2b);
2312*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
2313*b1cdbd2cSJim Jagielski             "Interface2b", (a >>= b) && !b.is());
2314*b1cdbd2cSJim Jagielski     }
2315*b1cdbd2cSJim Jagielski     {
2316*b1cdbd2cSJim Jagielski         css::uno::Reference< Interface3 > b(new Impl2);
2317*b1cdbd2cSJim Jagielski         CPPUNIT_ASSERT_MESSAGE(
2318*b1cdbd2cSJim Jagielski             "Interface3", (a >>= b) && !b.is());
2319*b1cdbd2cSJim Jagielski     }
2320*b1cdbd2cSJim Jagielski }
2321*b1cdbd2cSJim Jagielski 
2322*b1cdbd2cSJim Jagielski CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(Test, "alltests");
2323*b1cdbd2cSJim Jagielski 
2324*b1cdbd2cSJim Jagielski }
2325*b1cdbd2cSJim Jagielski 
2326*b1cdbd2cSJim Jagielski NOADDITIONAL;
2327