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