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