public void CreateMixinWithMockedTarget_AbstractMixin()
        {
            var thisMock = new ClassOverridingMixinMembers();
            var baseMock = new object();

            MixinTargetMockUtility.CreateMixinWithMockedTarget <MixinWithAbstractMembers, object, object> (thisMock, baseMock);
        }
        public void ThrowsIfAbstractMixinTypeNotSerializable()
        {
            ClassOverridingMixinMembers targetInstance =
                CreateMixedObject <ClassOverridingMixinMembers> (typeof(NotSerializableMixin));

            Serializer.SerializeAndDeserialize(targetInstance);
        }
Пример #3
0
        public void OverrideMixinEvent()
        {
            ClassOverridingMixinMembers com = CreateMixedObject <ClassOverridingMixinMembers> (typeof(MixinWithAbstractMembers));
            var comAsIAbstractMixin         = com as IMixinWithAbstractMembers;

            Assert.That(comAsIAbstractMixin, Is.Not.Null);
            Assert.That(comAsIAbstractMixin.ImplementedEvent(), Is.EqualTo("MixinWithAbstractMembers.ImplementedEvent"));
        }
        public void GeneratedTypeIsSerializable()
        {
            ClassOverridingMixinMembers targetInstance = CreateMixedObject <ClassOverridingMixinMembers> (typeof(MixinWithAbstractMembers));
            var mixin = Mixin.Get <MixinWithAbstractMembers> (targetInstance);

            Assert.That(mixin.GetType().IsSerializable, Is.True);
            Serializer.Serialize(targetInstance);
        }
        public void GeneratedTypeIsDeserializable()
        {
            ClassOverridingMixinMembers targetInstance = CreateMixedObject <ClassOverridingMixinMembers> (typeof(MixinWithAbstractMembers));
            var mixin = Mixin.Get <MixinWithAbstractMembers> (targetInstance);

            mixin.I = 13;

            MixinWithAbstractMembers mixinA = Serializer.SerializeAndDeserialize(mixin);

            Assert.That(mixinA.I, Is.EqualTo(mixin.I));
            Assert.That(mixinA, Is.Not.SameAs(mixin));
        }
        public void RespectsISerializable()
        {
            ClassOverridingMixinMembers targetInstance =
                CreateMixedObject <ClassOverridingMixinMembers> (typeof(AbstractMixinImplementingISerializable));
            var mixin = Mixin.Get <AbstractMixinImplementingISerializable> (targetInstance);

            mixin.I = 15;
            Assert.That(mixin.I, Is.EqualTo(15));

            AbstractMixinImplementingISerializable mixinA = Serializer.SerializeAndDeserialize(mixin);

            Assert.That(mixinA.I, Is.EqualTo(32));
        }
        public void GeneratedTypeCorrectlySerializesThisAndBase()
        {
            ClassOverridingMixinMembers targetInstance = CreateMixedObject <ClassOverridingMixinMembers> (typeof(MixinWithAbstractMembers));
            var mixin = Mixin.Get <MixinWithAbstractMembers> (targetInstance);

            Assert.That(MixinReflector.GetTargetProperty(mixin.GetType()).GetValue(mixin, null), Is.EqualTo(targetInstance));
            Assert.That(MixinReflector.GetNextProperty(mixin.GetType()).GetValue(mixin, null).GetType(), Is.EqualTo(MixinReflector.GetNextCallProxyType(targetInstance)));

            ClassOverridingMixinMembers targetInstanceA = Serializer.SerializeAndDeserialize(targetInstance);
            var mixinA = Mixin.Get <MixinWithAbstractMembers> (targetInstanceA);

            Assert.That(MixinReflector.GetTargetProperty(mixinA.GetType()).GetValue(mixinA, null), Is.EqualTo(targetInstanceA));
            Assert.That(MixinReflector.GetNextProperty(mixinA.GetType()).GetValue(mixinA, null).GetType(), Is.EqualTo(MixinReflector.GetNextCallProxyType(targetInstanceA)));
        }