public void TestStaticExtension()
    {
        Extensions.IBase1 base1 = new StaticExtensions.ImplementationBoth();
        Extensions.IBase2 base2 = base1 as Extensions.IBase2;

        Assert.IsTrue(base1 is Extensions.IBase2);
        Assert.AreEqual(1, base1.Value());
        Assert.AreEqual(1, base2.Value());
    }
    public void TestDoubleStaticExtension()
    {
        StaticExtensions.ImplementationBothSeparate cls = new StaticExtensions.ImplementationBothSeparate();
        Extensions.IBase1 base1 = cls;
        Extensions.IBase2 base2 = base1 as Extensions.IBase2;

        Assert.AreEqual(0, cls.Value());
        Assert.AreEqual(1, base1.Value());
        Assert.AreEqual(2, base2.Value());
    }
Example #3
0
 public void TestSimple()
 {
     Extensions.IBase1 base1 = DynamicExtensions.Factory.CreateInstance();
     Extensions.IBase2 base2 = ((Extensions.ISubject)base1).GetExtension <Extensions.IBase2>();
     NUnit.Framework.Assert.IsNotNull(base2);
     NUnit.Framework.Assert.AreEqual(2, base2.Value());
     base1 = ((Extensions.ISubject)base2).GetExtension <Extensions.IBase1>();
     NUnit.Framework.Assert.IsNotNull(base1);
     NUnit.Framework.Assert.AreEqual(1, base1.Value());
 }
    public void TestDoubleVirtual()
    {
        StaticExtensions.ImplementationVirtual cls = new StaticExtensions.ImplementationVirtual();
        Extensions.IBase1 base1 = cls;

        Assert.AreEqual(1, cls.Value());
        Assert.IsFalse(cls is Extensions.IBase2);

        cls   = new StaticExtensions.DerivedVirtual();
        base1 = cls;
        Assert.AreEqual(2, cls.Value());
        Assert.IsTrue(base1 is Extensions.IBase2);

        Extensions.IBase2 base2 = base1 as Extensions.IBase2;
        Assert.AreEqual(2, base2.Value());
    }