public void ShouldBindNestedWhenStructInTheMiddle() { var binder = new Binder <ValueContainerClassNotify <ValueContainerStruct <UniversalStub> > >(); binder.Bind(x => x.Value.Value.String).To(x => x.Value.Value.String2); var stub = new ValueContainerClassNotify <ValueContainerStruct <UniversalStub> >(); stub.Value = new ValueContainerStruct <UniversalStub>(new UniversalStub()); using (binder.Attach(stub)) { stub.Value.Value.String2.ShouldBe(null); stub.Value.Value.String = "a"; stub.Value.Value.String2.ShouldBe("a"); stub.Value = new ValueContainerStruct <UniversalStub>(new UniversalStub { String = "b" }); stub.Value.Value.String2.ShouldBe("b"); stub.Value.Value.String = "c"; stub.Value.Value.String2.ShouldBe("c"); } }
public void ShouldBindNestedWhenNoPropertyChangedNotificationsInTheMiddle() { var binder = new Binder <ValueContainerClassNotify <ValueContainerClass <UniversalStub> > >(); binder.Bind(x => x.Value.Value.String).To(x => x.Value.Value.String2); var stub = new ValueContainerClassNotify <ValueContainerClass <UniversalStub> >(); stub.Value = new ValueContainerClass <UniversalStub>(); stub.Value.Value = new UniversalStub(); using (binder.Attach(stub)) { stub.Value.Value.String2.ShouldBe(null); stub.Value.Value.String = "a"; stub.Value.Value.String2.ShouldBe("a"); stub.Value = new ValueContainerClass <UniversalStub> { Value = new UniversalStub { String = "b" } }; stub.Value.Value.String2.ShouldBe("b"); stub.Value.Value.String = "c"; stub.Value.Value.String2.ShouldBe("c"); } }