Ejemplo n.º 1
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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 5
0
        public void ShouldGetValueOfUnderlyingModelProperty()
        {
            var wrapper = new TestWrappersFactory().GetWrapper <TestFriendWrapper>(_testFriend);

            Assert.AreEqual(_testFriend.FirstName, wrapper.FirstName);
        }
Ejemplo n.º 6
0
        public void ShouldContainModelInModelProperty()
        {
            var wrapper = new TestWrappersFactory().GetWrapper <TestFriendWrapper>(_testFriend);

            Assert.AreEqual(_testFriend, wrapper.Model);
        }
Ejemplo n.º 7
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);
        }