public void IsChangedNavigationProperty() { TestWrappersFactory testWrappersFactory = new TestWrappersFactory(); TestHusband husband = new TestHusband(); TestWife wife1 = new TestWife(); wife1.Husband = husband; husband.Wife = wife1; TestHusbandWrapper husbandWrapper = testWrappersFactory.GetWrapper <TestHusbandWrapper>(husband); Assert.IsFalse(husbandWrapper.IsChanged); var wife1Wrapper = husbandWrapper.Wife; husbandWrapper.Wife = testWrappersFactory.GetWrapper <TestWifeWrapper>(new TestWife()); Assert.IsTrue(husbandWrapper.IsChanged); husbandWrapper.Wife = wife1Wrapper; Assert.IsFalse(husbandWrapper.IsChanged); }
public void ShouldBeValidAgainWhenIsDeveloperIsSetBackToFalse() { var wrapper = new TestWrappersFactory().GetWrapper <TestFriendWrapper>(_testFriend); wrapper.Emails.Clear(); Assert.IsFalse(wrapper.IsDeveloper); Assert.IsTrue(wrapper.IsValid); wrapper.IsDeveloper = true; Assert.IsFalse(wrapper.IsValid); wrapper.IsDeveloper = false; Assert.IsTrue(wrapper.IsValid); var emailsErrors = wrapper.GetErrors(nameof(wrapper.Emails)).Cast <string>().ToList(); Assert.AreEqual(0, emailsErrors.Count); var isDeveloperErrors = wrapper.GetErrors(nameof(wrapper.IsDeveloper)).Cast <string>().ToList(); Assert.AreEqual(0, isDeveloperErrors.Count); }
public void ShouldHaveErrorsAndNotBeValidWhenIsDeveloperIsTrueAndNoEmailExists() { var expectedError = "A developer must have an email-address"; var wrapper = new TestWrappersFactory().GetWrapper <TestFriendWrapper>(_testFriend); wrapper.Emails.Clear(); Assert.IsFalse(wrapper.IsDeveloper); Assert.IsTrue(wrapper.IsValid); wrapper.IsDeveloper = true; Assert.IsFalse(wrapper.IsValid); var emailsErrors = wrapper.GetErrors(nameof(wrapper.Emails)).Cast <string>().ToList(); Assert.AreEqual(1, emailsErrors.Count); Assert.AreEqual(expectedError, emailsErrors.Single()); var isDeveloperErrors = wrapper.GetErrors(nameof(wrapper.IsDeveloper)).Cast <string>().ToList(); Assert.AreEqual(1, isDeveloperErrors.Count); Assert.AreEqual(expectedError, isDeveloperErrors.Single()); }
public void ShouldRaisePropertyChangedEventForIsValidOfRootWhenAddingInvalidItem() { TestWrappersFactory testWrappersFactory = new TestWrappersFactory(); var fired = false; var wrapper = testWrappersFactory.GetWrapper <TestFriendWrapper>(_testFriend); wrapper.PropertyChanged += (s, e) => { if (e.PropertyName == "IsValid") { fired = true; } }; var emailToAdd = testWrappersFactory.GetWrapper <TestFriendEmailWrapper>(new TestFriendEmail()); wrapper.Emails.Add(emailToAdd); Assert.IsTrue(fired); fired = false; emailToAdd.Email = "*****@*****.**"; Assert.IsTrue(fired); }
public void ShouldGetValueOfUnderlyingModelProperty() { var wrapper = new TestWrappersFactory().GetWrapper <TestFriendWrapper>(_testFriend); Assert.AreEqual(_testFriend.FirstName, wrapper.FirstName); }
public void ShouldContainModelInModelProperty() { var wrapper = new TestWrappersFactory().GetWrapper <TestFriendWrapper>(_testFriend); Assert.AreEqual(_testFriend, wrapper.Model); }
public void NavigationPropertiesTest() { TestWrappersFactory testWrappersFactory = new TestWrappersFactory(); TestHusband husband = new TestHusband(); TestWife wife = new TestWife(); wife.Husband = husband; husband.Wife = wife; TestHusbandWrapper husbandWrapper = testWrappersFactory.GetWrapper <TestHusbandWrapper>(husband); bool fired = false; husbandWrapper.PropertyChanged += (sender, args) => { fired = true; }; Assert.IsFalse(husbandWrapper.IsChanged); var wifeWrapper = husbandWrapper.Wife; wifeWrapper.N = 10; Assert.IsTrue(husbandWrapper.IsChanged); Assert.IsTrue(fired); TestWife otherTestWife = new TestWife(); TestWifeWrapper otherTestWifeWrapper = testWrappersFactory.GetWrapper <TestWifeWrapper>(otherTestWife); Assert.IsFalse(husbandWrapper.WifeIsChanged); husbandWrapper.Wife = otherTestWifeWrapper; Assert.IsTrue(husbandWrapper.WifeIsChanged); Assert.IsTrue(husbandWrapper.IsChanged); Assert.AreEqual(wifeWrapper, husbandWrapper.WifeOriginalValue); fired = false; wifeWrapper.N = 33; Assert.IsFalse(fired); fired = false; husbandWrapper.Wife = null; Assert.AreEqual(husbandWrapper.Wife, null); Assert.IsTrue(fired); Assert.IsTrue(husbandWrapper.WifeIsChanged); Assert.IsTrue(husbandWrapper.IsChanged); Assert.AreEqual(wifeWrapper, husbandWrapper.WifeOriginalValue); fired = false; TestChildWrapper childWrapper = testWrappersFactory.GetWrapper <TestChildWrapper>(new TestChild { Husband = husband }); husbandWrapper.Children.Add(childWrapper); Assert.IsTrue(fired); //var husbandWrp = TestWrappersFactory.GetWrapper <TestHusband, TestHusbandWrapper>(husbandWrapper.Model); fired = false; childWrapper.Name += "new"; Assert.IsTrue(fired); husbandWrapper.Children.Remove(childWrapper); fired = false; childWrapper.Name += "new2"; Assert.IsFalse(fired); }