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