public void GetValue_ImplementationsAddsGetAccessor()
        {
            var instance = new ClassWithReferenceType <SimpleReferenceType>();
            var value    = new SimpleReferenceType();

            instance.ImplicitInterfaceScalar = value;

            _declarationPropertyInformationStub.Stub(stub => stub.GetGetMethod(true)).Return(null);
            _implementationPropertyInformationStub.Stub(stub => stub.GetGetMethod(true)).Return(
                MethodInfoAdapter.Create(typeof(ClassWithReferenceType <SimpleReferenceType>).GetProperty("ImplicitInterfaceScalar").GetGetMethod(true)));

            Assert.That(_interfaceImplementationPropertyInformation.GetValue(instance, null), Is.SameAs(value));
        }
        public void SetValue()
        {
            var instance = new ClassWithReferenceType <SimpleReferenceType>();
            var value    = new SimpleReferenceType();

            _declarationPropertyInformationStub.Stub(stub => stub.GetSetMethod(true)).Return(null);
            _implementationPropertyInformationStub.Stub(stub => stub.GetSetMethod(true)).Return(
                MethodInfoAdapter.Create(typeof(ClassWithReferenceType <SimpleReferenceType>).GetProperty("ImplicitInterfaceScalar").GetSetMethod(true)));

            _mixinIntroducedPropertyInformation.SetValue(instance, value, null);

            Assert.That(instance.ImplicitInterfaceScalar, Is.SameAs(value));
        }