@ -25,7 +25,6 @@ namespace Tests {
@@ -25,7 +25,6 @@ namespace Tests {
}
[Test]
[Ignore ("virtual inheritance not implemented yet")]
public void TestVirtualCallOnVirtualBaseClass ( )
{
var cls = new AdderClassWithVirtualBase ( 8 ) ;
@ -52,7 +51,6 @@ namespace Tests {
@@ -52,7 +51,6 @@ namespace Tests {
}
[Test]
[Ignore ("virtual inheritance not implemented yet")]
public void TestMultipleVirtualBases ( )
{
var cls = new ClassWithVirtualBases ( 4 ) ;
@ -78,6 +76,51 @@ namespace Tests {
@@ -78,6 +76,51 @@ namespace Tests {
Assert . AreEqual ( 5 , cls . BaseNumber , "#4" ) ;
}
class ManagedOverride1 : NumberClass {
public ManagedOverride1 ( ) : base ( 3 )
{
}
public override int Number {
get {
return 2 5 ;
}
}
}
[Test]
public void TestManagedOverride1 ( )
{
var cls = new ManagedOverride1 ( ) ;
Assert . AreEqual ( - 2 5 , cls . NegativeNumber , "#1" ) ;
}
class ManagedOverride2 : ClassWithNonVirtualBases {
public ManagedOverride2 ( ) : base ( 5 , 3 )
{
}
// override virtual member inherited from non-primary base
public override void Multiply ( int n )
{
this . MultiplierClass . Multiply ( 1 0 ) ;
}
}
[Test]
public void TestManagedOverride2 ( )
{
var cls = new ManagedOverride2 ( ) ;
cls . Multiply ( 3 ) ;
Assert . AreEqual ( 5 , cls . Number , "#1" ) ;
Assert . AreEqual ( 3 0 , ( ( MultiplierClass ) cls ) . Number , "#2" ) ;
cls . CallMultiply ( 2 ) ;
Assert . AreEqual ( 5 , cls . Number , "#3" ) ;
Assert . AreEqual ( 3 0 0 , ( ( MultiplierClass ) cls ) . Number , "#4" ) ;
}
}
}