mirror of https://github.com/mono/CppSharp.git
c-sharpdotnetmonobindingsbridgecclangcpluspluscppsharpglueinteropparserparsingpinvokeswigsyntax-treevisitorsxamarinxamarin-bindings
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
127 lines
3.4 KiB
127 lines
3.4 KiB
using System.Reflection; |
|
using NUnit.Framework; |
|
using Basic; |
|
|
|
[TestFixture] |
|
public class BasicTests |
|
{ |
|
[Test] |
|
public void TestHello() |
|
{ |
|
var hello = new Hello(); |
|
hello.PrintHello("Hello world"); |
|
|
|
Assert.That(hello.add(1, 1), Is.EqualTo(2)); |
|
Assert.That(hello.add(5, 5), Is.EqualTo(10)); |
|
|
|
Assert.IsTrue(hello.test1(3, 3.0f)); |
|
Assert.IsFalse(hello.test1(2, 3.0f)); |
|
|
|
var foo = new Foo { A = 4, B = 7 }; |
|
Assert.That(hello.AddFoo(foo), Is.EqualTo(11)); |
|
Assert.That(hello.AddFooPtr(foo), Is.EqualTo(11)); |
|
Assert.That(hello.AddFooRef(foo), Is.EqualTo(11)); |
|
|
|
var bar = new Bar { A = 4, B = 7 }; |
|
Assert.That(hello.AddBar(bar), Is.EqualTo(11)); |
|
|
|
var retFoo = hello.RetFoo(7, 2.0f); |
|
Assert.That(retFoo.A, Is.EqualTo(7)); |
|
Assert.That(retFoo.B, Is.EqualTo(2.0)); |
|
|
|
var foo2 = new Foo2 { A = 4, B = 2, C = 3 }; |
|
Assert.That(hello.AddFoo(foo2), Is.EqualTo(6)); |
|
Assert.That(hello.AddFoo2(foo2), Is.EqualTo(9)); |
|
|
|
var bar2 = new Bar2 { A = 4, B = 7, C = 3 }; |
|
Assert.That(hello.AddBar2(bar2), Is.EqualTo(14)); |
|
|
|
Assert.That(hello.RetEnum(Enum.A), Is.EqualTo(0)); |
|
Assert.That(hello.RetEnum(Enum.B), Is.EqualTo(2)); |
|
Assert.That(hello.RetEnum(Enum.C), Is.EqualTo(5)); |
|
Assert.That(hello.RetEnum(Enum.D), Is.EqualTo(-2147483648)); |
|
Assert.That(hello.RetEnum(Enum.E), Is.EqualTo(1)); |
|
Assert.That(hello.RetEnum(Enum.F), Is.EqualTo(-9)); |
|
} |
|
|
|
[Test] |
|
public void TestPrimitiveOutParameters() |
|
{ |
|
var hello = new Hello(); |
|
|
|
float f; |
|
Assert.That(hello.TestPrimitiveOut(out f), Is.True); |
|
Assert.That(f, Is.EqualTo(10.0f)); |
|
} |
|
|
|
[Test] |
|
public void TestPrimitiveOutRefParameters() |
|
{ |
|
var hello = new Hello(); |
|
|
|
float f; |
|
Assert.That(hello.TestPrimitiveOutRef(out f), Is.True); |
|
Assert.That(f, Is.EqualTo(10.0f)); |
|
} |
|
|
|
[Test] |
|
public void TestNullRef() |
|
{ |
|
var hello = new Hello (); |
|
Assert.That(hello.RetNull(), Is.Null); |
|
} |
|
|
|
[Test] |
|
public void TestUnaryOperator() |
|
{ |
|
var bar = new Bar { A = 4, B = 7 }; |
|
var barMinus = -bar; |
|
Assert.That(barMinus.A, Is.EqualTo(-bar.A)); |
|
Assert.That(barMinus.B, Is.EqualTo(-bar.B)); |
|
} |
|
|
|
[Test] |
|
public void TestBinaryOperator() |
|
{ |
|
var bar = new Bar { A = 4, B = 7 }; |
|
var bar1 = new Bar { A = 5, B = 10 }; |
|
var barSum = bar + bar1; |
|
Assert.That(barSum.A, Is.EqualTo(bar.A + bar1.A)); |
|
Assert.That(barSum.B, Is.EqualTo(bar.B + bar1.B)); |
|
} |
|
|
|
[Test] |
|
public void TestAmbiguous() |
|
{ |
|
var def = new DefaultParameters(); |
|
def.Foo(1, 2); |
|
def.Bar(); |
|
} |
|
|
|
[Test, Ignore] |
|
public void TestLeftShiftOperator() |
|
{ |
|
Foo2 foo2 = new Foo2(); |
|
foo2.C = 2; |
|
Foo2 result = foo2 << 3; |
|
Assert.That(result.C, Is.EqualTo(16)); |
|
} |
|
|
|
[Test, Ignore] |
|
public void TestAbstractReturnType() |
|
{ |
|
var returnsAbstractFoo = new ReturnsAbstractFoo(); |
|
var abstractFoo = returnsAbstractFoo.getFoo(); |
|
Assert.AreEqual(abstractFoo.pureFunction(), 5); |
|
Assert.AreEqual(abstractFoo.pureFunction1(), 10); |
|
Assert.AreEqual(abstractFoo.pureFunction2(), 15); |
|
} |
|
|
|
[Test] |
|
public void TestANSI() |
|
{ |
|
Foo foo = new Foo(); |
|
Assert.That(foo.GetANSI(), Is.EqualTo("ANSI")); |
|
} |
|
} |
|
|