コード例 #1
0
        public void CanCreateCompositeSetterWithPropertyChain()
        {
            var outer = typeof(Sample).GetProperty("TestInner");
            var inner = typeof(Inner).GetProperty("TestInt");
            var props = new[] { outer, inner }.Select(x => x.ToSettable());

            var set = props.ToSettable();

            set.Member.Should().Be(inner);
            set.Name.Should().Be("TestInner.TestInt");
            set.Type.Should().Be(typeof(int));
            set.CanRead.Should().Be(true);
            set.CanWrite.Should().Be(true);
            set.DeclaringType.Should().Be(typeof(Sample));
        }
コード例 #2
0
        public void CanGetValueFromCompositeSetterWithPropertyChain()
        {
            var outer = typeof(Sample).GetProperty("TestInner");
            var inner = typeof(Inner).GetProperty("TestInt");
            var props = new[] { outer, inner }.Select(x => x.ToSettable());

            var set = props.ToSettable();

            var obj = new Sample() { TestInner = new Inner() { TestInt = 42 } };
            set.Get(obj).Should().Be(42);
        }
コード例 #3
0
        public void CompositeWrapperIsSerializable()
        {
            var outer = typeof(Sample).GetProperty("TestInner");
            var inner = typeof(Inner).GetProperty("TestInt");
            var props = new[] { outer, inner }.Select(x => x.ToSettable());

            var set = props.ToSettable();

            var result = SimpleSerializer.Binary().RoundTrip(set);
            result.Name.Should().Be.Equals(set.Name);
        }
コード例 #4
0
        public void CanSetValueFromCompositeSetterWithPropertyChainWhenTheFirstAlreadyHasValue()
        {
            var outer = typeof(Sample).GetProperty("TestInner");
            var inner = typeof(Inner).GetProperty("TestInt");
            var props = new[] { outer, inner }.Select(x => x.ToSettable());

            var set = props.ToSettable();

            var obj = new Sample() { TestInner = new Inner() };
            set.Set(obj, 42);

            obj.TestInner.TestInt.Should().Be(42);
        }