1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
21 #include <sal/config.h>
25 #include <rtl/string.hxx>
26 #include <rtl/textenc.h>
27 #include <rtl/ustring.hxx>
34 explicit CheckFailed(OUString
const & theMessage
): message(theMessage
)
37 OUString
const message
;
40 template< typename T
> void checkEqual(T
const & value
, T
const & argument
) {
41 if (argument
!= value
) {
43 s
<< value
<< " != " << argument
;
46 OString(s
.str().c_str()), RTL_TEXTENCODING_UTF8
));
52 namespace testtools
{ namespace bridgetest
{
54 OUString
testMulti( css::uno::Reference
< test::testtools::bridgetest::XMulti
> const & multi
)
59 css::uno::Reference
< test::testtools::bridgetest::XMultiBase1
>(
60 multi
, css::uno::UNO_QUERY_THROW
)->getatt1());
63 static_cast< test::testtools::bridgetest::XMultiBase2
* >(
64 multi
.get())->getatt1());
67 css::uno::Reference
< test::testtools::bridgetest::XMultiBase2
>(
68 multi
, css::uno::UNO_QUERY_THROW
)->getatt1());
71 static_cast< test::testtools::bridgetest::XMultiBase5
* >(
72 multi
.get())->getatt1());
75 css::uno::Reference
< test::testtools::bridgetest::XMultiBase5
>(
76 multi
, css::uno::UNO_QUERY_THROW
)->getatt1());
77 css::uno::Reference
< test::testtools::bridgetest::XMultiBase5
>(
78 multi
, css::uno::UNO_QUERY_THROW
)->setatt1(0.1);
81 css::uno::Reference
< test::testtools::bridgetest::XMultiBase1
>(
82 multi
, css::uno::UNO_QUERY_THROW
)->getatt1());
85 static_cast< test::testtools::bridgetest::XMultiBase2
* >(
86 multi
.get())->getatt1());
89 css::uno::Reference
< test::testtools::bridgetest::XMultiBase2
>(
90 multi
, css::uno::UNO_QUERY_THROW
)->getatt1());
93 static_cast< test::testtools::bridgetest::XMultiBase5
* >(
94 multi
.get())->getatt1());
97 css::uno::Reference
< test::testtools::bridgetest::XMultiBase5
>(
98 multi
, css::uno::UNO_QUERY_THROW
)->getatt1());
99 checkEqual
< sal_Int32
>(
101 css::uno::Reference
< test::testtools::bridgetest::XMultiBase1
>(
102 multi
, css::uno::UNO_QUERY_THROW
)->fn11(1));
103 checkEqual
< sal_Int32
>(
105 static_cast< test::testtools::bridgetest::XMultiBase2
* >(
106 multi
.get())->fn11(1));
107 checkEqual
< sal_Int32
>(
109 css::uno::Reference
< test::testtools::bridgetest::XMultiBase2
>(
110 multi
, css::uno::UNO_QUERY_THROW
)->fn11(2));
111 checkEqual
< sal_Int32
>(
113 static_cast< test::testtools::bridgetest::XMultiBase5
* >(
114 multi
.get())->fn11(1));
115 checkEqual
< sal_Int32
>(
117 css::uno::Reference
< test::testtools::bridgetest::XMultiBase5
>(
118 multi
, css::uno::UNO_QUERY_THROW
)->fn11(5));
120 OUString("12" "abc"),
121 css::uno::Reference
< test::testtools::bridgetest::XMultiBase1
>(
122 multi
, css::uno::UNO_QUERY_THROW
)->fn12(
125 OUString("12" "abc-2"),
126 static_cast< test::testtools::bridgetest::XMultiBase2
* >(
127 multi
.get())->fn12("abc-2"));
129 OUString("12" "abc-2"),
130 css::uno::Reference
< test::testtools::bridgetest::XMultiBase2
>(
131 multi
, css::uno::UNO_QUERY_THROW
)->fn12("abc-2"));
133 OUString("12" "abc-5"),
134 static_cast< test::testtools::bridgetest::XMultiBase5
* >(
135 multi
.get())->fn12("abc-5"));
137 OUString("12" "abc-5"),
138 css::uno::Reference
< test::testtools::bridgetest::XMultiBase5
>(
139 multi
, css::uno::UNO_QUERY_THROW
)->fn12("abc-5"));
140 checkEqual
< sal_Int32
>(21 * 2, multi
->fn21(2));
144 checkEqual
< sal_Int32
>(
146 css::uno::Reference
< test::testtools::bridgetest::XMultiBase3
>(
147 multi
, css::uno::UNO_QUERY_THROW
)->fn31(3));
148 checkEqual
< sal_Int32
>(
150 static_cast< test::testtools::bridgetest::XMultiBase5
* >(
151 multi
.get())->fn31(5));
152 checkEqual
< sal_Int32
>(
154 css::uno::Reference
< test::testtools::bridgetest::XMultiBase5
>(
155 multi
, css::uno::UNO_QUERY_THROW
)->fn31(5));
158 css::uno::Reference
< test::testtools::bridgetest::XMultiBase3
>(
159 multi
, css::uno::UNO_QUERY_THROW
)->getatt3());
162 static_cast< test::testtools::bridgetest::XMultiBase5
* >(
163 multi
.get())->getatt3());
166 css::uno::Reference
< test::testtools::bridgetest::XMultiBase5
>(
167 multi
, css::uno::UNO_QUERY_THROW
)->getatt3());
168 css::uno::Reference
< test::testtools::bridgetest::XMultiBase3
>(
169 multi
, css::uno::UNO_QUERY_THROW
)->setatt3(0.3);
172 css::uno::Reference
< test::testtools::bridgetest::XMultiBase3
>(
173 multi
, css::uno::UNO_QUERY_THROW
)->getatt3());
176 static_cast< test::testtools::bridgetest::XMultiBase5
* >(
177 multi
.get())->getatt3());
180 css::uno::Reference
< test::testtools::bridgetest::XMultiBase5
>(
181 multi
, css::uno::UNO_QUERY_THROW
)->getatt3());
184 css::uno::Reference
< test::testtools::bridgetest::XMultiBase3
>(
185 multi
, css::uno::UNO_QUERY_THROW
)->fn32("f"));
187 OUString("32" "f-5"),
188 static_cast< test::testtools::bridgetest::XMultiBase5
* >(
189 multi
.get())->fn32("f-5"));
191 OUString("32" "f-5"),
192 css::uno::Reference
< test::testtools::bridgetest::XMultiBase5
>(
193 multi
, css::uno::UNO_QUERY_THROW
)->fn32("f-5"));
194 checkEqual
< sal_Int32
>(
196 css::uno::Reference
< test::testtools::bridgetest::XMultiBase3
>(
197 multi
, css::uno::UNO_QUERY_THROW
)->fn33());
198 checkEqual
< sal_Int32
>(
200 static_cast< test::testtools::bridgetest::XMultiBase5
* >(
201 multi
.get())->fn33());
202 checkEqual
< sal_Int32
>(
204 css::uno::Reference
< test::testtools::bridgetest::XMultiBase5
>(
205 multi
, css::uno::UNO_QUERY_THROW
)->fn33());
206 checkEqual
< sal_Int32
>(41 * 4, multi
->fn41(4));
207 checkEqual
< sal_Int32
>(61 * 6, multi
->fn61(6));
210 multi
->fn62(OUString()));
211 checkEqual
< sal_Int32
>(71 * 7, multi
->fn71(7));
215 checkEqual
< sal_Int32
>(73, multi
->fn73());
216 } catch (CheckFailed
const & f
) {
224 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */