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.
83 lines
2.0 KiB
83 lines
2.0 KiB
using System; |
|
using NUnit.Framework; |
|
|
|
namespace Tests { |
|
|
|
[TestFixture] |
|
public class VirtualTests { |
|
|
|
[Test] |
|
public void TestVirtualCall () |
|
{ |
|
var cls = new NumberClass (5); |
|
Assert.AreEqual (5, cls.Number, "#1"); |
|
Assert.AreEqual (-5, cls.NegativeNumber, "#2"); |
|
} |
|
|
|
[Test] |
|
public void TestVirtualCallOnBaseClass () |
|
{ |
|
var cls = new AdderClass (8); |
|
Assert.AreEqual (8, cls.Number, "#1"); |
|
|
|
cls.Add (2); |
|
Assert.AreEqual (10, ((NumberClass)cls).Number, "#2"); |
|
} |
|
|
|
[Test] |
|
[Ignore ("virtual inheritance not implemented yet")] |
|
public void TestVirtualCallOnVirtualBaseClass () |
|
{ |
|
var cls = new AdderClassWithVirtualBase (8); |
|
Assert.AreEqual (8, cls.Number, "#1"); |
|
|
|
cls.Add (2); |
|
Assert.AreEqual (10, ((NumberClass)cls).Number, "#2"); |
|
} |
|
|
|
[Test] |
|
public void TestMultipleBases () |
|
{ |
|
var cls = new ClassWithNonVirtualBases (5, 3); |
|
Assert.AreEqual (5, cls.Number, "#1"); |
|
Assert.AreEqual (3, ((MultiplierClass)cls).Number, "#2"); |
|
|
|
cls.Add (4); |
|
Assert.AreEqual (9, cls.Number, "#3"); |
|
Assert.AreEqual (3, ((MultiplierClass)cls).Number, "#4"); |
|
|
|
cls.Multiply (10); |
|
Assert.AreEqual (9, cls.Number, "#5"); |
|
Assert.AreEqual (30, ((MultiplierClass)cls).Number, "#6"); |
|
} |
|
|
|
[Test] |
|
[Ignore ("virtual inheritance not implemented yet")] |
|
public void TestMultipleVirtualBases () |
|
{ |
|
var cls = new ClassWithVirtualBases (4); |
|
Assert.AreEqual (4, cls.Number, "#1"); |
|
Assert.AreEqual (4, ((MultiplierClassWithVirtualBase)cls).Number, "#2"); |
|
|
|
cls.Add (5); |
|
Assert.AreEqual (9, cls.Number, "#3"); |
|
Assert.AreEqual (9, ((MultiplierClassWithVirtualBase)cls).Number, "#4"); |
|
|
|
cls.Multiply (6); |
|
Assert.AreEqual (30, cls.Number, "#5"); |
|
Assert.AreEqual (30, ((MultiplierClassWithVirtualBase)cls).Number, "#6"); |
|
} |
|
|
|
[Test] |
|
public void TestClassThatOverridesStuff () |
|
{ |
|
var cls = new ClassThatOverridesStuff (5, 3); |
|
Assert.AreEqual (3, cls.Number, "#1"); |
|
Assert.AreEqual (3, ((NumberClass)cls).Number, "#2"); |
|
Assert.AreEqual (-5, cls.NegativeNumber, "#3"); |
|
} |
|
|
|
|
|
} |
|
} |
|
|
|
|