1478 lines
60 KiB
C#
1478 lines
60 KiB
C#
/*
|
|
* 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 .
|
|
*/
|
|
|
|
using System;
|
|
using System.Reflection;
|
|
using System.Diagnostics;
|
|
using uno;
|
|
|
|
|
|
using unoidl.test.cliure.climaker;
|
|
//using unoidl.com.sun.star.uno;
|
|
using ucss=unoidl.com.sun.star;
|
|
|
|
/** This class is for testing the generated code in the uno services
|
|
*/
|
|
|
|
public class Context: ucss.uno.XComponentContext
|
|
{
|
|
public enum test_kind {
|
|
NORMAL,
|
|
NO_FACTORY,
|
|
TEST_EXCEPTION,
|
|
CREATION_FAILED
|
|
}
|
|
|
|
public Context(test_kind k, params object[] args)
|
|
{
|
|
kind = k;
|
|
factory = new Factory(k, args);
|
|
}
|
|
|
|
public ucss.lang.XMultiComponentFactory getServiceManager()
|
|
{
|
|
if (kind == test_kind.NO_FACTORY)
|
|
return null;
|
|
return factory;
|
|
}
|
|
|
|
public Any getValueByName(string Name)
|
|
{
|
|
if (kind == test_kind.NORMAL)
|
|
{
|
|
if (Name == "/singletons/unoidl.test.cliure.climaker.S4")
|
|
{
|
|
Component c = new Component(this);
|
|
return new Any(typeof(object), c);
|
|
}
|
|
}
|
|
else if (kind == test_kind.CREATION_FAILED)
|
|
{
|
|
return new Any();
|
|
}
|
|
return new Any();
|
|
}
|
|
|
|
class Factory: ucss.lang.XMultiComponentFactory
|
|
{
|
|
public Factory(Context.test_kind k, params object[] args) {
|
|
kind2 = k;
|
|
if (k == Context.test_kind.TEST_EXCEPTION)
|
|
exception = (ucss.uno.Exception) args[0];
|
|
}
|
|
public object createInstanceWithArgumentsAndContext(
|
|
string ServiceSpecifier,
|
|
uno.Any[] Arguments,
|
|
unoidl.com.sun.star.uno.XComponentContext Context) {
|
|
switch (kind2) {
|
|
case test_kind.NORMAL:
|
|
return new Component(Context, Arguments);
|
|
case test_kind.CREATION_FAILED :
|
|
return null;
|
|
case test_kind.TEST_EXCEPTION:
|
|
throw exception;
|
|
default:
|
|
throw new Exception("Factory not properly initialized");
|
|
}
|
|
}
|
|
public object createInstanceWithContext(
|
|
string aServiceSpecifier,
|
|
unoidl.com.sun.star.uno.XComponentContext Context) {
|
|
switch (kind2) {
|
|
case test_kind.NORMAL:
|
|
return new Component(Context);
|
|
case test_kind.CREATION_FAILED:
|
|
return null;
|
|
case test_kind.TEST_EXCEPTION:
|
|
throw exception;
|
|
default:
|
|
throw new Exception("Factory not properly initialized");
|
|
}
|
|
}
|
|
|
|
public string[] getAvailableServiceNames()
|
|
{
|
|
return new string[]{};
|
|
}
|
|
ucss.uno.Exception exception;
|
|
test_kind kind2;
|
|
}
|
|
|
|
|
|
Factory factory;
|
|
test_kind kind;
|
|
}
|
|
|
|
|
|
public class Logger
|
|
{
|
|
String m_sFunction;
|
|
int m_nErrors;
|
|
public Logger() {
|
|
}
|
|
|
|
public String Function
|
|
{
|
|
set
|
|
{
|
|
m_sFunction = value;
|
|
}
|
|
get
|
|
{
|
|
return m_sFunction;
|
|
}
|
|
}
|
|
|
|
public void assure(bool b) {
|
|
if (b == false)
|
|
{
|
|
Console.WriteLine(m_sFunction + " failed!");
|
|
m_nErrors++;
|
|
}
|
|
}
|
|
|
|
public void printStatus() {
|
|
Console.WriteLine("\n=====================================");
|
|
|
|
|
|
String msg;
|
|
if (m_nErrors > 0)
|
|
msg = "Test failed! " + m_nErrors.ToString() + " Errors.";
|
|
else
|
|
msg = "Test succeeded!";
|
|
|
|
Console.WriteLine(msg + "\n=====================================");
|
|
}
|
|
|
|
public int Errors
|
|
{
|
|
get
|
|
{
|
|
return m_nErrors;
|
|
}
|
|
}
|
|
}
|
|
|
|
public sealed class Test
|
|
{
|
|
public static int Main(String[] args)
|
|
{
|
|
|
|
// System.Diagnostics.Debugger.Launch();
|
|
try
|
|
{
|
|
Logger log = new Logger();
|
|
Test t = new Test();
|
|
t.testEnum1(log);
|
|
t.testEnum2(log);
|
|
t.testPolyStruct(log);
|
|
t.testEmptyStruct2(log);
|
|
t.testFullStruct2(log);
|
|
t.testS1(log);
|
|
t.testSingletons(log);
|
|
t.testAttributes(log);
|
|
t.testPolyStructAttributes(log);
|
|
t.testPolymorphicType(log);
|
|
t.testInterface(log);
|
|
t.testAny(log);
|
|
log.printStatus();
|
|
if (log.Errors == 0)
|
|
return 0;
|
|
return -1;
|
|
}
|
|
catch(Exception e)
|
|
{
|
|
Console.Write(e.Message);
|
|
}
|
|
return -1;
|
|
|
|
}
|
|
|
|
|
|
public void testEnum1(Logger l) {
|
|
l.Function = "testEnum1";
|
|
l.assure(((int)Enum1.VALUE1) == -100);
|
|
l.assure(((int)Enum1.VALUE2) == 100);
|
|
}
|
|
|
|
public void testEnum2(Logger l) {
|
|
l.Function = "testEnum2";
|
|
l.assure( ((int) Enum2.VALUE0) == 0);
|
|
l.assure( ((int) Enum2.VALUE1) == 1);
|
|
l.assure( ((int) Enum2.VALUE2) == 2);
|
|
l.assure( ((int) Enum2.VALUE4) == 4);
|
|
}
|
|
|
|
public void testPolyStruct(Logger l) {
|
|
l.Function = "testPolyStruct";
|
|
PolyStruct s = new PolyStruct();
|
|
l.assure(s.member1 == null);
|
|
l.assure(s.member2 == 0);
|
|
s = new PolyStruct("ABC", 5);
|
|
l.assure(s.member1.Equals("ABC"));
|
|
l.assure(s.member2 == 5);
|
|
}
|
|
|
|
public void testEmptyStruct2(Logger l) {
|
|
l.Function = "testEmptyStruct2";
|
|
Struct2 s = new Struct2();
|
|
l.assure(s.p1 == false);
|
|
l.assure(s.p2 == 0);
|
|
l.assure(s.p3 == 0);
|
|
l.assure(s.p4 == 0);
|
|
l.assure(s.p5 == 0);
|
|
l.assure(s.p6 == 0);
|
|
l.assure(s.p7 == 0);
|
|
l.assure(s.p8 == 0);
|
|
l.assure(s.p9 == 0.0f);
|
|
l.assure(s.p10 == 0.0);
|
|
l.assure(s.p11 == '\u0000');
|
|
l.assure(s.p12.Equals(""));
|
|
l.assure(s.p13.Equals(typeof(void)));
|
|
l.assure(s.p14.Equals(Any.VOID));
|
|
l.assure(s.p15 == Enum2.VALUE0);
|
|
l.assure(s.p16.member1 == 0);
|
|
l.assure(s.p17 == null);
|
|
l.assure(s.p18 == null);
|
|
l.assure(s.t1 == false);
|
|
l.assure(s.t2 == 0);
|
|
l.assure(s.t3 == 0);
|
|
l.assure(s.t4 == 0);
|
|
l.assure(s.t5 == 0);
|
|
l.assure(s.t6 == 0);
|
|
l.assure(s.t7 == 0);
|
|
l.assure(s.t8 == 0);
|
|
l.assure(s.t9 == 0.0f);
|
|
l.assure(s.t10 == 0.0);
|
|
l.assure(s.t11 == '\u0000');
|
|
l.assure(s.t12.Equals(""));
|
|
l.assure(s.t13.Equals(typeof(void)));
|
|
l.assure(s.t14.Equals(Any.VOID));
|
|
l.assure(s.t15 == Enum2.VALUE0);
|
|
l.assure(s.t16.member1 == 0);
|
|
l.assure(s.t17 == null);
|
|
l.assure(s.t18 == null);
|
|
l.assure(s.a1.Length == 0);
|
|
l.assure(s.a2.Length == 0);
|
|
l.assure(s.a3.Length == 0);
|
|
l.assure(s.a4.Length == 0);
|
|
l.assure(s.a5.Length == 0);
|
|
l.assure(s.a6.Length == 0);
|
|
l.assure(s.a7.Length == 0);
|
|
l.assure(s.a8.Length == 0);
|
|
l.assure(s.a9.Length == 0);
|
|
l.assure(s.a10.Length == 0);
|
|
l.assure(s.a11.Length == 0);
|
|
l.assure(s.a12.Length == 0);
|
|
l.assure(s.a13.Length == 0);
|
|
l.assure(s.a14.Length == 0);
|
|
l.assure(s.a15.Length == 0);
|
|
l.assure(s.a16.Length == 0);
|
|
l.assure(s.a17.Length == 0);
|
|
l.assure(s.a18.Length == 0);
|
|
l.assure(s.aa1.Length == 0);
|
|
l.assure(s.aa2.Length == 0);
|
|
l.assure(s.aa3.Length == 0);
|
|
l.assure(s.aa4.Length == 0);
|
|
l.assure(s.aa5.Length == 0);
|
|
l.assure(s.aa6.Length == 0);
|
|
l.assure(s.aa7.Length == 0);
|
|
l.assure(s.aa8.Length == 0);
|
|
l.assure(s.aa9.Length == 0);
|
|
l.assure(s.aa10.Length == 0);
|
|
l.assure(s.aa11.Length == 0);
|
|
l.assure(s.aa12.Length == 0);
|
|
l.assure(s.aa13.Length == 0);
|
|
l.assure(s.aa14.Length == 0);
|
|
l.assure(s.aa15.Length == 0);
|
|
l.assure(s.aa16.Length == 0);
|
|
l.assure(s.aa17.Length == 0);
|
|
l.assure(s.aa18.Length == 0);
|
|
l.assure(s.at1.Length == 0);
|
|
l.assure(s.at2.Length == 0);
|
|
l.assure(s.at3.Length == 0);
|
|
l.assure(s.at4.Length == 0);
|
|
l.assure(s.at5.Length == 0);
|
|
l.assure(s.at6.Length == 0);
|
|
l.assure(s.at7.Length == 0);
|
|
l.assure(s.at8.Length == 0);
|
|
l.assure(s.at9.Length == 0);
|
|
l.assure(s.at10.Length == 0);
|
|
l.assure(s.at11.Length == 0);
|
|
l.assure(s.at12.Length == 0);
|
|
l.assure(s.at13.Length == 0);
|
|
l.assure(s.at14.Length == 0);
|
|
l.assure(s.at15.Length == 0);
|
|
l.assure(s.at16.Length == 0);
|
|
l.assure(s.at17.Length == 0);
|
|
l.assure(s.at18.Length == 0);
|
|
}
|
|
|
|
public void testFullStruct2(Logger l) {
|
|
//TODO:
|
|
Struct2 s = new Struct2(
|
|
true, (byte) 1, (short) 2, (ushort) 3, 4, 5, 6L, 7L, 0.8f, 0.9d, 'A',
|
|
"BCD", typeof(ulong), new Any(22), Enum2.VALUE4,
|
|
new Struct1(1), null, null, false, (byte) 0, (short) 0, (ushort) 0,
|
|
0, 0, 0L, 0L, 0.0f, 0.0, '\u0000', "", typeof(void), Any.VOID,
|
|
Enum2.VALUE0, new Struct1(), null, null,
|
|
new bool[] { false, true }, new byte[] { (byte) 1, (byte) 2 },
|
|
new short[0], new ushort[0], new int[0], new uint[0],
|
|
new long[0], new ulong[0], new float[0], new double[0], new char[0],
|
|
new String[0], new Type[0], new Any[0], new Enum2[0],
|
|
new Struct1[] { new Struct1(1), new Struct1(2) }, new Object[0],
|
|
new ucss.uno.XNamingService[0], new bool[0][], new byte[0][],
|
|
new short[0][], new ushort[0][], new int[0][], new uint[0][],
|
|
new long[0][], new ulong[0][], new float[0][], new double[0][],
|
|
new char[0][], new String[0][], new Type[0][], new Any[0][],
|
|
new Enum2[0][], new Struct1[0][], new Object[0][],
|
|
new ucss.uno.XNamingService[0][], new bool[0][], new byte[0][],
|
|
new short[0][], new ushort[0][], new int[0][], new uint[0][],
|
|
new long[0][], new ulong[0][], new float[0][], new double[0][],
|
|
new char[0][], new String[0][], new Type[0][], new Any[0][],
|
|
new Enum2[0][], new Struct1[0][], new Object[0][],
|
|
new ucss.uno.XNamingService[0][]);
|
|
l.assure(s.p1 == true);
|
|
l.assure(s.p2 == 1);
|
|
l.assure(s.p3 == 2);
|
|
l.assure(s.p4 == 3);
|
|
l.assure(s.p5 == 4);
|
|
l.assure(s.p6 == 5);
|
|
l.assure(s.p7 == 6);
|
|
l.assure(s.p8 == 7);
|
|
l.assure(s.p9 == 0.8f);
|
|
l.assure(s.p10 == 0.9);
|
|
l.assure(s.p11 == 'A');
|
|
l.assure(s.p12.Equals("BCD"));
|
|
l.assure(s.p13.Equals(typeof(ulong)));
|
|
l.assure(s.p14.Equals(new Any(22)));
|
|
l.assure(s.p15 == Enum2.VALUE4);
|
|
l.assure(s.p16.member1 == 1);
|
|
l.assure(s.p17 == null);
|
|
l.assure(s.p18 == null);
|
|
l.assure(s.t1 == false);
|
|
l.assure(s.t2 == 0);
|
|
l.assure(s.t3 == 0);
|
|
l.assure(s.t4 == 0);
|
|
l.assure(s.t5 == 0);
|
|
l.assure(s.t6 == 0);
|
|
l.assure(s.t7 == 0);
|
|
l.assure(s.t8 == 0);
|
|
l.assure(s.t9 == 0.0f);
|
|
l.assure(s.t10 == 0.0);
|
|
l.assure(s.t11 == '\u0000');
|
|
l.assure(s.t12.Equals(""));
|
|
l.assure(s.t13.Equals(typeof(void)));
|
|
l.assure(s.t14.Equals(Any.VOID));
|
|
l.assure(s.t15 == Enum2.VALUE0);
|
|
l.assure(s.t16.member1 == 0);
|
|
l.assure(s.t17 == null);
|
|
l.assure(s.t18 == null);
|
|
l.assure(s.a1.Length == 2);
|
|
l.assure(s.a1[0] == false);
|
|
l.assure(s.a1[1] == true);
|
|
l.assure(s.a2.Length == 2);
|
|
l.assure(s.a2[0] == 1);
|
|
l.assure(s.a2[1] == 2);
|
|
l.assure(s.a3.Length == 0);
|
|
l.assure(s.a4.Length == 0);
|
|
l.assure(s.a5.Length == 0);
|
|
l.assure(s.a6.Length == 0);
|
|
l.assure(s.a7.Length == 0);
|
|
l.assure(s.a8.Length == 0);
|
|
l.assure(s.a9.Length == 0);
|
|
l.assure(s.a10.Length == 0);
|
|
l.assure(s.a11.Length == 0);
|
|
l.assure(s.a12.Length == 0);
|
|
l.assure(s.a13.Length == 0);
|
|
l.assure(s.a14.Length == 0);
|
|
l.assure(s.a15.Length == 0);
|
|
l.assure(s.a16.Length == 2);
|
|
l.assure(s.a16[0].member1 == 1);
|
|
l.assure(s.a16[1].member1 == 2);
|
|
l.assure(s.a17.Length == 0);
|
|
l.assure(s.a18.Length == 0);
|
|
l.assure(s.aa1.Length == 0);
|
|
l.assure(s.aa2.Length == 0);
|
|
l.assure(s.aa3.Length == 0);
|
|
l.assure(s.aa4.Length == 0);
|
|
l.assure(s.aa5.Length == 0);
|
|
l.assure(s.aa6.Length == 0);
|
|
l.assure(s.aa7.Length == 0);
|
|
l.assure(s.aa8.Length == 0);
|
|
l.assure(s.aa9.Length == 0);
|
|
l.assure(s.aa10.Length == 0);
|
|
l.assure(s.aa11.Length == 0);
|
|
l.assure(s.aa12.Length == 0);
|
|
l.assure(s.aa13.Length == 0);
|
|
l.assure(s.aa14.Length == 0);
|
|
l.assure(s.aa15.Length == 0);
|
|
l.assure(s.aa16.Length == 0);
|
|
l.assure(s.aa17.Length == 0);
|
|
l.assure(s.aa18.Length == 0);
|
|
l.assure(s.at1.Length == 0);
|
|
l.assure(s.at2.Length == 0);
|
|
l.assure(s.at3.Length == 0);
|
|
l.assure(s.at4.Length == 0);
|
|
l.assure(s.at5.Length == 0);
|
|
l.assure(s.at6.Length == 0);
|
|
l.assure(s.at7.Length == 0);
|
|
l.assure(s.at8.Length == 0);
|
|
l.assure(s.at9.Length == 0);
|
|
l.assure(s.at10.Length == 0);
|
|
l.assure(s.at11.Length == 0);
|
|
l.assure(s.at12.Length == 0);
|
|
l.assure(s.at13.Length == 0);
|
|
l.assure(s.at14.Length == 0);
|
|
l.assure(s.at15.Length == 0);
|
|
l.assure(s.at16.Length == 0);
|
|
l.assure(s.at17.Length == 0);
|
|
l.assure(s.at18.Length == 0);
|
|
}
|
|
|
|
public void testS1(Logger l) {
|
|
l.Function = "testS1";
|
|
object obj = new Object();
|
|
ucss.uno.RuntimeException excRuntime =
|
|
new ucss.uno.RuntimeException("RuntimeException", obj);
|
|
ucss.uno.Exception excException =
|
|
new ucss.uno.Exception("Exception", obj);
|
|
ucss.lang.IllegalAccessException excIllegalAccess =
|
|
new ucss.lang.IllegalAccessException("IllegalAccessException", obj);
|
|
ucss.uno.DeploymentException excDeployment =
|
|
new ucss.uno.DeploymentException("DeploymentException", obj);
|
|
ucss.lang.InvalidListenerException excInvalidListener =
|
|
new ucss.lang.InvalidListenerException("ListenerException", obj);
|
|
|
|
/* create1 does not specify exceptions. Therefore RuntimeExceptions
|
|
fly through and other exceptions cause a DeploymentException.
|
|
*/
|
|
try {
|
|
S1.create1(new Context(Context.test_kind.TEST_EXCEPTION, excRuntime));
|
|
} catch (ucss.uno.RuntimeException e) {
|
|
l.assure(e.Message == excRuntime.Message
|
|
&& e.Context == obj);
|
|
} catch (System.Exception) {
|
|
l.assure(false);
|
|
}
|
|
|
|
Context c = new Context(Context.test_kind.TEST_EXCEPTION, excException);
|
|
try {
|
|
S1.create1(c);
|
|
} catch (ucss.uno.DeploymentException e) {
|
|
//The message of the original exception should be contained
|
|
// in the Deploymentexception
|
|
l.assure(e.Message.IndexOf(excException.Message) != -1 && e.Context == c);
|
|
} catch (System.Exception) {
|
|
l.assure(false);
|
|
}
|
|
|
|
/* create2 specifies many exceptions, including RuntimeException and Exception.
|
|
Because Exception is specified all exceptions are allowed, hence all thrown
|
|
exceptions fly through.
|
|
*/
|
|
try {
|
|
S1.create2(new Context(Context.test_kind.TEST_EXCEPTION, excRuntime));
|
|
} catch (ucss.uno.RuntimeException e) {
|
|
l.assure(e.Message == excRuntime.Message
|
|
&& e.Context == obj);
|
|
} catch (System.Exception) {
|
|
l.assure(false);
|
|
}
|
|
|
|
try {
|
|
S1.create2(new Context(Context.test_kind.TEST_EXCEPTION, excIllegalAccess));
|
|
} catch (ucss.lang.IllegalAccessException e) {
|
|
l.assure(e.Message == excIllegalAccess.Message
|
|
&& e.Context == obj);
|
|
} catch (System.Exception) {
|
|
l.assure(false);
|
|
}
|
|
|
|
try {
|
|
S1.create2(new Context(Context.test_kind.TEST_EXCEPTION, excException));
|
|
} catch (ucss.uno.Exception e) {
|
|
l.assure(e.Message == excException.Message
|
|
&& e.Context == obj);
|
|
} catch (System.Exception) {
|
|
l.assure(false);
|
|
}
|
|
|
|
/* create3 specifies exceptions but no com.sun.star.uno.Exception. RuntimeException
|
|
and derived fly through. Other specified exceptions are rethrown and all other
|
|
exceptions cause a DeploymentException.
|
|
*/
|
|
try {
|
|
S1.create3(new Context(Context.test_kind.TEST_EXCEPTION, excDeployment),
|
|
new Any[]{});
|
|
} catch (ucss.uno.DeploymentException e) {
|
|
l.assure(e.Message == excDeployment.Message
|
|
&& e.Context == obj);
|
|
} catch (System.Exception) {
|
|
l.assure(false);
|
|
}
|
|
|
|
try {
|
|
S1.create3(new Context(Context.test_kind.TEST_EXCEPTION, excIllegalAccess),
|
|
new Any[0]);
|
|
} catch (ucss.lang.IllegalAccessException e) {
|
|
l.assure(e.Message == excIllegalAccess.Message
|
|
&& e.Context == obj);
|
|
} catch (System.Exception) {
|
|
l.assure(false);
|
|
}
|
|
|
|
c = new Context(Context.test_kind.TEST_EXCEPTION, excInvalidListener);
|
|
try {
|
|
S1.create3(c, new Any[0]);
|
|
} catch (ucss.uno.DeploymentException e) {
|
|
l.assure(e.Message.IndexOf(excInvalidListener.Message) != -1
|
|
&& e.Context == c);
|
|
} catch (System.Exception) {
|
|
l.assure(false);
|
|
}
|
|
|
|
/* test the case when the context cannot provide a service manager.
|
|
*/
|
|
try {
|
|
S1.create2(new Context(Context.test_kind.NO_FACTORY));
|
|
} catch (ucss.uno.DeploymentException e) {
|
|
l.assure(e.Message.Length > 0);
|
|
} catch (System.Exception) {
|
|
l.assure(false);
|
|
}
|
|
|
|
/* When the service manager returns a null pointer then a DeploymentException
|
|
* is to be thrown.
|
|
*/
|
|
try {
|
|
S1.create2(new Context(Context.test_kind.CREATION_FAILED));
|
|
} catch (ucss.uno.DeploymentException e) {
|
|
l.assure(e.Message.Length > 0);
|
|
} catch (System.Exception) {
|
|
l.assure(false);
|
|
}
|
|
|
|
|
|
/** Test creation of components and if the passing of parameters works.
|
|
*/
|
|
c = new Context(Context.test_kind.NORMAL);
|
|
try {
|
|
XTest xTest = S1.create1(c);
|
|
Component cobj = (Component) xTest;
|
|
l.assure(cobj.Args[0].Value == c);
|
|
|
|
Any a1 = new Any("bla");
|
|
Any a2 = new Any(3.14f);
|
|
Any a3 = new Any(3.145d);
|
|
xTest = S1.create2(c, a1, a2, a3);
|
|
cobj = (Component) xTest;
|
|
l.assure(cobj.Args[0].Value == c
|
|
&& a1.Equals(cobj.Args[1])
|
|
&& a2.Equals(cobj.Args[2])
|
|
&& a3.Equals(cobj.Args[3]));
|
|
|
|
bool b1 = true;
|
|
byte b2 = 1;
|
|
short b3 = 2;
|
|
ushort b4 = 3;
|
|
int b5 = 4;
|
|
uint b6 = 5;
|
|
long b7 = 6;
|
|
ulong b8 = 7;
|
|
float b9 = 0.8f;
|
|
double b10 = 0.9;
|
|
char b11 = 'A';
|
|
string b12 = "BCD";
|
|
Type b13 = typeof(ulong);
|
|
Any b14 = new Any(22);
|
|
Enum2 b15 = Enum2.VALUE4;
|
|
Struct1 b16 = new Struct1(1);
|
|
PolyStruct b17 = new PolyStruct('A', 1);
|
|
PolyStruct b18 = new PolyStruct(new Any(true), 1);
|
|
object b19 = new uno.util.WeakComponentBase();
|
|
ucss.lang.XComponent b20 = (ucss.lang.XComponent) b19;
|
|
bool b21 = b1;
|
|
byte b22 = b2;
|
|
short b23 = b3;
|
|
ushort b24 = b4;
|
|
int b25 = b5;
|
|
uint b26 = b6;
|
|
long b27 = b7;
|
|
ulong b28 = b8;
|
|
float b29 = b9;
|
|
double b30 = b10;
|
|
char b31 = b11;
|
|
string b32 = b12;
|
|
Type b33 = b13;
|
|
Any b34 = b14;
|
|
Enum2 b35 = b15;
|
|
Struct1 b36 = b16;
|
|
object b37 = b19;
|
|
ucss.lang.XComponent b38 = b20;
|
|
bool[] b39 = new bool[] { false, true };
|
|
byte[] b40 = new byte[] { (byte) 1, (byte) 2 };
|
|
short[] b41 = new short[] { (short) 123, (short) 456};
|
|
ushort[] b42 = new ushort[] { (ushort) 789, (ushort) 101};
|
|
int[] b43 = new int[] {1, 2, 3};
|
|
uint[] b44 = new uint[] {4, 5, 6};
|
|
long[] b45 = new long[] {7,8,9};
|
|
ulong[] b46 = new ulong[] {123, 4356};
|
|
float[] b47 = new float[] {2435f,87f};
|
|
double[] b48 = new double[] {234d,45.2134d};
|
|
char[] b49 = new char[] {'\u1234', 'A'};
|
|
string[] b50 = new string[] {"a","bc"};
|
|
Type[] b51 = new Type[] {typeof(int), typeof(long)};
|
|
Any[] b52 = new Any[] {new Any(1), new Any("adf")};
|
|
Enum2[] b53 = new Enum2[] {Enum2.VALUE2};
|
|
Struct1[] b54 = new Struct1[] {new Struct1(11), new Struct1(22)};
|
|
object[] b55 = new object[0];
|
|
ucss.lang.XComponent[] b56 = new ucss.lang.XComponent[]{
|
|
new uno.util.WeakComponentBase(), new uno.util.WeakComponentBase()};
|
|
bool[][] b57 = new bool[][] {new bool[]{true,false}, new bool[] {true}};
|
|
byte[][] b58 = new byte[][]{new byte[] {(byte) 1}, new byte[]{(byte) 2}};
|
|
short[][] b59 = new short[][] {new short[]{(short)6, (short)7}, new short[] {(short)9}};
|
|
ushort[][] b60 = new ushort[][] { new ushort[]{(ushort) 11}};
|
|
int[][] b61 = new int[][] {new int[]{1}, new int[]{2,3}, new int[]{4,5,6}};
|
|
uint[][] b62 = new uint[][] {new uint[]{10U}, new uint[]{20U,30U}, new uint[]{40U,50U,60}};
|
|
long[][] b63 = new long[][] {new long[]{10L}, new long[]{20L,30}, new long[]{40,50,60}};
|
|
ulong[][] b64 = new ulong[][] { new ulong[]{10L}, new ulong[]{20L, 30L}, new ulong[]{40,50,60}};
|
|
float[][] b65 = new float[][] {new float[]{10f}, new float[]{20f,30f}, new float[]{40f,50f,60f}};
|
|
double[][] b66 = new double[][]{new double[]{10d}, new double[]{20d,30d}};
|
|
char[][] b67 = new char[][] {new char[]{'a'}, new char[]{'b', 'c'}};
|
|
string[][] b68 = new String[][] {new string[]{"a"}, new string[]{"ad", "lkj"}};
|
|
Type[][] b69 = new Type[][] {new Type[]{typeof(byte), typeof(long)}, new Type[]{typeof(Any)}};
|
|
Any[][] b70 = new Any[][] {new Any[]{new Any(1f), new Any(2d)}, new Any[]{new Any(34U)}};
|
|
Enum2[][] b71 = new Enum2[][] {new Enum2[]{Enum2.VALUE2}};
|
|
Struct1[][] b72 = new Struct1[][] {new Struct1[]{new Struct1(2), new Struct1(3)}};
|
|
object[][] b73 = new Object[0][];
|
|
ucss.lang.XComponent[][] b74 = new uno.util.WeakComponentBase[0][];
|
|
bool[][] b75 = b57;
|
|
byte[][] b76 = b58;
|
|
short[][] b77 = b59;
|
|
ushort[][] b78 = b60;
|
|
int[][] b79 = b61;
|
|
uint[][] b80 = b62;
|
|
long[][] b81 = b63;
|
|
ulong[][] b82 = b64;
|
|
float[][] b83 = b65;
|
|
double[][] b84 = b66;
|
|
char[][] b85 = b67;
|
|
String[][] b86 = b68;
|
|
Type[][] b87 =b69;
|
|
Any[][] b88 = b70;
|
|
Enum2[][] b89 = b71;
|
|
Struct1[][] b90 = b72;
|
|
Object[][] b91 = b73;
|
|
ucss.lang.XComponent[][] b92 = b74;
|
|
|
|
xTest = S1.create5(
|
|
c,
|
|
b1, b2, b3, b4, b5, b6, b7 ,b8, b9, b10,
|
|
b11, b12, b13,
|
|
b14,
|
|
b15, b16, b17, b18, b19, b20,
|
|
b21, b22, b23, b24, b25, b26, b27, b28, b29, b30,
|
|
b31, b32, b33,
|
|
b34,
|
|
b35, b36, b37, b38, b39, b40,
|
|
b41, b42, b43, b44, b45, b46, b47, b48, b49, b50,
|
|
b51, b52, b53, b54, b55, b56, b57, b58, b59, b60,
|
|
b61, b62, b63, b64, b65, b66, b67, b68, b69, b70,
|
|
b71, b72, b73, b74, b75, b76, b77, b78, b79, b80,
|
|
b81, b82, b83, b84, b85, b86, b87, b88, b89, b90,
|
|
b91, b92
|
|
);
|
|
|
|
cobj = (Component) xTest;
|
|
l.assure(cobj.Args[0].Value == c);
|
|
l.assure(b1.Equals(cobj.Args[1].Value));
|
|
l.assure(b2.Equals(cobj.Args[2].Value));
|
|
l.assure(b3.Equals(cobj.Args[3].Value));
|
|
l.assure(b4.Equals(cobj.Args[4].Value));
|
|
l.assure(b5.Equals(cobj.Args[5].Value));
|
|
l.assure(b6.Equals(cobj.Args[6].Value));
|
|
l.assure(b7.Equals(cobj.Args[7].Value));
|
|
l.assure(b8.Equals(cobj.Args[8].Value));
|
|
l.assure(b9.Equals(cobj.Args[9].Value));
|
|
l.assure(b10.Equals(cobj.Args[10].Value));
|
|
l.assure(b11.Equals(cobj.Args[11].Value));
|
|
l.assure(b12.Equals(cobj.Args[12].Value));
|
|
l.assure(b13.Equals(cobj.Args[13].Value));
|
|
//Anys are not wrapped by the generated code
|
|
l.assure(b14.Equals(cobj.Args[14]));
|
|
l.assure(b15.Equals(cobj.Args[15].Value));
|
|
l.assure(b16.Equals(cobj.Args[16].Value));
|
|
l.assure(b17.Equals(cobj.Args[17].Value));
|
|
l.assure(b18.Equals(cobj.Args[18].Value));
|
|
l.assure(b19.Equals(cobj.Args[19].Value));
|
|
l.assure(b20.Equals(cobj.Args[20].Value));
|
|
l.assure(b21.Equals(cobj.Args[21].Value));
|
|
l.assure(b22.Equals(cobj.Args[22].Value));
|
|
l.assure(b23.Equals(cobj.Args[23].Value));
|
|
l.assure(b24.Equals(cobj.Args[24].Value));
|
|
l.assure(b25.Equals(cobj.Args[25].Value));
|
|
l.assure(b26.Equals(cobj.Args[26].Value));
|
|
l.assure(b27.Equals(cobj.Args[27].Value));
|
|
l.assure(b28.Equals(cobj.Args[28].Value));
|
|
l.assure(b29.Equals(cobj.Args[29].Value));
|
|
l.assure(b30.Equals(cobj.Args[30].Value));
|
|
l.assure(b31.Equals(cobj.Args[31].Value));
|
|
l.assure(b32.Equals(cobj.Args[32].Value));
|
|
l.assure(b33.Equals(cobj.Args[33].Value));
|
|
//Anys are not wrapped by the generated code
|
|
l.assure(b34.Equals(cobj.Args[34]));
|
|
l.assure(b35.Equals(cobj.Args[35].Value));
|
|
l.assure(b36.Equals(cobj.Args[36].Value));
|
|
l.assure(b37.Equals(cobj.Args[37].Value));
|
|
l.assure(b38.Equals(cobj.Args[38].Value));
|
|
l.assure(b39.Equals(cobj.Args[39].Value));
|
|
l.assure(b40.Equals(cobj.Args[40].Value));
|
|
l.assure(b41.Equals(cobj.Args[41].Value));
|
|
l.assure(b42.Equals(cobj.Args[42].Value));
|
|
l.assure(b43.Equals(cobj.Args[43].Value));
|
|
l.assure(b44.Equals(cobj.Args[44].Value));
|
|
l.assure(b45.Equals(cobj.Args[45].Value));
|
|
l.assure(b46.Equals(cobj.Args[46].Value));
|
|
l.assure(b47.Equals(cobj.Args[47].Value));
|
|
l.assure(b48.Equals(cobj.Args[48].Value));
|
|
l.assure(b49.Equals(cobj.Args[49].Value));
|
|
l.assure(b50.Equals(cobj.Args[50].Value));
|
|
l.assure(b51.Equals(cobj.Args[51].Value));
|
|
l.assure(b52.Equals(cobj.Args[52].Value));
|
|
l.assure(b53.Equals(cobj.Args[53].Value));
|
|
l.assure(b54.Equals(cobj.Args[54].Value));
|
|
l.assure(b55.Equals(cobj.Args[55].Value));
|
|
l.assure(b56.Equals(cobj.Args[56].Value));
|
|
l.assure(b57.Equals(cobj.Args[57].Value));
|
|
l.assure(b58.Equals(cobj.Args[58].Value));
|
|
l.assure(b59.Equals(cobj.Args[59].Value));
|
|
l.assure(b60.Equals(cobj.Args[60].Value));
|
|
l.assure(b61.Equals(cobj.Args[61].Value));
|
|
l.assure(b62.Equals(cobj.Args[62].Value));
|
|
l.assure(b63.Equals(cobj.Args[63].Value));
|
|
l.assure(b64.Equals(cobj.Args[64].Value));
|
|
l.assure(b65.Equals(cobj.Args[65].Value));
|
|
l.assure(b66.Equals(cobj.Args[66].Value));
|
|
l.assure(b67.Equals(cobj.Args[67].Value));
|
|
l.assure(b68.Equals(cobj.Args[68].Value));
|
|
l.assure(b69.Equals(cobj.Args[69].Value));
|
|
l.assure(b70.Equals(cobj.Args[70].Value));
|
|
l.assure(b71.Equals(cobj.Args[71].Value));
|
|
l.assure(b72.Equals(cobj.Args[72].Value));
|
|
l.assure(b73.Equals(cobj.Args[73].Value));
|
|
l.assure(b74.Equals(cobj.Args[74].Value));
|
|
l.assure(b75.Equals(cobj.Args[75].Value));
|
|
l.assure(b76.Equals(cobj.Args[76].Value));
|
|
l.assure(b77.Equals(cobj.Args[77].Value));
|
|
l.assure(b78.Equals(cobj.Args[78].Value));
|
|
l.assure(b79.Equals(cobj.Args[79].Value));
|
|
l.assure(b80.Equals(cobj.Args[80].Value));
|
|
l.assure(b81.Equals(cobj.Args[81].Value));
|
|
l.assure(b82.Equals(cobj.Args[82].Value));
|
|
l.assure(b83.Equals(cobj.Args[83].Value));
|
|
l.assure(b84.Equals(cobj.Args[84].Value));
|
|
l.assure(b85.Equals(cobj.Args[85].Value));
|
|
l.assure(b86.Equals(cobj.Args[86].Value));
|
|
l.assure(b87.Equals(cobj.Args[87].Value));
|
|
l.assure(b88.Equals(cobj.Args[88].Value));
|
|
l.assure(b89.Equals(cobj.Args[89].Value));
|
|
l.assure(b90.Equals(cobj.Args[90].Value));
|
|
l.assure(b91.Equals(cobj.Args[91].Value));
|
|
l.assure(b92.Equals(cobj.Args[92].Value));
|
|
|
|
} catch (Exception) {
|
|
l.assure(false);
|
|
}
|
|
|
|
//test
|
|
c = new Context(Context.test_kind.NORMAL);
|
|
try {
|
|
|
|
PolyStruct2 arg1 = new PolyStruct2(typeof(PolyStruct2), 1);
|
|
PolyStruct2 arg2 = new PolyStruct2(new Any(true), 1);
|
|
PolyStruct2 arg3 = new PolyStruct2(true, 1);
|
|
PolyStruct2 arg4 = new PolyStruct2((Byte)8, 1);
|
|
PolyStruct2 arg5 = new PolyStruct2('c', 1);
|
|
PolyStruct2 arg6 = new PolyStruct2((Int16)10, 1);
|
|
PolyStruct2 arg7 = new PolyStruct2(11, 1);
|
|
PolyStruct2 arg8 = new PolyStruct2(12L, 1);
|
|
PolyStruct2 arg9 = new PolyStruct2("Hello", 1);
|
|
PolyStruct2 arg10 = new PolyStruct2(1.3, 1);
|
|
PolyStruct2 arg11 = new PolyStruct2(1.3d, 1);
|
|
PolyStruct2 arg12 = new PolyStruct2(new Object(), 1);
|
|
PolyStruct2 arg13 = new PolyStruct2(new uno.util.WeakComponentBase(), 1);
|
|
PolyStruct2 arg14 = new PolyStruct2(
|
|
new PolyStruct('A', 1), 1);
|
|
PolyStruct2 arg15 = new PolyStruct2(
|
|
new PolyStruct(new PolyStruct('A',1),1),1);
|
|
PolyStruct arg16 = new PolyStruct("Hallo", 1);
|
|
PolyStruct arg17 = new PolyStruct(
|
|
new PolyStruct('A',1),1);
|
|
|
|
Type[] arType = {typeof(PolyStruct), typeof(PolyStruct2)};
|
|
PolyStruct2 arg101 = new PolyStruct2(arType,1);
|
|
PolyStruct2 arg102 = new PolyStruct2(
|
|
new Any[] {new Any(true)},1);
|
|
PolyStruct2 arg103 = new PolyStruct2(new bool[]{true}, 1);
|
|
PolyStruct2 arg104 = new PolyStruct2(new byte[] { (byte) 1}, 1);
|
|
PolyStruct2 arg105 = new PolyStruct2(new char[] {'\u1234', 'A'}, 1);
|
|
PolyStruct2 arg106 = new PolyStruct2(new short[] {(short)1}, 1);
|
|
PolyStruct2 arg107 = new PolyStruct2(new int[] {1}, 1);
|
|
PolyStruct2 arg108 = new PolyStruct2(new long[] {1}, 1);
|
|
PolyStruct2 arg109 = new PolyStruct2(new string[]{"Hallo"}, 1);
|
|
PolyStruct2 arg110 = new PolyStruct2(new float[]{1.3f}, 1);
|
|
PolyStruct2 arg111 = new PolyStruct2(new double[] {1.3d}, 1);
|
|
PolyStruct2 arg112 = new PolyStruct2(
|
|
new Object[] { new Object()}, 1);
|
|
PolyStruct2 arg113 = new PolyStruct2(
|
|
new uno.util.WeakComponentBase[] {
|
|
new uno.util.WeakComponentBase()}, 1);
|
|
PolyStruct2 arg114 = new PolyStruct2(
|
|
new PolyStruct[]{
|
|
new PolyStruct('A',1)} ,1);
|
|
PolyStruct2 arg115 = new PolyStruct2(
|
|
new PolyStruct[] {
|
|
new PolyStruct( new PolyStruct2('A',1),1)}
|
|
,1);
|
|
PolyStruct2 arg201 = new PolyStruct2(new char[][] { new char[]{'A'},
|
|
new char[]{'B'}}, 1);
|
|
|
|
PolyStruct2[] arg301 = new PolyStruct2[] {new PolyStruct2('A', 1)};
|
|
PolyStruct2[] arg302 = new PolyStruct2[] {new PolyStruct2(
|
|
new PolyStruct('A', 1), 1)};
|
|
PolyStruct2[] arg303 = new PolyStruct2[] {new PolyStruct2(
|
|
new PolyStruct(new PolyStruct('A',1),1),1)};
|
|
PolyStruct[] arg304 = new PolyStruct[] {new PolyStruct("Hallo", 1)};
|
|
PolyStruct[] arg305 = new PolyStruct[] {new PolyStruct(
|
|
new PolyStruct('A',1),1)};
|
|
|
|
PolyStruct2[][] arg401 = new PolyStruct2[][] {new PolyStruct2[] {new PolyStruct2('A', 1)}};
|
|
PolyStruct2[][] arg402 = new PolyStruct2[][] {new PolyStruct2[] {new PolyStruct2(
|
|
new PolyStruct('A', 1), 1)}};
|
|
PolyStruct2[][] arg403 = new PolyStruct2[][] {new PolyStruct2[] {new PolyStruct2(
|
|
new PolyStruct(new PolyStruct('A',1),1),1)}};
|
|
PolyStruct[][] arg404 = new PolyStruct[][] {new PolyStruct[] {new PolyStruct("Hallo", 1)}};
|
|
PolyStruct[][] arg405 = new PolyStruct[][] {new PolyStruct[] {new PolyStruct(
|
|
new PolyStruct('A',1),1)}};
|
|
|
|
|
|
XTest xTest = S1.create6(c,
|
|
arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,
|
|
arg11,arg12,arg13,arg14,arg15,arg16,arg17,
|
|
arg101,arg102,arg103,arg104,arg105,arg106,arg107,arg108,arg109,arg110,
|
|
arg111,arg112,arg113,arg114,arg115,
|
|
arg201,
|
|
arg301, arg302, arg303, arg304, arg305,
|
|
arg401, arg402, arg403, arg404, arg405);
|
|
Component cobj = (Component) xTest;
|
|
l.assure(cobj.Args[0].Value == c);
|
|
//arg1 - arg17
|
|
string sType = ((PolymorphicType) cobj.Args[1].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct2<System.Type>");
|
|
sType = ((PolymorphicType) cobj.Args[2].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct2<uno.Any>");
|
|
sType = ((PolymorphicType) cobj.Args[3].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct2<System.Boolean>");
|
|
sType = ((PolymorphicType) cobj.Args[4].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct2<System.Byte>");
|
|
sType = ((PolymorphicType) cobj.Args[5].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct2<System.Char>");
|
|
sType = ((PolymorphicType) cobj.Args[6].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct2<System.Int16>");
|
|
sType = ((PolymorphicType) cobj.Args[7].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct2<System.Int32>");
|
|
sType = ((PolymorphicType) cobj.Args[8].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct2<System.Int64>");
|
|
sType = ((PolymorphicType) cobj.Args[9].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct2<System.String>");
|
|
sType = ((PolymorphicType) cobj.Args[10].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct2<System.Single>");
|
|
sType = ((PolymorphicType) cobj.Args[11].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct2<System.Double>");
|
|
sType = ((PolymorphicType) cobj.Args[12].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct2<System.Object>");
|
|
sType = ((PolymorphicType) cobj.Args[13].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct2<unoidl.com.sun.star.lang.XComponent>");
|
|
sType = ((PolymorphicType) cobj.Args[14].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct2<unoidl.test.cliure.climaker.PolyStruct<System.Char,uno.Any>>");
|
|
sType = ((PolymorphicType) cobj.Args[15].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct2<" +
|
|
"unoidl.test.cliure.climaker.PolyStruct<" +
|
|
"unoidl.test.cliure.climaker.PolyStruct<" +
|
|
"System.Char,uno.Any>,System.String>>");
|
|
sType = ((PolymorphicType) cobj.Args[16].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct<" +
|
|
"System.String,unoidl.test.cliure.climaker.PolyStruct<" +
|
|
"System.Char,unoidl.test.cliure.climaker.PolyStruct2<" +
|
|
"uno.Any>>>");
|
|
sType = ((PolymorphicType) cobj.Args[17].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct<" +
|
|
"unoidl.test.cliure.climaker.PolyStruct<System.Char,uno.Any>," +
|
|
"unoidl.test.cliure.climaker.PolyStruct2<System.Char>>");
|
|
//arg101 - arg115
|
|
sType = ((PolymorphicType) cobj.Args[18].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct2<System.Type[]>");
|
|
sType = ((PolymorphicType) cobj.Args[19].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct2<uno.Any[]>");
|
|
sType = ((PolymorphicType) cobj.Args[20].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct2<System.Boolean[]>");
|
|
sType = ((PolymorphicType) cobj.Args[21].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct2<System.Byte[]>");
|
|
sType = ((PolymorphicType) cobj.Args[22].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct2<System.Char[]>");
|
|
sType = ((PolymorphicType) cobj.Args[23].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct2<System.Int16[]>");
|
|
sType = ((PolymorphicType) cobj.Args[24].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct2<System.Int32[]>");
|
|
sType = ((PolymorphicType) cobj.Args[25].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct2<System.Int64[]>");
|
|
sType = ((PolymorphicType) cobj.Args[26].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct2<System.String[]>");
|
|
sType = ((PolymorphicType) cobj.Args[27].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct2<System.Single[]>");
|
|
sType = ((PolymorphicType) cobj.Args[28].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct2<System.Double[]>");
|
|
sType = ((PolymorphicType) cobj.Args[29].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct2<System.Object[]>");
|
|
sType = ((PolymorphicType) cobj.Args[30].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct2<unoidl.com.sun.star.lang.XComponent[]>");
|
|
sType = ((PolymorphicType) cobj.Args[31].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct2<" +
|
|
"unoidl.test.cliure.climaker.PolyStruct<System.Char,uno.Any[]>[]>");
|
|
sType = ((PolymorphicType) cobj.Args[32].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct2<" +
|
|
"unoidl.test.cliure.climaker.PolyStruct<" +
|
|
"unoidl.test.cliure.climaker.PolyStruct2<" +
|
|
"System.Char>,uno.Any[]>[]>");
|
|
//arg 201
|
|
sType = ((PolymorphicType) cobj.Args[33].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct2<" +
|
|
"System.Char[][]>");
|
|
//arg 301 - arg305
|
|
sType = ((PolymorphicType) cobj.Args[34].Type).PolymorphicName;
|
|
l.assure (sType == "unoidl.test.cliure.climaker.PolyStruct2<System.Char>[]");
|
|
sType = ((PolymorphicType) cobj.Args[35].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct2<unoidl.test.cliure.climaker.PolyStruct<System.Char,uno.Any>>[]");
|
|
sType = ((PolymorphicType) cobj.Args[36].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct2<" +
|
|
"unoidl.test.cliure.climaker.PolyStruct<" +
|
|
"unoidl.test.cliure.climaker.PolyStruct<" +
|
|
"System.Char,uno.Any>,System.String>>[]");
|
|
sType = ((PolymorphicType) cobj.Args[37].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct<" +
|
|
"System.String,unoidl.test.cliure.climaker.PolyStruct<" +
|
|
"System.Char,unoidl.test.cliure.climaker.PolyStruct2<" +
|
|
"uno.Any>>>[]");
|
|
sType = ((PolymorphicType) cobj.Args[38].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct<" +
|
|
"unoidl.test.cliure.climaker.PolyStruct<System.Char,uno.Any>," +
|
|
"unoidl.test.cliure.climaker.PolyStruct2<System.Char>>[]");
|
|
//arg 401 - arg405
|
|
sType = ((PolymorphicType) cobj.Args[39].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct2<System.Char>[][]");
|
|
sType = ((PolymorphicType) cobj.Args[40].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct2<" +
|
|
"unoidl.test.cliure.climaker.PolyStruct<System.Char,uno.Any>>[][]");
|
|
sType = ((PolymorphicType) cobj.Args[41].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct2<" +
|
|
"unoidl.test.cliure.climaker.PolyStruct<" +
|
|
"unoidl.test.cliure.climaker.PolyStruct<" +
|
|
"System.Char,uno.Any>,System.String>>[][]");
|
|
sType = ((PolymorphicType) cobj.Args[42].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct<" +
|
|
"System.String,unoidl.test.cliure.climaker.PolyStruct<" +
|
|
"System.Char,unoidl.test.cliure.climaker.PolyStruct2<" +
|
|
"uno.Any>>>[][]");
|
|
sType = ((PolymorphicType) cobj.Args[43].Type).PolymorphicName;
|
|
l.assure( sType == "unoidl.test.cliure.climaker.PolyStruct<" +
|
|
"unoidl.test.cliure.climaker.PolyStruct<System.Char,uno.Any>," +
|
|
"unoidl.test.cliure.climaker.PolyStruct2<System.Char>>[][]");
|
|
|
|
|
|
|
|
|
|
}
|
|
catch (Exception)
|
|
{
|
|
l.assure(false);
|
|
}
|
|
}
|
|
|
|
void testSingletons(Logger l)
|
|
{
|
|
l.Function = "testSingletons";
|
|
Context c = new Context(Context.test_kind.NORMAL);
|
|
try {
|
|
XTest obj = S4.get(c);
|
|
l.assure(obj != null);
|
|
} catch (Exception) {
|
|
l.assure(false);
|
|
}
|
|
|
|
/** Case context fails to provide singleton, a DeploymentException should be thrown.
|
|
*/
|
|
c = new Context(Context.test_kind.CREATION_FAILED);
|
|
try {
|
|
XTest obj = S4.get(c);
|
|
l.assure(obj != null);
|
|
} catch (ucss.uno.DeploymentException e) {
|
|
Type t = typeof(unoidl.test.cliure.climaker.S4);
|
|
l.assure( e.Message.IndexOf(t.FullName) != -1);
|
|
} catch (System.Exception) {
|
|
l.assure(false);
|
|
}
|
|
}
|
|
|
|
void testAttributes(Logger l)
|
|
{
|
|
l.Function = "testAttributes";
|
|
//oneway attribute
|
|
Type typeXTest = typeof(unoidl.test.cliure.climaker.XTest);
|
|
object[] arAttr = typeXTest.GetMethod("testOneway").GetCustomAttributes(false);
|
|
if (arAttr.Length == 1)
|
|
l.assure(typeof(uno.OnewayAttribute).Equals(arAttr[0].GetType()));
|
|
else
|
|
l.assure(false);
|
|
|
|
//test exceptions
|
|
arAttr = typeXTest.GetMethod("testExceptions").GetCustomAttributes(false);
|
|
if (arAttr.Length == 1 && arAttr[0].GetType() == typeof(uno.ExceptionAttribute))
|
|
{
|
|
uno.ExceptionAttribute attr = arAttr[0] as uno.ExceptionAttribute;
|
|
if (attr != null && attr.Raises.Length == 2)
|
|
{
|
|
l.assure(attr.Raises[0] == typeof(unoidl.com.sun.star.uno.Exception));
|
|
l.assure(attr.Raises[1] == typeof(unoidl.com.sun.star.lang.ClassNotFoundException));
|
|
}
|
|
else
|
|
l.assure(false);
|
|
}
|
|
else
|
|
l.assure(false);
|
|
|
|
//function test must not have the oneway attribute and Exception attribute
|
|
arAttr = typeXTest.GetMethod("test").GetCustomAttributes(false);
|
|
l.assure(arAttr.Length == 0);
|
|
|
|
//test exceptions on service constructor methods
|
|
Type typeS1 = typeof(unoidl.test.cliure.climaker.S1);
|
|
arAttr = typeS1.GetMethod("create3").GetCustomAttributes(false);
|
|
if (arAttr.Length == 1 && arAttr[0].GetType() == typeof(uno.ExceptionAttribute))
|
|
{
|
|
uno.ExceptionAttribute attr = arAttr[0] as uno.ExceptionAttribute;
|
|
if (attr != null && attr.Raises.Length == 4)
|
|
{
|
|
l.assure(attr.Raises[0] == typeof(unoidl.com.sun.star.uno.RuntimeException));
|
|
l.assure(attr.Raises[1] == typeof(unoidl.com.sun.star.lang.ClassNotFoundException));
|
|
l.assure(attr.Raises[2] == typeof(unoidl.com.sun.star.lang.IllegalAccessException));
|
|
l.assure(attr.Raises[3] == typeof(unoidl.com.sun.star.uno.DeploymentException));
|
|
}
|
|
else
|
|
l.assure(false);
|
|
}
|
|
else
|
|
l.assure(false);
|
|
|
|
//create1 does not have exceptions
|
|
arAttr = typeS1.GetMethod("create1").GetCustomAttributes(false);
|
|
l.assure(arAttr.Length == 0);
|
|
|
|
//test exceptions of UNO interface attributes
|
|
arAttr = typeXTest.GetProperty("A3").GetGetMethod().GetCustomAttributes(false);
|
|
if (arAttr.Length == 1)
|
|
{
|
|
uno.ExceptionAttribute attr = arAttr[0] as uno.ExceptionAttribute;
|
|
if (attr != null && attr.Raises.Length == 2)
|
|
{
|
|
l.assure(attr.Raises[0] == typeof(unoidl.com.sun.star.uno.Exception));
|
|
l.assure(attr.Raises[1] == typeof(unoidl.com.sun.star.lang.ClassNotFoundException));
|
|
}
|
|
else
|
|
l.assure(false);
|
|
}
|
|
else
|
|
l.assure(false);
|
|
|
|
arAttr = typeXTest.GetProperty("A3").GetSetMethod().GetCustomAttributes(false);
|
|
if (arAttr.Length == 1)
|
|
{
|
|
uno.ExceptionAttribute attr = arAttr[0] as uno.ExceptionAttribute;
|
|
if (attr != null && attr.Raises.Length == 1)
|
|
l.assure(attr.Raises[0] == typeof(unoidl.com.sun.star.uno.RuntimeException));
|
|
else
|
|
l.assure(false);
|
|
}
|
|
else
|
|
l.assure(false);
|
|
|
|
//attribute A1 must have the ExceptionAttribute
|
|
l.assure(typeXTest.GetProperty("A1").GetGetMethod().GetCustomAttributes(false).Length == 0);
|
|
l.assure(typeXTest.GetProperty("A1").GetSetMethod().GetCustomAttributes(false).Length == 0);
|
|
|
|
//Test BoundAttribute
|
|
BoundAttribute bound = (BoundAttribute) Attribute.GetCustomAttribute(
|
|
typeXTest.GetProperty("A1"), typeof(BoundAttribute));
|
|
l.assure(bound != null);
|
|
|
|
bound = (BoundAttribute) Attribute.GetCustomAttribute(
|
|
typeXTest.GetProperty("A3"), typeof(BoundAttribute));
|
|
l.assure(bound == null);
|
|
}
|
|
|
|
void testPolyStructAttributes(Logger l)
|
|
{
|
|
l.Function = "testPolyStructAttributes";
|
|
//Test polymorphic struct
|
|
Type typeStruct = typeof(unoidl.test.cliure.climaker.PolyStruct);
|
|
object[] arAttr = typeStruct.GetCustomAttributes(false);
|
|
if (arAttr.Length == 1)
|
|
{
|
|
try {
|
|
uno.TypeParametersAttribute attr = (uno.TypeParametersAttribute) arAttr[0];
|
|
string[] arNames = new string[]{"if", "else"};
|
|
l.assure(attr != null && attr.Parameters.ToString().Equals(arNames.ToString()));
|
|
}catch(Exception ) {
|
|
l.assure(false);
|
|
}
|
|
}
|
|
else
|
|
l.assure(false);
|
|
l.assure(typeof(unoidl.test.cliure.climaker.Struct1).GetCustomAttributes(false).Length == 0);
|
|
//member of a polymorphic struct with a parameterized type have also an attribute
|
|
arAttr = typeStruct.GetField("member1").GetCustomAttributes(false);
|
|
if (arAttr.Length == 1)
|
|
{
|
|
uno.ParameterizedTypeAttribute attr = arAttr[0] as uno.ParameterizedTypeAttribute;
|
|
l.assure(attr != null && attr.Type == "if");
|
|
}
|
|
else
|
|
l.assure(false);
|
|
|
|
|
|
//test instantiated polymorphic struct: return value
|
|
// Type typeXTest = typeof(XTest);
|
|
// arAttr = typeXTest.GetMethod("testPolyStruct").ReturnTypeCustomAttributes.GetCustomAttributes(false);
|
|
// if (arAttr.Length == 1)
|
|
// {
|
|
// uno.TypeArgumentsAttribute attr = arAttr[0] as uno.TypeArgumentsAttribute;
|
|
// l.assure(attr != null && attr.Arguments.Length == 2
|
|
// &&attr.Arguments[0] == typeof(char)
|
|
// && attr.Arguments[1] == typeof(int));
|
|
// }
|
|
// else
|
|
// l.assure(false);
|
|
// arAttr = typeXTest.GetMethod("testPolyStruct").GetCustomAttributes(false);
|
|
}
|
|
|
|
// private XComponentContext context;
|
|
|
|
void testPolymorphicType(Logger l)
|
|
{
|
|
l.Function = "testPolymorphicType";
|
|
string name = "unoidl.test.cliure.climaker.PolyStruct<System.Int32,System.Int32>";
|
|
|
|
uno.PolymorphicType t1 = PolymorphicType.GetType(
|
|
typeof(unoidl.test.cliure.climaker.PolyStruct), name);
|
|
|
|
uno.PolymorphicType t2 = PolymorphicType.GetType(
|
|
typeof(unoidl.test.cliure.climaker.PolyStruct ), name);
|
|
|
|
l.assure(t1 == t2);
|
|
l.assure(t1.PolymorphicName == name);
|
|
l.assure(t1.OriginalType == typeof(unoidl.test.cliure.climaker.PolyStruct));
|
|
|
|
}
|
|
|
|
void testInterface(Logger l)
|
|
{
|
|
l.Function = "testInterface";
|
|
try {
|
|
Context c = new Context(Context.test_kind.NORMAL);
|
|
XTest obj = S1.create1(c);
|
|
bool aBool = true;
|
|
byte aByte = 0xff;
|
|
short aShort = 0x7fff;
|
|
ushort aUShort = 0xffff;
|
|
int aInt = 0x7fffffff;
|
|
uint aUInt = 0xffffffff;
|
|
long aLong = 0x7fffffffffffffff;
|
|
ulong aULong = 0xffffffffffffffff;
|
|
float aFloat = 0.314f;
|
|
double aDouble = 0.314d;
|
|
char aChar = 'A';
|
|
string aString = "Hello World";
|
|
Type aType = typeof(XTest);
|
|
Any aAny = new Any(typeof(XTest), obj);
|
|
Enum2 aEnum2 = Enum2.VALUE2;
|
|
Struct1 aStruct1 = new Struct1();
|
|
object aXInterface = new object();
|
|
ucss.lang.XComponent aXComponent = (ucss.lang.XComponent) obj;
|
|
bool[] aSeqBool = {true, false, true};
|
|
|
|
obj.inParameters(aBool, aByte, aShort, aUShort,
|
|
aInt, aUInt, aLong, aULong,
|
|
aFloat, aDouble, aChar, aString,
|
|
aType, aAny,aEnum2, aStruct1,
|
|
aXInterface, aXComponent, aSeqBool);
|
|
|
|
bool outBool;
|
|
byte outByte;
|
|
short outShort;
|
|
ushort outUShort;
|
|
int outInt;
|
|
uint outUInt;
|
|
long outLong;
|
|
ulong outULong;
|
|
float outFloat;
|
|
double outDouble;
|
|
char outChar;
|
|
string outString;
|
|
Type outType;
|
|
Any outAny;
|
|
Enum2 outEnum2;
|
|
Struct1 outStruct1;
|
|
object outXInterface;
|
|
ucss.lang.XComponent outXComponent;
|
|
bool[] outSeqBool;
|
|
|
|
obj.outParameters(out outBool, out outByte, out outShort, out outUShort,
|
|
out outInt, out outUInt, out outLong, out outULong,
|
|
out outFloat, out outDouble, out outChar, out outString,
|
|
out outType, out outAny, out outEnum2, out outStruct1,
|
|
out outXInterface, out outXComponent, out outSeqBool);
|
|
|
|
l.assure(aBool == outBool);
|
|
l.assure(aByte == outByte);
|
|
l.assure(aShort == outShort);
|
|
l.assure(aUShort == outUShort);
|
|
l.assure(aInt == outInt);
|
|
l.assure(aUInt == outUInt);
|
|
l.assure(aLong == outLong);
|
|
l.assure(aULong == outULong);
|
|
l.assure(aFloat == outFloat);
|
|
l.assure(aDouble == outDouble);
|
|
l.assure(aChar == outChar);
|
|
l.assure(aString == outString);
|
|
l.assure(aType == outType);
|
|
l.assure(aAny.Equals(outAny));
|
|
l.assure(aEnum2 == outEnum2);
|
|
l.assure(aStruct1 == outStruct1);
|
|
l.assure(aXInterface == outXInterface);
|
|
l.assure(aXComponent == outXComponent);
|
|
l.assure(aSeqBool == outSeqBool);
|
|
|
|
bool inoutBool = false;
|
|
byte inoutByte = 10;
|
|
short inoutShort = 11;
|
|
ushort inoutUShort = 12;
|
|
int inoutInt = 13;
|
|
uint inoutUInt = 14;
|
|
long inoutLong = 15;
|
|
ulong inoutULong = 16;
|
|
float inoutFloat = 4.134f;
|
|
double inoutDouble = 5.135;
|
|
char inoutChar = 'B';
|
|
string inoutString = "Hello Hamburg";
|
|
Type inoutType = typeof(int);
|
|
Any inoutAny = new Any(inoutInt);
|
|
Enum2 inoutEnum2 = Enum2.VALUE4;
|
|
Struct1 inoutStruct1 = new Struct1();
|
|
object inoutXInterface = new object();
|
|
ucss.lang.XComponent inoutXComponent = (ucss.lang.XComponent) S1.create1(c);
|
|
bool[] inoutSeqBool = {false, true, false};
|
|
|
|
|
|
obj.inoutParameters(ref inoutBool, ref inoutByte, ref inoutShort, ref inoutUShort,
|
|
ref inoutInt, ref inoutUInt, ref inoutLong, ref inoutULong,
|
|
ref inoutFloat, ref inoutDouble, ref inoutChar, ref inoutString,
|
|
ref inoutType, ref inoutAny, ref inoutEnum2, ref inoutStruct1,
|
|
ref inoutXInterface, ref inoutXComponent, ref inoutSeqBool);
|
|
|
|
l.assure(aBool == inoutBool);
|
|
l.assure(aByte == inoutByte);
|
|
l.assure(aShort == inoutShort);
|
|
l.assure(aUShort == inoutUShort);
|
|
l.assure(aInt == inoutInt);
|
|
l.assure(aUInt == inoutUInt);
|
|
l.assure(aLong == inoutLong);
|
|
l.assure(aULong == inoutULong);
|
|
l.assure(aFloat == inoutFloat);
|
|
l.assure(aDouble == inoutDouble);
|
|
l.assure(aChar == inoutChar);
|
|
l.assure(aString == inoutString);
|
|
l.assure(aType == inoutType);
|
|
l.assure(aAny.Equals(inoutAny));
|
|
l.assure(aEnum2 == inoutEnum2);
|
|
l.assure(aStruct1 == inoutStruct1);
|
|
l.assure(aXInterface == inoutXInterface);
|
|
l.assure(aXComponent == inoutXComponent);
|
|
l.assure(aSeqBool == inoutSeqBool);
|
|
|
|
|
|
//now check the return values
|
|
obj.inParameters(aBool, aByte, aShort, aUShort,
|
|
aInt, aUInt, aLong, aULong,
|
|
aFloat, aDouble, aChar, aString,
|
|
aType, aAny,aEnum2, aStruct1,
|
|
aXInterface, aXComponent, aSeqBool);
|
|
|
|
l.assure(obj.retBoolean() == aBool);
|
|
l.assure(obj.retByte() == aByte);
|
|
l.assure(obj.retShort() == aShort);
|
|
l.assure(obj.retUShort() == aUShort);
|
|
l.assure(obj.retLong() == aInt);
|
|
l.assure(obj.retULong() == aUInt);
|
|
l.assure(obj.retHyper() == aLong);
|
|
l.assure(obj.retUHyper() == aULong);
|
|
l.assure(obj.retFloat() == aFloat);
|
|
l.assure(obj.retDouble() == aDouble);
|
|
l.assure(obj.retChar() == aChar);
|
|
l.assure(obj.retString() == aString);
|
|
l.assure(obj.retType() == aType);
|
|
l.assure(obj.retAny().Equals(aAny));
|
|
l.assure(obj.retEnum() == aEnum2);
|
|
l.assure(obj.retStruct1() == aStruct1);
|
|
l.assure(obj.retXInterface() == aXInterface);
|
|
l.assure(obj.retXComponent() == aXComponent);
|
|
l.assure(obj.retSeqBool() == aSeqBool);
|
|
|
|
|
|
obj = S1.create1(c);
|
|
obj.attrBoolean = true;
|
|
l.assure(obj.attrBoolean == true);
|
|
obj.attrByte = aByte;
|
|
l.assure(obj.attrByte == aByte);
|
|
obj.attrShort = aShort;
|
|
l.assure(obj.attrShort == aShort);
|
|
obj.attrUShort = aUShort;
|
|
l.assure(obj.attrUShort == aUShort);
|
|
obj.attrLong = aInt;
|
|
l.assure(obj.attrLong == aInt);
|
|
obj.attrULong = aUInt;
|
|
l.assure(obj.attrULong == aUInt);
|
|
obj.attrHyper = aLong;
|
|
l.assure(obj.attrHyper == aLong);
|
|
obj.attrUHyper = aULong;
|
|
l.assure(obj.attrUHyper == aULong);
|
|
obj.attrFloat = aFloat;
|
|
l.assure(obj.attrFloat == aFloat);
|
|
obj.attrDouble = aDouble;
|
|
l.assure(obj.attrDouble == aDouble);
|
|
obj.attrChar = aChar;
|
|
l.assure(obj.attrChar == aChar);
|
|
obj.attrString = aString;
|
|
l.assure(obj.attrString == aString);
|
|
obj.attrType = aType;
|
|
l.assure(obj.attrType == aType);
|
|
obj.attrAny = aAny;
|
|
l.assure(obj.attrAny.Equals(aAny));
|
|
obj.attrEnum2 = aEnum2;
|
|
l.assure(obj.attrEnum2 == aEnum2);
|
|
obj.attrStruct1 = aStruct1;
|
|
l.assure(obj.attrStruct1 == aStruct1);
|
|
obj.attrXInterface = aXInterface;
|
|
l.assure(obj.attrXInterface == aXInterface);
|
|
obj.attrXComponent = aXComponent;
|
|
l.assure(obj.attrXComponent == aXComponent);
|
|
obj.attrSeqBoolean = aSeqBool;
|
|
l.assure(obj.attrSeqBoolean == aSeqBool);
|
|
} catch (Exception )
|
|
{
|
|
l.assure(false);
|
|
}
|
|
}
|
|
|
|
public void testAny(Logger l)
|
|
{
|
|
l.Function = "testAny";
|
|
//create any with valid and invalid arguments
|
|
try
|
|
{
|
|
Any a = new Any(null, null);
|
|
l.assure(false);
|
|
}
|
|
catch(System.Exception e)
|
|
{
|
|
l.assure(e.Message.IndexOf("Any") != -1);
|
|
}
|
|
try
|
|
{
|
|
Any a = new Any(typeof(int), null);
|
|
l.assure(false);
|
|
}
|
|
catch(System.Exception e)
|
|
{
|
|
l.assure(e.Message.IndexOf("Any") != -1);
|
|
}
|
|
|
|
|
|
try
|
|
{
|
|
Any a = new Any(typeof(unoidl.com.sun.star.uno.XComponentContext), null);
|
|
a = new Any('a');
|
|
a = new Any((sbyte)1);
|
|
}
|
|
catch (System.Exception)
|
|
{
|
|
l.assure(false);
|
|
}
|
|
|
|
//test polymorphic struct
|
|
try
|
|
{
|
|
Any a = new Any(typeof(unoidl.test.cliure.climaker.PolyStruct),
|
|
new PolyStruct());
|
|
l.assure(false);
|
|
}
|
|
catch (System.Exception e)
|
|
{
|
|
l.assure(e.Message.IndexOf("Any") != -1);
|
|
}
|
|
try
|
|
{
|
|
Any a = new Any(uno.PolymorphicType.GetType(
|
|
typeof(unoidl.test.cliure.climaker.PolyStruct),
|
|
"unoidl.test.cliure.climaker.PolyStruct<System.Char>"),
|
|
new PolyStruct('A', 10));
|
|
}
|
|
catch (System.Exception )
|
|
{
|
|
l.assure(false);
|
|
}
|
|
|
|
//test Any.Equals
|
|
|
|
Any aVoid = Any.VOID;
|
|
l.assure(aVoid.Equals((object) Any.VOID));
|
|
l.assure(aVoid.Equals(Any.VOID));
|
|
|
|
l.assure(aVoid.Equals(new Any("")) == false);
|
|
|
|
Any a1 = new Any(10);
|
|
Any a2 = a1;
|
|
l.assure(a1.Equals(a2));
|
|
|
|
a1 = new Any(typeof(unoidl.com.sun.star.uno.XComponentContext), null);
|
|
l.assure(a1.Equals(a2) == false);
|
|
a2 = a1;
|
|
l.assure(a1.Equals(a2));
|
|
l.assure(a1.Equals(null) == false);
|
|
l.assure(a1.Equals(new object()) == false);
|
|
}
|
|
}
|