/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * This file incorporates work covered by the following license notice: * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed * with this work for additional information regarding copyright * ownership. The ASF licenses this file to you under the Apache * License, Version 2.0 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace { class Base { public: Base(): m_count(0) {} Base(const Base&) = delete; const Base& operator=(const Base&) = delete; void acquire() { if (osl_atomic_increment(&m_count) == SAL_MAX_INT32) { abort(); } } void release() { if (osl_atomic_decrement(&m_count) == 0) { delete this; } } protected: virtual ~Base() {} private: oslInterlockedCount m_count; }; class Impl1: public Interface1, private Base { public: virtual css::uno::Any SAL_CALL queryInterface(css::uno::Type const & type) override { if (type == cppu::UnoType::get()) { css::uno::Reference< css::uno::XInterface > ref( static_cast< css::uno::XInterface * >(this)); return css::uno::Any(&ref, type); } if (type == cppu::UnoType::get()) { css::uno::Reference< Interface1 > ref(this); return css::uno::Any(&ref, type); } return css::uno::Any(); } virtual void SAL_CALL acquire() noexcept override { Base::acquire(); } virtual void SAL_CALL release() noexcept override { Base::release(); } }; class Impl2: public Interface2a, public Interface3, private Base { public: virtual css::uno::Any SAL_CALL queryInterface(css::uno::Type const & type) override { if (type == cppu::UnoType::get()) { css::uno::Reference< css::uno::XInterface > ref( static_cast< css::uno::XInterface * >( static_cast< Interface2a * >(this))); return css::uno::Any(&ref, type); } if (type == cppu::UnoType::get()) { css::uno::Reference< Interface2 > ref(this); return css::uno::Any(&ref, type); } if (type == cppu::UnoType::get()) { css::uno::Reference< Interface2a > ref(this); return css::uno::Any(&ref, type); } if (type == cppu::UnoType::get()) { css::uno::Reference< Interface3 > ref(this); return css::uno::Any(&ref, type); } return css::uno::Any(); } virtual void SAL_CALL acquire() noexcept override { Base::acquire(); } virtual void SAL_CALL release() noexcept override { Base::release(); } }; class Impl2b: public Interface2b, private Base { public: virtual css::uno::Any SAL_CALL queryInterface(css::uno::Type const & type) override { if (type == cppu::UnoType::get()) { css::uno::Reference< css::uno::XInterface > ref( static_cast< css::uno::XInterface * >( static_cast< Interface2a * >(this))); return css::uno::Any(&ref, type); } if (type == cppu::UnoType::get()) { css::uno::Reference< Interface2 > ref(this); return css::uno::Any(&ref, type); } if (type == cppu::UnoType::get()) { css::uno::Reference< Interface2a > ref(this); return css::uno::Any(&ref, type); } if (type == cppu::UnoType::get()) { css::uno::Reference< Interface2b > ref(this); return css::uno::Any(&ref, type); } return css::uno::Any(); } virtual void SAL_CALL acquire() noexcept override { Base::acquire(); } virtual void SAL_CALL release() noexcept override { Base::release(); } }; class Test: public CppUnit::TestFixture { public: void testVoid(); void testBoolean(); void testByte(); void testShort(); void testUnsignedShort(); void testLong(); void testUnsignedLong(); void testHyper(); void testUnsignedHyper(); void testFloat(); void testDouble(); void testChar(); void testString(); void testType(); void testSequence(); void testEnum(); void testStruct(); void testPoly(); void testException(); void testInterface(); void testNull(); CPPUNIT_TEST_SUITE(Test); CPPUNIT_TEST(testVoid); CPPUNIT_TEST(testBoolean); CPPUNIT_TEST(testByte); CPPUNIT_TEST(testShort); CPPUNIT_TEST(testUnsignedShort); CPPUNIT_TEST(testLong); CPPUNIT_TEST(testUnsignedLong); CPPUNIT_TEST(testHyper); CPPUNIT_TEST(testUnsignedHyper); CPPUNIT_TEST(testFloat); CPPUNIT_TEST(testDouble); CPPUNIT_TEST(testChar); CPPUNIT_TEST(testString); CPPUNIT_TEST(testType); CPPUNIT_TEST(testSequence); CPPUNIT_TEST(testEnum); CPPUNIT_TEST(testStruct); CPPUNIT_TEST(testPoly); CPPUNIT_TEST(testException); CPPUNIT_TEST(testInterface); CPPUNIT_TEST(testNull); CPPUNIT_TEST_SUITE_END(); }; void Test::testVoid() { css::uno::Any a; CPPUNIT_ASSERT(bool(a.getValueType() == cppu::UnoType::get())); { bool b = true; CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b)); CPPUNIT_ASSERT_MESSAGE("bool", b); } { // [-loplugin:fakebool] false positive: sal_Bool b = true; CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b)); CPPUNIT_ASSERT_MESSAGE("sal_Bool", b); } { sal_Int8 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int8", sal_Int8(2), b); } { sal_Int16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int16", sal_Int16(2), b); } { sal_uInt16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt16", sal_uInt16(2), b); } { sal_Int32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int32", sal_Int32(2), b); } { sal_uInt32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt32", sal_uInt32(2), b); } { sal_Int64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int64", sal_Int64(2), b); } { sal_uInt64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt64", sal_uInt64(2), b); } { float b = 2; CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("float", 2.0f, b); } { double b = 2; CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("double", 2.0, b); } { sal_Unicode b = '2'; CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Unicode", u'2', b); } { OUString b(u"2"_ustr); CPPUNIT_ASSERT_MESSAGE( "OUString", !(a >>= b) ); CPPUNIT_ASSERT_EQUAL_MESSAGE( "OUString", u"2"_ustr, b ); } { css::uno::Type b(cppu::UnoType::get()); CPPUNIT_ASSERT_MESSAGE( "css::uno::Type", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Type", cppu::UnoType::get(), b); } { css::uno::Sequence< OUString > b(2); CPPUNIT_ASSERT_MESSAGE( "css::uno::Sequence", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Sequence", sal_Int32(2), b.getLength()); } { Enum1 b = Enum1_M2; CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Enum1", Enum1_M2, b); } { Struct1 b(2); CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Struct1", sal_Int32(2), b.member); } { Exception1 b( OUString(), css::uno::Reference< css::uno::XInterface >(), 2); CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Exception1", sal_Int32(2), b.member); } { css::uno::Reference< Interface1 > i(new Impl1); css::uno::Reference< Interface1 > b(i); CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Interface1", i, b); } } void Test::testBoolean() { css::uno::Any a(false); CPPUNIT_ASSERT(bool(a.getValueType() == cppu::UnoType::get())); { bool b = true; CPPUNIT_ASSERT_MESSAGE("bool", (a >>= b)); CPPUNIT_ASSERT_MESSAGE("bool", !b); } { // [-loplugin:fakebool] false positive: sal_Bool b = true; CPPUNIT_ASSERT_MESSAGE("sal_Bool", (a >>= b)); CPPUNIT_ASSERT_MESSAGE("sal_Bool", !b); } { sal_Int8 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int8", sal_Int8(2), b); } { sal_Int16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int16", sal_Int16(2), b); } { sal_uInt16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt16", sal_uInt16(2), b); } { sal_Int32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int32", sal_Int32(2), b); } { sal_uInt32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt32", sal_uInt32(2), b); } { sal_Int64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int64", sal_Int64(2), b); } { sal_uInt64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt64", sal_uInt64(2), b); } { float b = 2; CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("float", 2.0f, b); } { double b = 2; CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("double", 2.0, b); } { sal_Unicode b = '2'; CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Unicode", u'2', b); } { OUString b(u"2"_ustr); CPPUNIT_ASSERT_MESSAGE( "OUString", !(a >>= b) ); CPPUNIT_ASSERT_EQUAL_MESSAGE( "OUString", u"2"_ustr, b ); } { css::uno::Type b(cppu::UnoType::get()); CPPUNIT_ASSERT_MESSAGE( "css::uno::Type", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Type", cppu::UnoType::get(), b); } { css::uno::Sequence< OUString > b(2); CPPUNIT_ASSERT_MESSAGE( "css::uno::Sequence", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Sequence", sal_Int32(2), b.getLength()); } { Enum1 b = Enum1_M2; CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Enum1", Enum1_M2, b); } { Struct1 b(2); CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Struct1", sal_Int32(2), b.member); } { Exception1 b( OUString(), css::uno::Reference< css::uno::XInterface >(), 2); CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Exception1", sal_Int32(2), b.member); } { css::uno::Reference< Interface1 > i(new Impl1); css::uno::Reference< Interface1 > b(i); CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Interface1", i, b); } } void Test::testByte() { css::uno::Any a(static_cast< sal_Int8 >(1)); CPPUNIT_ASSERT(bool(a.getValueType() == cppu::UnoType::get())); { bool b = true; CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b)); CPPUNIT_ASSERT_MESSAGE("bool", b); } { // [-loplugin:fakebool] false positive: sal_Bool b = true; CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b)); CPPUNIT_ASSERT_MESSAGE("sal_Bool", b); } { sal_Int8 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int8", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int8", sal_Int8(1), b); } { sal_Int16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int16", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int16", sal_Int16(1), b); } { sal_uInt16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt16", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt16", sal_uInt16(1), b); } { sal_Int32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int32", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int32", sal_Int32(1), b); } { sal_uInt32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt32", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt32", sal_uInt32(1), b); } { sal_Int64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int64", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int64", sal_Int64(1), b); } { sal_uInt64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt64", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt64", sal_uInt64(1), b); } { float b = 2; CPPUNIT_ASSERT_MESSAGE("float", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("float", float(1), b); } { double b = 2; CPPUNIT_ASSERT_MESSAGE("double", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("double", 1.0, b); } { sal_Unicode b = '2'; CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Unicode", u'2', b); } { OUString b(u"2"_ustr); CPPUNIT_ASSERT_MESSAGE( "OUString", !(a >>= b) ); CPPUNIT_ASSERT_EQUAL_MESSAGE( "OUString", u"2"_ustr, b ); } { css::uno::Type b(cppu::UnoType::get()); CPPUNIT_ASSERT_MESSAGE( "css::uno::Type", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Type", cppu::UnoType::get(), b); } { css::uno::Sequence< OUString > b(2); CPPUNIT_ASSERT_MESSAGE( "css::uno::Sequence", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Sequence", sal_Int32(2), b.getLength()); } { Enum1 b = Enum1_M2; CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Enum1", Enum1_M2, b); } { Struct1 b(2); CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Struct1", sal_Int32(2), b.member); } { Exception1 b( OUString(), css::uno::Reference< css::uno::XInterface >(), 2); CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Exception1", sal_Int32(2), b.member); } { css::uno::Reference< Interface1 > i(new Impl1); css::uno::Reference< Interface1 > b(i); CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Interface1", i, b); } } void Test::testShort() { css::uno::Any a(static_cast< sal_Int16 >(1)); CPPUNIT_ASSERT(bool(a.getValueType() == cppu::UnoType::get())); { bool b = true; CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b)); CPPUNIT_ASSERT_MESSAGE("bool", b); } { // [-loplugin:fakebool] false positive: sal_Bool b = true; CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b)); CPPUNIT_ASSERT_MESSAGE("sal_Bool", b); } { sal_Int8 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int8", sal_Int8(2), b); } { sal_Int16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int16", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int16", sal_Int16(1), b); } { sal_uInt16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt16", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt16", sal_uInt16(1), b); } { sal_Int32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int32", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int32", sal_Int32(1), b); } { sal_uInt32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt32", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt32", sal_uInt32(1), b); } { sal_Int64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int64", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int64", sal_Int64(1), b); } { sal_uInt64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt64", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt64", sal_uInt64(1), b); } { float b = 2; CPPUNIT_ASSERT_MESSAGE("float", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("float", float(1), b); } { double b = 2; CPPUNIT_ASSERT_MESSAGE("double", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("double", 1.0, b); } { sal_Unicode b = '2'; CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Unicode", u'2', b); } { OUString b(u"2"_ustr); CPPUNIT_ASSERT_MESSAGE( "OUString", !(a >>= b) ); CPPUNIT_ASSERT_EQUAL_MESSAGE( "OUString", u"2"_ustr, b ); } { css::uno::Type b(cppu::UnoType::get()); CPPUNIT_ASSERT_MESSAGE( "css::uno::Type", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Type", cppu::UnoType::get(), b); } { css::uno::Sequence< OUString > b(2); CPPUNIT_ASSERT_MESSAGE( "css::uno::Sequence", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Sequence", sal_Int32(2), b.getLength()); } { Enum1 b = Enum1_M2; CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Enum1", Enum1_M2, b); } { Struct1 b(2); CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Struct1", sal_Int32(2), b.member); } { Exception1 b( OUString(), css::uno::Reference< css::uno::XInterface >(), 2); CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Exception1", sal_Int32(2), b.member); } { css::uno::Reference< Interface1 > i(new Impl1); css::uno::Reference< Interface1 > b(i); CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Interface1", i, b); } } void Test::testUnsignedShort() { sal_uInt16 n = 1; css::uno::Any a(&n, cppu::UnoType::get()); CPPUNIT_ASSERT( bool(a.getValueType() == cppu::UnoType::get())); { bool b = true; CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b)); CPPUNIT_ASSERT_MESSAGE("bool", b); } { // [-loplugin:fakebool] false positive: sal_Bool b = true; CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b)); CPPUNIT_ASSERT_MESSAGE("sal_Bool", b); } { sal_Int8 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int8", sal_Int8(2), b); } { sal_Int16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int16", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int16", sal_Int16(1), b); } { sal_uInt16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt16", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt16", sal_uInt16(1), b); } { sal_Int32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int32", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int32", sal_Int32(1), b); } { sal_uInt32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt32", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt32", sal_uInt32(1), b); } { sal_Int64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int64", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int64", sal_Int64(1), b); } { sal_uInt64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt64", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt64", sal_uInt64(1), b); } { float b = 2; CPPUNIT_ASSERT_MESSAGE("float", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("float", float(1), b); } { double b = 2; CPPUNIT_ASSERT_MESSAGE("double", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("double", 1.0, b); } { sal_Unicode b = '2'; CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Unicode", u'2', b); } { OUString b(u"2"_ustr); CPPUNIT_ASSERT_MESSAGE( "OUString", !(a >>= b) ); CPPUNIT_ASSERT_EQUAL_MESSAGE( "OUString", u"2"_ustr, b ); } { css::uno::Type b(cppu::UnoType::get()); CPPUNIT_ASSERT_MESSAGE( "css::uno::Type", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Type", cppu::UnoType::get(), b); } { css::uno::Sequence< OUString > b(2); CPPUNIT_ASSERT_MESSAGE( "css::uno::Sequence", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Sequence", sal_Int32(2), b.getLength()); } { Enum1 b = Enum1_M2; CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Enum1", Enum1_M2, b); } { Struct1 b(2); CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Struct1", sal_Int32(2), b.member); } { Exception1 b( OUString(), css::uno::Reference< css::uno::XInterface >(), 2); CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Exception1", sal_Int32(2), b.member); } { css::uno::Reference< Interface1 > i(new Impl1); css::uno::Reference< Interface1 > b(i); CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Interface1", i, b); } } void Test::testLong() { css::uno::Any a(static_cast< sal_Int32 >(1)); CPPUNIT_ASSERT(bool(a.getValueType() == cppu::UnoType::get())); { bool b = true; CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b)); CPPUNIT_ASSERT_MESSAGE("bool", b); } { // [-loplugin:fakebool] false positive: sal_Bool b = true; CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b)); CPPUNIT_ASSERT_MESSAGE("sal_Bool", b); } { sal_Int8 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int8", sal_Int8(2), b); } { sal_Int16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int16", sal_Int16(2), b); } { sal_uInt16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt16", sal_uInt16(2), b); } { sal_Int32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int32", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int32", sal_Int32(1), b); } { sal_uInt32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt32", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt32", sal_uInt32(1), b); } { sal_Int64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int64", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int64", sal_Int64(1), b); } { sal_uInt64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt64", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt64", sal_uInt64(1), b); } { float b = 2; CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("float", float(2), b); } { double b = 2; CPPUNIT_ASSERT_MESSAGE("double", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("double", 1.0, b); } { sal_Unicode b = '2'; CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Unicode", u'2', b); } { OUString b(u"2"_ustr); CPPUNIT_ASSERT_MESSAGE( "OUString", !(a >>= b) ); CPPUNIT_ASSERT_EQUAL_MESSAGE( "OUString", u"2"_ustr, b ); } { css::uno::Type b(cppu::UnoType::get()); CPPUNIT_ASSERT_MESSAGE( "css::uno::Type", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Type", cppu::UnoType::get(), b); } { css::uno::Sequence< OUString > b(2); CPPUNIT_ASSERT_MESSAGE( "css::uno::Sequence", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Sequence", sal_Int32(2), b.getLength()); } { Enum1 b = Enum1_M2; CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Enum1", Enum1_M2, b); } { Struct1 b(2); CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Struct1", sal_Int32(2), b.member); } { Exception1 b( OUString(), css::uno::Reference< css::uno::XInterface >(), 2); CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Exception1", sal_Int32(2), b.member); } { css::uno::Reference< Interface1 > i(new Impl1); css::uno::Reference< Interface1 > b(i); CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Interface1", i, b); } } void Test::testUnsignedLong() { css::uno::Any a(static_cast< sal_uInt32 >(1)); CPPUNIT_ASSERT(bool(a.getValueType() == cppu::UnoType::get())); { bool b = true; CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b)); CPPUNIT_ASSERT_MESSAGE("bool", b); } { // [-loplugin:fakebool] false positive: sal_Bool b = true; CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b)); CPPUNIT_ASSERT_MESSAGE("sal_Bool", b); } { sal_Int8 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int8", sal_Int8(2), b); } { sal_Int16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int16", sal_Int16(2), b); } { sal_uInt16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt16", sal_uInt16(2), b); } { sal_Int32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int32", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int32", sal_Int32(1), b); } { sal_uInt32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt32", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt32", sal_uInt32(1), b); } { sal_Int64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int64", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int64", sal_Int64(1), b); } { sal_uInt64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt64", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt64", sal_uInt64(1), b); } { float b = 2; CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("float", float(2), b); } { double b = 2; CPPUNIT_ASSERT_MESSAGE("double", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("double", 1.0, b); } { sal_Unicode b = '2'; CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Unicode", u'2', b); } { OUString b(u"2"_ustr); CPPUNIT_ASSERT_MESSAGE( "OUString", !(a >>= b) ); CPPUNIT_ASSERT_EQUAL_MESSAGE( "OUString", u"2"_ustr, b ); } { css::uno::Type b(cppu::UnoType::get()); CPPUNIT_ASSERT_MESSAGE( "css::uno::Type", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Type", cppu::UnoType::get(), b); } { css::uno::Sequence< OUString > b(2); CPPUNIT_ASSERT_MESSAGE( "css::uno::Sequence", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Sequence", sal_Int32(2), b.getLength()); } { Enum1 b = Enum1_M2; CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Enum1", Enum1_M2, b); } { Struct1 b(2); CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Struct1", sal_Int32(2), b.member); } { Exception1 b( OUString(), css::uno::Reference< css::uno::XInterface >(), 2); CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Exception1", sal_Int32(2), b.member); } { css::uno::Reference< Interface1 > i(new Impl1); css::uno::Reference< Interface1 > b(i); CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Interface1", i, b); } } void Test::testHyper() { css::uno::Any a(static_cast< sal_Int64 >(1)); CPPUNIT_ASSERT(bool(a.getValueType() == cppu::UnoType::get())); { bool b = true; CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b)); CPPUNIT_ASSERT_MESSAGE("bool", b); } { // [-loplugin:fakebool] false positive: sal_Bool b = true; CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b)); CPPUNIT_ASSERT_MESSAGE("sal_Bool", b); } { sal_Int8 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int8", sal_Int8(2), b); } { sal_Int16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int16", sal_Int16(2), b); } { sal_uInt16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt16", sal_uInt16(2), b); } { sal_Int32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int32", sal_Int32(2), b); } { sal_uInt32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt32", sal_uInt32(2), b); } { sal_Int64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int64", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int64", sal_Int64(1), b); } { sal_uInt64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt64", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt64", sal_uInt64(1), b); } { float b = 2; CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("float", float(2), b); } { double b = 2; CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("double", 2.0, b); } { sal_Unicode b = '2'; CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Unicode", u'2', b); } { OUString b(u"2"_ustr); CPPUNIT_ASSERT_MESSAGE( "OUString", !(a >>= b) ); CPPUNIT_ASSERT_EQUAL_MESSAGE( "OUString", u"2"_ustr, b ); } { css::uno::Type b(cppu::UnoType::get()); CPPUNIT_ASSERT_MESSAGE( "css::uno::Type", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Type", cppu::UnoType::get(), b); } { css::uno::Sequence< OUString > b(2); CPPUNIT_ASSERT_MESSAGE( "css::uno::Sequence", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Sequence", sal_Int32(2), b.getLength()); } { Enum1 b = Enum1_M2; CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Enum1", Enum1_M2, b); } { Struct1 b(2); CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Struct1", sal_Int32(2), b.member); } { Exception1 b( OUString(), css::uno::Reference< css::uno::XInterface >(), 2); CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Exception1", sal_Int32(2), b.member); } { css::uno::Reference< Interface1 > i(new Impl1); css::uno::Reference< Interface1 > b(i); CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Interface1", i, b); } } void Test::testUnsignedHyper() { css::uno::Any a(static_cast< sal_uInt64 >(1)); CPPUNIT_ASSERT(bool(a.getValueType() == cppu::UnoType::get())); { bool b = true; CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b)); CPPUNIT_ASSERT_MESSAGE("bool", b); } { // [-loplugin:fakebool] false positive: sal_Bool b = true; CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b)); CPPUNIT_ASSERT_MESSAGE("sal_Bool", b); } { sal_Int8 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int8", sal_Int8(2), b); } { sal_Int16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int16", sal_Int16(2), b); } { sal_uInt16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt16", sal_uInt16(2), b); } { sal_Int32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int32", sal_Int32(2), b); } { sal_uInt32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt32", sal_uInt32(2), b); } { sal_Int64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int64", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int64", sal_Int64(1), b); } { sal_uInt64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt64", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt64", sal_uInt64(1), b); } { float b = 2; CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("float", float(2), b); } { double b = 2; CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("double", 2.0, b); } { sal_Unicode b = '2'; CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Unicode", u'2', b); } { OUString b(u"2"_ustr); CPPUNIT_ASSERT_MESSAGE( "OUString", !(a >>= b) ); CPPUNIT_ASSERT_EQUAL_MESSAGE( "OUString", u"2"_ustr, b ); } { css::uno::Type b(cppu::UnoType::get()); CPPUNIT_ASSERT_MESSAGE( "css::uno::Type", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Type", cppu::UnoType::get(), b); } { css::uno::Sequence< OUString > b(2); CPPUNIT_ASSERT_MESSAGE( "css::uno::Sequence", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Sequence", sal_Int32(2), b.getLength()); } { Enum1 b = Enum1_M2; CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Enum1", Enum1_M2, b); } { Struct1 b(2); CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Struct1", sal_Int32(2), b.member); } { Exception1 b( OUString(), css::uno::Reference< css::uno::XInterface >(), 2); CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Exception1", sal_Int32(2), b.member); } { css::uno::Reference< Interface1 > i(new Impl1); css::uno::Reference< Interface1 > b(i); CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Interface1", i, b); } } void Test::testFloat() { css::uno::Any a(1.f); CPPUNIT_ASSERT(bool(a.getValueType() == cppu::UnoType::get())); { bool b = true; CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b)); CPPUNIT_ASSERT_MESSAGE("bool", b); } { // [-loplugin:fakebool] false positive: sal_Bool b = true; CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b)); CPPUNIT_ASSERT_MESSAGE("sal_Bool", b); } { sal_Int8 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int8", sal_Int8(2), b); } { sal_Int16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int16", sal_Int16(2), b); } { sal_uInt16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt16", sal_uInt16(2), b); } { sal_Int32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int32", sal_Int32(2), b); } { sal_uInt32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt32", sal_uInt32(2), b); } { sal_Int64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int64", sal_Int64(2), b); } { sal_uInt64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt64", sal_uInt64(2), b); } { float b = 2; CPPUNIT_ASSERT_MESSAGE("float", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("float", float(1), b); } { double b = 2; CPPUNIT_ASSERT_MESSAGE("double", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("double", 1.0, b); } { sal_Unicode b = '2'; CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Unicode", u'2', b); } { OUString b(u"2"_ustr); CPPUNIT_ASSERT_MESSAGE( "OUString", !(a >>= b) ); CPPUNIT_ASSERT_EQUAL_MESSAGE( "OUString", u"2"_ustr, b ); } { css::uno::Type b(cppu::UnoType::get()); CPPUNIT_ASSERT_MESSAGE( "css::uno::Type", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Type", cppu::UnoType::get(), b); } { css::uno::Sequence< OUString > b(2); CPPUNIT_ASSERT_MESSAGE( "css::uno::Sequence", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Sequence", sal_Int32(2), b.getLength()); } { Enum1 b = Enum1_M2; CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Enum1", Enum1_M2, b); } { Struct1 b(2); CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Struct1", sal_Int32(2), b.member); } { Exception1 b( OUString(), css::uno::Reference< css::uno::XInterface >(), 2); CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Exception1", sal_Int32(2), b.member); } { css::uno::Reference< Interface1 > i(new Impl1); css::uno::Reference< Interface1 > b(i); CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Interface1", i, b); } } void Test::testDouble() { css::uno::Any a(1.); CPPUNIT_ASSERT(bool(a.getValueType() == cppu::UnoType::get())); { bool b = true; CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b)); CPPUNIT_ASSERT_MESSAGE("bool", b); } { // [-loplugin:fakebool] false positive: sal_Bool b = true; CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b)); CPPUNIT_ASSERT_MESSAGE("sal_Bool", b); } { sal_Int8 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int8", sal_Int8(2), b); } { sal_Int16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int16", sal_Int16(2), b); } { sal_uInt16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt16", sal_uInt16(2), b); } { sal_Int32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int32", sal_Int32(2), b); } { sal_uInt32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt32", sal_uInt32(2), b); } { sal_Int64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int64", sal_Int64(2), b); } { sal_uInt64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt64", sal_uInt64(2), b); } { float b = 2; CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("float", float(2), b); } { double b = 2; CPPUNIT_ASSERT_MESSAGE("double", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("double", 1.0, b); } { sal_Unicode b = '2'; CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Unicode", u'2', b); } { OUString b(u"2"_ustr); CPPUNIT_ASSERT_MESSAGE( "OUString", !(a >>= b) ); CPPUNIT_ASSERT_EQUAL_MESSAGE( "OUString", u"2"_ustr, b ); } { css::uno::Type b(cppu::UnoType::get()); CPPUNIT_ASSERT_MESSAGE( "css::uno::Type", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Type", cppu::UnoType::get(), b); } { css::uno::Sequence< OUString > b(2); CPPUNIT_ASSERT_MESSAGE( "css::uno::Sequence", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Sequence", sal_Int32(2), b.getLength()); } { Enum1 b = Enum1_M2; CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Enum1", Enum1_M2, b); } { Struct1 b(2); CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Struct1", sal_Int32(2), b.member); } { Exception1 b( OUString(), css::uno::Reference< css::uno::XInterface >(), 2); CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Exception1", sal_Int32(2), b.member); } { css::uno::Reference< Interface1 > i(new Impl1); css::uno::Reference< Interface1 > b(i); CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Interface1", i, b); } } void Test::testChar() { sal_Unicode c = '1'; css::uno::Any a(&c, cppu::UnoType::get()); CPPUNIT_ASSERT(bool(a.getValueType() == cppu::UnoType::get())); { bool b = true; CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b)); CPPUNIT_ASSERT_MESSAGE("bool", b); } { // [-loplugin:fakebool] false positive: sal_Bool b = true; CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b)); CPPUNIT_ASSERT_MESSAGE("sal_Bool", b); } { sal_Int8 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int8", sal_Int8(2), b); } { sal_Int16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int16", sal_Int16(2), b); } { sal_uInt16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt16", sal_uInt16(2), b); } { sal_Int32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int32", sal_Int32(2), b); } { sal_uInt32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt32", sal_uInt32(2), b); } { sal_Int64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int64", sal_Int64(2), b); } { sal_uInt64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt64", sal_uInt64(2), b); } { float b = 2; CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("float", float(2), b); } { double b = 2; CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("double", 2.0, b); } { sal_Unicode b = '2'; CPPUNIT_ASSERT_MESSAGE("sal_Unicode", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Unicode", u'1', b); } { OUString b(u"2"_ustr); CPPUNIT_ASSERT_MESSAGE( "OUString", !(a >>= b) ); CPPUNIT_ASSERT_EQUAL_MESSAGE( "OUString", u"2"_ustr, b ); } { css::uno::Type b(cppu::UnoType::get()); CPPUNIT_ASSERT_MESSAGE( "css::uno::Type", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Type", cppu::UnoType::get(), b); } { css::uno::Sequence< OUString > b(2); CPPUNIT_ASSERT_MESSAGE( "css::uno::Sequence", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Sequence", sal_Int32(2), b.getLength()); } { Enum1 b = Enum1_M2; CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Enum1", Enum1_M2, b); } { Struct1 b(2); CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Struct1", sal_Int32(2), b.member); } { Exception1 b( OUString(), css::uno::Reference< css::uno::XInterface >(), 2); CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Exception1", sal_Int32(2), b.member); } { css::uno::Reference< Interface1 > i(new Impl1); css::uno::Reference< Interface1 > b(i); CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Interface1", i, b); } } void Test::testString() { css::uno::Any a(u"1"_ustr); CPPUNIT_ASSERT(bool(a.getValueType() == cppu::UnoType::get())); { bool b = true; CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b)); CPPUNIT_ASSERT_MESSAGE("bool", b); } { // [-loplugin:fakebool] false positive: sal_Bool b = true; CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b)); CPPUNIT_ASSERT_MESSAGE("sal_Bool", b); } { sal_Int8 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int8", sal_Int8(2), b); } { sal_Int16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int16", sal_Int16(2), b); } { sal_uInt16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt16", sal_uInt16(2), b); } { sal_Int32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int32", sal_Int32(2), b); } { sal_uInt32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt32", sal_uInt32(2), b); } { sal_Int64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int64", sal_Int64(2), b); } { sal_uInt64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt64", sal_uInt64(2), b); } { float b = 2; CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("float", float(2), b); } { double b = 2; CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("double", 2.0, b); } { sal_Unicode b = '2'; CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Unicode", u'2', b); } { OUString b(u"2"_ustr); CPPUNIT_ASSERT_MESSAGE( "OUString", (a >>= b) ); CPPUNIT_ASSERT_EQUAL_MESSAGE( "OUString", u"1"_ustr, b ); } { css::uno::Type b(cppu::UnoType::get()); CPPUNIT_ASSERT_MESSAGE( "css::uno::Type", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Type", cppu::UnoType::get(), b); } { css::uno::Sequence< OUString > b(2); CPPUNIT_ASSERT_MESSAGE( "css::uno::Sequence", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Sequence", sal_Int32(2), b.getLength()); } { Enum1 b = Enum1_M2; CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Enum1", Enum1_M2, b); } { Struct1 b(2); CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Struct1", sal_Int32(2), b.member); } { Exception1 b( OUString(), css::uno::Reference< css::uno::XInterface >(), 2); CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Exception1", sal_Int32(2), b.member); } { css::uno::Reference< Interface1 > i(new Impl1); css::uno::Reference< Interface1 > b(i); CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Interface1", i, b); } } void Test::testType() { css::uno::Any a(cppu::UnoType::get()); CPPUNIT_ASSERT(bool(a.getValueType() == cppu::UnoType::get())); { bool b = true; CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b)); CPPUNIT_ASSERT_MESSAGE("bool", b); } { // [-loplugin:fakebool] false positive: sal_Bool b = true; CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b)); CPPUNIT_ASSERT_MESSAGE("sal_Bool", b); } { sal_Int8 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int8", sal_Int8(2), b); } { sal_Int16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int16", sal_Int16(2), b); } { sal_uInt16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt16", sal_uInt16(2), b); } { sal_Int32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int32", sal_Int32(2), b); } { sal_uInt32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt32", sal_uInt32(2), b); } { sal_Int64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int64", sal_Int64(2), b); } { sal_uInt64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt64", sal_uInt64(2), b); } { float b = 2; CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("float", float(2), b); } { double b = 2; CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("double", 2.0, b); } { sal_Unicode b = '2'; CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Unicode", u'2', b); } { OUString b(u"2"_ustr); CPPUNIT_ASSERT_MESSAGE( "OUString", !(a >>= b) ); CPPUNIT_ASSERT_EQUAL_MESSAGE( "OUString", u"2"_ustr, b ); } { css::uno::Type b(cppu::UnoType::get()); CPPUNIT_ASSERT_MESSAGE( "css::uno::Type", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Type", cppu::UnoType::get(), b); } { css::uno::Sequence< OUString > b(2); CPPUNIT_ASSERT_MESSAGE( "css::uno::Sequence", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Sequence", sal_Int32(2), b.getLength()); } { Enum1 b = Enum1_M2; CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Enum1", Enum1_M2, b); } { Struct1 b(2); CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Struct1", sal_Int32(2), b.member); } { Exception1 b( OUString(), css::uno::Reference< css::uno::XInterface >(), 2); CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Exception1", sal_Int32(2), b.member); } { css::uno::Reference< Interface1 > i(new Impl1); css::uno::Reference< Interface1 > b(i); CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Interface1", i, b); } } void Test::testSequence() { sal_Int32 n = 1; css::uno::Any a(css::uno::Sequence< sal_Int32 >(&n, 1)); CPPUNIT_ASSERT( bool(a.getValueType() == cppu::UnoType>::get())); { bool b = true; CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b)); CPPUNIT_ASSERT_MESSAGE("bool", b); } { // [-loplugin:fakebool] false positive: sal_Bool b = true; CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b)); CPPUNIT_ASSERT_MESSAGE("sal_Bool", b); } { sal_Int8 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int8", sal_Int8(2), b); } { sal_Int16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int16", sal_Int16(2), b); } { sal_uInt16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt16", sal_uInt16(2), b); } { sal_Int32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int32", sal_Int32(2), b); } { sal_uInt32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt32", sal_uInt32(2), b); } { sal_Int64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int64", sal_Int64(2), b); } { sal_uInt64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt64", sal_uInt64(2), b); } { float b = 2; CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("float", float(2), b); } { double b = 2; CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("double", 2.0, b); } { sal_Unicode b = '2'; CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Unicode", u'2', b); } { OUString b(u"2"_ustr); CPPUNIT_ASSERT_MESSAGE( "OUString", !(a >>= b) ); CPPUNIT_ASSERT_EQUAL_MESSAGE( "OUString", u"2"_ustr, b ); } { css::uno::Type b(cppu::UnoType::get()); CPPUNIT_ASSERT_MESSAGE( "css::uno::Type", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Type", cppu::UnoType::get(), b); } { css::uno::Sequence< OUString > b(2); CPPUNIT_ASSERT_MESSAGE( "css::uno::Sequence", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Sequence", sal_Int32(2), b.getLength()); } { css::uno::Sequence< sal_Int32 > b(2); CPPUNIT_ASSERT_MESSAGE( "css::uno::Sequence", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Sequence", sal_Int32(1), b.getLength()); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Sequence", sal_Int32(1), b[0]); } { Enum1 b = Enum1_M2; CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Enum1", Enum1_M2, b); } { Struct1 b(2); CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Struct1", sal_Int32(2), b.member); } { Exception1 b( OUString(), css::uno::Reference< css::uno::XInterface >(), 2); CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Exception1", sal_Int32(2), b.member); } { css::uno::Reference< Interface1 > i(new Impl1); css::uno::Reference< Interface1 > b(i); CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Interface1", i, b); } { // The two default-constructed sequences both refer to the same static cppu::g_emptySeq css::uno::Sequence aEmptyIntSequence; css::uno::Sequence aEmptyStringSequence; a <<= aEmptyStringSequence; CPPUNIT_ASSERT(!(a >>= aEmptyIntSequence)); } } void Test::testEnum() { css::uno::Any a(Enum2_M1); CPPUNIT_ASSERT(bool(a.getValueType() == cppu::UnoType::get())); { bool b = true; CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b)); CPPUNIT_ASSERT_MESSAGE("bool", b); } { // [-loplugin:fakebool] false positive: sal_Bool b = true; CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b)); CPPUNIT_ASSERT_MESSAGE("sal_Bool", b); } { sal_Int8 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int8", sal_Int8(2), b); } { sal_Int16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int16", sal_Int16(2), b); } { sal_uInt16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt16", sal_uInt16(2), b); } { sal_Int32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int32", sal_Int32(2), b); } { sal_uInt32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt32", sal_uInt32(2), b); } { sal_Int64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int64", sal_Int64(2), b); } { sal_uInt64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt64", sal_uInt64(2), b); } { float b = 2; CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("float", float(2), b); } { double b = 2; CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("double", 2.0, b); } { sal_Unicode b = '2'; CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Unicode", u'2', b); } { OUString b(u"2"_ustr); CPPUNIT_ASSERT_MESSAGE( "OUString", !(a >>= b) ); CPPUNIT_ASSERT_EQUAL_MESSAGE( "OUString", u"2"_ustr, b ); } { css::uno::Type b(cppu::UnoType::get()); CPPUNIT_ASSERT_MESSAGE( "css::uno::Type", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Type", cppu::UnoType::get(), b); } { css::uno::Sequence< OUString > b(2); CPPUNIT_ASSERT_MESSAGE( "css::uno::Sequence", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Sequence", sal_Int32(2), b.getLength()); } { Enum1 b = Enum1_M2; CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Enum1", Enum1_M2, b); } { Enum2 b = Enum2_M2; CPPUNIT_ASSERT_MESSAGE("Enum2", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Enum2", Enum2_M1, b); } { Struct1 b(2); CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Struct1", sal_Int32(2), b.member); } { Exception1 b( OUString(), css::uno::Reference< css::uno::XInterface >(), 2); CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Exception1", sal_Int32(2), b.member); } { css::uno::Reference< Interface1 > i(new Impl1); css::uno::Reference< Interface1 > b(i); CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Interface1", i, b); } } void Test::testStruct() { css::uno::Any a(Struct2a(1, 3)); CPPUNIT_ASSERT(bool(a.getValueType() == cppu::UnoType::get())); { bool b = true; CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b)); CPPUNIT_ASSERT_MESSAGE("bool", b); } { // [-loplugin:fakebool] false positive: sal_Bool b = true; CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b)); CPPUNIT_ASSERT_MESSAGE("sal_Bool", b); } { sal_Int8 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int8", sal_Int8(2), b); } { sal_Int16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int16", sal_Int16(2), b); } { sal_uInt16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt16", sal_uInt16(2), b); } { sal_Int32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int32", sal_Int32(2), b); } { sal_uInt32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt32", sal_uInt32(2), b); } { sal_Int64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int64", sal_Int64(2), b); } { sal_uInt64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt64", sal_uInt64(2), b); } { float b = 2; CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("float", float(2), b); } { double b = 2; CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("double", 2.0, b); } { sal_Unicode b = '2'; CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Unicode", u'2', b); } { OUString b(u"2"_ustr); CPPUNIT_ASSERT_MESSAGE( "OUString", !(a >>= b) ); CPPUNIT_ASSERT_EQUAL_MESSAGE( "OUString", u"2"_ustr, b ); } { css::uno::Type b(cppu::UnoType::get()); CPPUNIT_ASSERT_MESSAGE( "css::uno::Type", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Type", cppu::UnoType::get(), b); } { css::uno::Sequence< OUString > b(2); CPPUNIT_ASSERT_MESSAGE( "css::uno::Sequence", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Sequence", sal_Int32(2), b.getLength()); } { Enum1 b = Enum1_M2; CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Enum1", Enum1_M2, b); } { Struct1 b(2); CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Struct1", sal_Int32(2), b.member); } { Struct2 b(2); CPPUNIT_ASSERT_MESSAGE("Struct2", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Struct2", sal_Int32(1), b.member); } { Struct2a b(2, 2); CPPUNIT_ASSERT_MESSAGE( "Struct2a", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "Struct2a", sal_Int32(1), b.member); CPPUNIT_ASSERT_EQUAL_MESSAGE( "Struct2a", sal_Int32(3), b.member2); } { Struct2b b(2, 2, 2); CPPUNIT_ASSERT_MESSAGE("Struct2b", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Struct2b", sal_Int32(2), b.member); } { Exception1 b( OUString(), css::uno::Reference< css::uno::XInterface >(), 2); CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Exception1", sal_Int32(2), b.member); } { css::uno::Reference< Interface1 > i(new Impl1); css::uno::Reference< Interface1 > b(i); CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Interface1", i, b); } } void Test::testPoly() { css::uno::Any a; a <<= Poly< css::uno::Sequence< ::sal_Unicode > >(); CPPUNIT_ASSERT_EQUAL_MESSAGE( "type name", u"Poly<[]char>"_ustr, a.getValueType().getTypeName() ); CPPUNIT_ASSERT_EQUAL_MESSAGE( "constructor", css::uno::Any(Poly< css::uno::Sequence< ::sal_Unicode > >()), a); } void Test::testException() { css::uno::Any a( Exception2a( OUString(), css::uno::Reference< css::uno::XInterface >(), 1, 3)); CPPUNIT_ASSERT(bool(a.getValueType() == cppu::UnoType::get())); { bool b = true; CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b)); CPPUNIT_ASSERT_MESSAGE("bool", b); } { // [-loplugin:fakebool] false positive: sal_Bool b = true; CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b)); CPPUNIT_ASSERT_MESSAGE("sal_Bool", b); } { sal_Int8 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int8", sal_Int8(2), b); } { sal_Int16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int16", sal_Int16(2), b); } { sal_uInt16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt16", sal_uInt16(2), b); } { sal_Int32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int32", sal_Int32(2), b); } { sal_uInt32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt32", sal_uInt32(2), b); } { sal_Int64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int64", sal_Int64(2), b); } { sal_uInt64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt64", sal_uInt64(2), b); } { float b = 2; CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("float", float(2), b); } { double b = 2; CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("double", 2.0, b); } { sal_Unicode b = '2'; CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Unicode", u'2', b); } { OUString b(u"2"_ustr); CPPUNIT_ASSERT_MESSAGE( "OUString", !(a >>= b) ); CPPUNIT_ASSERT_EQUAL_MESSAGE( "OUString", u"2"_ustr, b ); } { css::uno::Type b(cppu::UnoType::get()); CPPUNIT_ASSERT_MESSAGE( "css::uno::Type", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Type", cppu::UnoType::get(), b); } { css::uno::Sequence< OUString > b(2); CPPUNIT_ASSERT_MESSAGE( "css::uno::Sequence", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Sequence", sal_Int32(2), b.getLength()); } { Enum1 b = Enum1_M2; CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Enum1", Enum1_M2, b); } { Struct1 b(2); CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Struct1", sal_Int32(2), b.member); } { Exception1 b( OUString(), css::uno::Reference< css::uno::XInterface >(), 2); CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Exception1", sal_Int32(2), b.member); } { Exception2 b( OUString(), css::uno::Reference< css::uno::XInterface >(), 2); CPPUNIT_ASSERT_MESSAGE("Exception2", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Exception2", sal_Int32(1), b.member); } { Exception2a b( OUString(), css::uno::Reference< css::uno::XInterface >(), 2, 2); CPPUNIT_ASSERT_MESSAGE( "Exception2a", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "Exception2a", sal_Int32(1), b.member); CPPUNIT_ASSERT_EQUAL_MESSAGE( "Exception2a", sal_Int32(3), b.member2); } { Exception2b b( OUString(), css::uno::Reference< css::uno::XInterface >(), 2, 2); CPPUNIT_ASSERT_MESSAGE("Exception2b", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Exception2b", sal_Int32(2), b.member); } { css::uno::Reference< Interface1 > i(new Impl1); css::uno::Reference< Interface1 > b(i); CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Interface1", i, b); } } void Test::testInterface() { css::uno::Reference< Interface2a > i2(new Impl2); css::uno::Any a(i2); CPPUNIT_ASSERT(bool(a.getValueType() == cppu::UnoType::get())); { bool b = true; CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b)); CPPUNIT_ASSERT_MESSAGE("bool", b); } { // [-loplugin:fakebool] false positive: sal_Bool b = true; CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b)); CPPUNIT_ASSERT_MESSAGE("sal_Bool", b); } { sal_Int8 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int8", sal_Int8(2), b); } { sal_Int16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int16", sal_Int16(2), b); } { sal_uInt16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt16", sal_uInt16(2), b); } { sal_Int32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int32", sal_Int32(2), b); } { sal_uInt32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt32", sal_uInt32(2), b); } { sal_Int64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int64", sal_Int64(2), b); } { sal_uInt64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt64", sal_uInt64(2), b); } { float b = 2; CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("float", float(2), b); } { double b = 2; CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("double", 2.0, b); } { sal_Unicode b = '2'; CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Unicode", u'2', b); } { OUString b(u"2"_ustr); CPPUNIT_ASSERT_MESSAGE( "OUString", !(a >>= b) ); CPPUNIT_ASSERT_EQUAL_MESSAGE( "OUString", u"2"_ustr, b ); } { css::uno::Type b(cppu::UnoType::get()); CPPUNIT_ASSERT_MESSAGE( "css::uno::Type", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Type", cppu::UnoType::get(), b); } { css::uno::Sequence< OUString > b(2); CPPUNIT_ASSERT_MESSAGE( "css::uno::Sequence", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Sequence", sal_Int32(2), b.getLength()); } { Enum1 b = Enum1_M2; CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Enum1", Enum1_M2, b); } { Struct1 b(2); CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Struct1", sal_Int32(2), b.member); } { Exception1 b( OUString(), css::uno::Reference< css::uno::XInterface >(), 2); CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Exception1", sal_Int32(2), b.member); } { css::uno::Reference< Interface1 > i(new Impl1); css::uno::Reference< Interface1 > b(i); CPPUNIT_ASSERT_MESSAGE("Interface1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Interface1", i, b); } { css::uno::Reference< Interface2 > b(new Impl2); CPPUNIT_ASSERT_MESSAGE("Interface2", (a >>= b)); CPPUNIT_ASSERT_MESSAGE("Interface2", b.operator ==(i2)); } { css::uno::Reference< Interface2a > b(new Impl2); CPPUNIT_ASSERT_MESSAGE("Interface2a", (a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Interface2a", i2, b); } { css::uno::Reference< Interface2b > i(new Impl2b); css::uno::Reference< Interface2b > b(i); CPPUNIT_ASSERT_MESSAGE("Interface2b", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Interface2b", i, b); } { css::uno::Reference< Interface3 > b(new Impl2); CPPUNIT_ASSERT_MESSAGE("Interface3", (a >>= b)); CPPUNIT_ASSERT_MESSAGE("Interface3", b.operator ==(i2)); } } void Test::testNull() { css::uno::Any a { css::uno::Reference< Interface2a >() }; CPPUNIT_ASSERT(bool(a.getValueType() == cppu::UnoType::get())); { bool b = true; CPPUNIT_ASSERT_MESSAGE("bool", !(a >>= b)); CPPUNIT_ASSERT_MESSAGE("bool", b); } { // [-loplugin:fakebool] false positive: sal_Bool b = true; CPPUNIT_ASSERT_MESSAGE("sal_Bool", !(a >>= b)); CPPUNIT_ASSERT_MESSAGE("sal_Bool", b); } { sal_Int8 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int8", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int8", sal_Int8(2), b); } { sal_Int16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int16", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int16", sal_Int16(2), b); } { sal_uInt16 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt16", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt16", sal_uInt16(2), b); } { sal_Int32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int32", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int32", sal_Int32(2), b); } { sal_uInt32 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt32", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt32", sal_uInt32(2), b); } { sal_Int64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_Int64", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Int64", sal_Int64(2), b); } { sal_uInt64 b = 2; CPPUNIT_ASSERT_MESSAGE("sal_uInt64", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_uInt64", sal_uInt64(2), b); } { float b = 2; CPPUNIT_ASSERT_MESSAGE("float", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("float", float(2), b); } { double b = 2; CPPUNIT_ASSERT_MESSAGE("double", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("double", 2.0, b); } { sal_Unicode b = '2'; CPPUNIT_ASSERT_MESSAGE("sal_Unicode", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("sal_Unicode", u'2', b); } { OUString b(u"2"_ustr); CPPUNIT_ASSERT_MESSAGE( "OUString", !(a >>= b) ); CPPUNIT_ASSERT_EQUAL_MESSAGE( "OUString", u"2"_ustr, b ); } { css::uno::Type b(cppu::UnoType::get()); CPPUNIT_ASSERT_MESSAGE( "css::uno::Type", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Type", cppu::UnoType::get(), b); } { css::uno::Sequence< OUString > b(2); CPPUNIT_ASSERT_MESSAGE( "css::uno::Sequence", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE( "css::uno::Sequence", sal_Int32(2), b.getLength()); } { Enum1 b = Enum1_M2; CPPUNIT_ASSERT_MESSAGE("Enum1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Enum1", Enum1_M2, b); } { Struct1 b(2); CPPUNIT_ASSERT_MESSAGE("Struct1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Struct1", sal_Int32(2), b.member); } { Exception1 b( OUString(), css::uno::Reference< css::uno::XInterface >(), 2); CPPUNIT_ASSERT_MESSAGE("Exception1", !(a >>= b)); CPPUNIT_ASSERT_EQUAL_MESSAGE("Exception1", sal_Int32(2), b.member); } { css::uno::Reference< Interface1 > b(new Impl1); CPPUNIT_ASSERT_MESSAGE( "Interface1", (a >>= b)); CPPUNIT_ASSERT_MESSAGE( "Interface1", !b.is()); } { css::uno::Reference< Interface2 > b(new Impl2); CPPUNIT_ASSERT_MESSAGE( "Interface2", (a >>= b)); CPPUNIT_ASSERT_MESSAGE( "Interface2", !b.is()); } { css::uno::Reference< Interface2a > b(new Impl2); CPPUNIT_ASSERT_MESSAGE("Interface2a", (a >>= b)); CPPUNIT_ASSERT_MESSAGE("Interface2a", !b.is()); } { css::uno::Reference< Interface2b > b(new Impl2b); CPPUNIT_ASSERT_MESSAGE( "Interface2b", (a >>= b)); CPPUNIT_ASSERT_MESSAGE( "Interface2b", !b.is()); } { css::uno::Reference< Interface3 > b(new Impl2); CPPUNIT_ASSERT_MESSAGE( "Interface3", (a >>= b)); CPPUNIT_ASSERT_MESSAGE( "Interface3", !b.is()); } } CPPUNIT_TEST_SUITE_REGISTRATION(Test); } CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */