public void TestClassInterfaceBadMethodPrototype()
        {
            // ReSharper disable once NotAccessedVariable
            ClassInterface classInterface;

            Assert.ThrowsException <ArgumentException>(() => classInterface = new TesterClassInterface <TheTesterClass2>());
        }
        public void TestClassInterfaceWithParent()
        {
            var classInterface = new TesterClassInterface <TheDescendant>();

            classInterface.TestMethod(10); // call "overridden" TestMethod()
            Assert.AreEqual(11, TheTesterClass.Value);
            classInterface.TestMethodInBase(10);
            Assert.AreEqual(12, TheTesterClass.Value);
        }
        public void TestClassInterface()
        {
            var classInterface = new TesterClassInterface <TheTesterClass>();

            classInterface.TestMethod(10);
            Assert.AreEqual(10, TheTesterClass.Value);
            classInterface.TestMethodInBase(10);
            Assert.AreEqual(12, TheTesterClass.Value);
        }