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)); }
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); }
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); }
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); }