public void DoubleOverride()
        {
            ClassOverridingSingleMixinMethod com = CreateMixedObject <ClassOverridingSingleMixinMethod> (typeof(MixinOverridingClassMethod));
            var comAsIAbstractMixin = com as IMixinOverridingClassMethod;

            Assert.That(comAsIAbstractMixin, Is.Not.Null);
            Assert.That(comAsIAbstractMixin.AbstractMethod(25), Is.EqualTo("ClassOverridingSingleMixinMethod.AbstractMethod-25"));
            Assert.That(com.OverridableMethod(13), Is.EqualTo("MixinOverridingClassMethod.OverridableMethod-13"));
        }
        public void SerializationOfGeneratedMixinWorks()
        {
            ClassOverridingSingleMixinMethod com = CreateMixedObject <ClassOverridingSingleMixinMethod> (typeof(MixinOverridingClassMethod));
            var comAsIfc = com as IMixinOverridingClassMethod;

            Assert.That(Mixin.Get <MixinOverridingClassMethod> (com), Is.Not.Null);

            Assert.That(comAsIfc, Is.Not.Null);
            Assert.That(comAsIfc.AbstractMethod(25), Is.EqualTo("ClassOverridingSingleMixinMethod.AbstractMethod-25"));
            Assert.That(com.OverridableMethod(13), Is.EqualTo("MixinOverridingClassMethod.OverridableMethod-13"));

            ClassOverridingSingleMixinMethod com2 = Serializer.SerializeAndDeserialize(com);
            var com2AsIfc = com as IMixinOverridingClassMethod;

            Assert.That(Mixin.Get <MixinOverridingClassMethod> (com2), Is.Not.Null);
            Assert.That(Mixin.Get <MixinOverridingClassMethod> (com2), Is.Not.SameAs(Mixin.Get <MixinOverridingClassMethod> (com)));

            Assert.That(com2AsIfc, Is.Not.Null);
            Assert.That(com2AsIfc.AbstractMethod(25), Is.EqualTo("ClassOverridingSingleMixinMethod.AbstractMethod-25"));
            Assert.That(com2.OverridableMethod(13), Is.EqualTo("MixinOverridingClassMethod.OverridableMethod-13"));
        }