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()); }
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()); }