Ejemplo n.º 1
0
        public void ShouldBeValidAgainWhenEmailIsAdded()
        {
            TestWrappersFactory testWrappersFactory = new TestWrappersFactory();

            var wrapper = testWrappersFactory.GetWrapper <TestFriendWrapper>(_testFriend);

            wrapper.Emails.Clear();
            Assert.IsFalse(wrapper.IsDeveloper);
            Assert.IsTrue(wrapper.IsValid);

            wrapper.IsDeveloper = true;
            Assert.IsFalse(wrapper.IsValid);

            wrapper.Emails.Add(testWrappersFactory.GetWrapper <TestFriendEmailWrapper>(new TestFriendEmail {
                Email = "*****@*****.**"
            }));
            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);
        }
Ejemplo n.º 2
0
        public void AcceptAndRejectChangesInObjectsWithNavigationProperty()
        {
            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);

            husbandWrapper.Wife.N++;
            Assert.IsTrue(husbandWrapper.IsChanged);
            husbandWrapper.AcceptChanges();
            Assert.IsFalse(husbandWrapper.IsChanged);

            var oldId = husbandWrapper.Wife.Id;

            husbandWrapper.Wife.Id = Guid.NewGuid();
            Assert.IsTrue(husbandWrapper.IsChanged);
            husbandWrapper.RejectChanges();
            Assert.IsFalse(husbandWrapper.IsChanged);
            Assert.AreEqual(oldId, husbandWrapper.Wife.Id);

            TestChildWrapper childWrapper = testWrappersFactory.GetWrapper <TestChildWrapper>(new TestChild {
                Husband = husband
            });

            husbandWrapper.Children.Add(childWrapper);
            Assert.IsTrue(husbandWrapper.IsChanged);
        }
Ejemplo n.º 3
0
        public void NavigationCollectionPropertiesTest()
        {
            TestWrappersFactory testWrappersFactory = new TestWrappersFactory();

            TestFriendGroup group = new TestFriendGroup {
                Name = "group1", FriendTests = new List <TestFriend>()
            };
            TestFriend testFriend = new TestFriend
            {
                FirstName         = "Thomas",
                TestFriendAddress = new TestFriendAddress {
                    City = "CityOld"
                },
                TestFriendGroup = group,
                Emails          = new List <TestFriendEmail>()
            };

            group.FriendTests.Add(testFriend);

            TestFriendWrapper wrapper = testWrappersFactory.GetWrapper <TestFriendWrapper>(testFriend);

            Assert.IsFalse(wrapper.IsChanged);

            var old = wrapper.TestFriendAddress;

            wrapper.TestFriendAddress = testWrappersFactory.GetWrapper <TestFriendAddressWrapper>(new TestFriendAddress {
                City = "CityNew"
            });
            Assert.IsTrue(wrapper.IsChanged);

            //wrapper.Test_FriendAddress = old;
            //Assert.IsFalse(wrapper.IsChanged);
        }
Ejemplo n.º 4
0
        public void ShouldBeInSyncAfterAddingEmail()
        {
            var wrappersFactory = new TestWrappersFactory();

            _testFriend.Emails.Remove(_testFriendEmail);
            var wrapper = wrappersFactory.GetWrapper <TestFriendWrapper>(_testFriend);

            wrapper.Emails.Add(wrappersFactory.GetWrapper <TestFriendEmailWrapper>(_testFriendEmail));
            CheckIfModelEmailsCollectionIsInSync(wrapper);
        }
Ejemplo n.º 5
0
        public void ComplexWrapperAcceptAndReject()
        {
            TestWrappersFactory testWrappersFactory = new TestWrappersFactory();

            TestHusband husband = new TestHusband();
            TestWife    wife1   = new TestWife();
            TestChild   child1  = new TestChild {
                Husband = husband, Wife = wife1
            };
            TestChild child2 = new TestChild {
                Husband = husband, Wife = wife1
            };

            wife1.Husband = husband;
            husband.Wife  = wife1;
            husband.Children.Add(child1);
            husband.Children.Add(child2);

            TestHusbandWrapper husbandWrapper = testWrappersFactory.GetWrapper <TestHusbandWrapper>(husband);

            Assert.IsFalse(husbandWrapper.IsChanged);

            TestChildWrapper childWrapper1 = husbandWrapper.Children.First(x => Equals(x.Model, child1));

            string oldChildsName = childWrapper1.Name;

            childWrapper1.Name = oldChildsName + "NEW";
            husbandWrapper.RejectChanges();
            Assert.AreEqual(childWrapper1.Name, oldChildsName);

            childWrapper1.Name = oldChildsName + "NEW";
            husbandWrapper.AcceptChanges();
            Assert.AreEqual(childWrapper1.Name, oldChildsName + "NEW");
            Assert.AreEqual(childWrapper1.NameOriginalValue, oldChildsName + "NEW");

            TestWifeWrapper wifeWrapper = husbandWrapper.Wife;

            husbandWrapper.Wife = null;
            Assert.AreEqual(husbandWrapper.Wife, null);
            husbandWrapper.RejectChanges();
            Assert.AreEqual(husbandWrapper.Wife, wifeWrapper);

            TestWifeWrapper wifeWrapper2 = testWrappersFactory.GetWrapper <TestWifeWrapper>(new TestWife());

            husbandWrapper.Wife = wifeWrapper2;
            husbandWrapper.AcceptChanges();
            Assert.AreEqual(wifeWrapper2.Model, husbandWrapper.Model.Wife);

            husbandWrapper.Children.Remove(childWrapper1);
            husbandWrapper.RejectChanges();
            Assert.IsTrue(husbandWrapper.Children.Contains(childWrapper1));
            Assert.IsFalse(husbandWrapper.IsChanged);
        }
        public void ShouldSetIsValidOfRootWhenAddingInvalidItem()
        {
            TestWrappersFactory testWrappersFactory = new TestWrappersFactory();

            var emailToAdd = testWrappersFactory.GetWrapper <TestFriendEmailWrapper>(new TestFriendEmail());
            var wrapper    = testWrappersFactory.GetWrapper <TestFriendWrapper>(_testFriend);

            Assert.IsTrue(wrapper.IsValid);;
            wrapper.Emails.Add(emailToAdd);
            Assert.IsFalse(wrapper.IsValid);
            emailToAdd.Email = "*****@*****.**";
            Assert.IsTrue(wrapper.IsValid);
        }
Ejemplo n.º 7
0
        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 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);
        }
Ejemplo n.º 9
0
 public void Initialize()
 {
     _emails = new List <TestFriendEmailWrapper>
     {
         _testWrappersFactory.GetWrapper <TestFriendEmailWrapper>(new TestFriendEmail {
             Email = "*****@*****.**"
         }),
         _testWrappersFactory.GetWrapper <TestFriendEmailWrapper>(new TestFriendEmail {
             Email = "*****@*****.**"
         }),
     };
 }
Ejemplo n.º 10
0
        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);
        }