Inheritance: ModelBase
Exemple #1
0
 public void ModelBase_AddHandlerNullTest()
 {
     var person = new SimplePerson();
     try
     {
         person.AddHandler(null);
         Assert.Fail("Excepted an ArgumentNullException");
     }
     catch (ArgumentNullException ex)
     {
         Assert.AreEqual("eventHandler", ex.ParamName);
     }
 }
Exemple #2
0
 public void ModelBase_AddRemoveHandlerTest()
 {
     var fired = false;
     var person = new SimplePerson();
     var listener = new Listener<PropertyChangedEventArgs>((sender, e) => { fired = true; });
     person.ErrorsChanged += (sender, e) => { };
     person.AddHandler(listener);
     person.FirstName = "Tom";
     Assert.IsTrue(fired);
     fired = false;
     person.RemoveHandler(listener);
     person.FirstName = "Sam";
     Assert.IsFalse(fired);
 }
Exemple #3
0
        public void ModelBase_BasicFunctionalityTest()
        {
            using (var verify = new Verify())
            {
                var person = new SimplePerson();
                var eventAssert = new PropertyChangedEventTest(verify, person);

                Assert.IsNull(person.FirstName);
                Assert.AreEqual("", person.LastName);

                person.FirstName = "John";
                person.LastName = "Doe";

                eventAssert.ExpectEvent("FirstName");
                eventAssert.ExpectEvent("FullName");
                eventAssert.ExpectEvent("LastName");
                eventAssert.ExpectEvent("FullName");

                person.InvokeGoodPropertyMessage();
                eventAssert.ExpectEvent("FullName");

            }
        }
Exemple #4
0
        public void ModelBase_BasicValidation()
        {
            var person = new SimplePerson();
            Assert.IsFalse(person.HasErrors);
            var errors = person.GetErrors();
            Assert.AreEqual(0, errors.Count);
            errors = person.GetErrors("");
            Assert.AreEqual(0, errors.Count);
            errors = person.GetErrors(null);
            Assert.AreEqual(0, errors.Count);

            person.Validate();

            Assert.IsTrue(person.HasErrors);
            errors = person.GetErrors();
            Assert.AreEqual(0, errors.Count);

            errors = person.GetErrors("FirstName");
            Assert.AreEqual(1, errors.Count);
            Assert.AreEqual("FirstName", errors[0].MemberNames.First());
            Assert.IsFalse(string.IsNullOrEmpty(errors[0].ErrorMessage));

            #if !WINDOWS_UWP
            var interfacePerson = (IDataErrorInfo)person;
            Assert.IsFalse(!string.IsNullOrEmpty(interfacePerson.Error));
            Assert.IsTrue(!string.IsNullOrEmpty(interfacePerson["FirstName"]));
            #endif
            person.FirstName = "Tom";
            Assert.IsFalse(person.HasErrors);
            errors = person.GetErrors();
            Assert.AreEqual(0, errors.Count);

            errors = person.GetErrors("FirstName");
            Assert.AreEqual(0, errors.Count);

            #if !WINDOWS_UWP
            Assert.IsFalse(!string.IsNullOrEmpty(interfacePerson.Error));
            Assert.IsFalse(!string.IsNullOrEmpty(interfacePerson["FirstName"]));
            #endif
        }
Exemple #5
0
        public void ModelBase_ValueChangedTest()
        {
            var person = new SimplePerson();
            var firstDate = new DateTime(1980, 1, 1);
            var secondDate = new DateTime(2000, 1, 1);

            person.DateOfBirth = firstDate;
            person.DateOfBirth = secondDate;
            Assert.AreEqual(firstDate, person.PreviousDateOfBirth);
        }
Exemple #6
0
        public void ModelBase_ValidationTest2()
        {
            using (var verify = new Verify())
            {
                var person = new SimplePerson();
                var eventAssert = new PropertyChangedEventTest(verify, person);

                person.Validate();
                Assert.IsTrue(person.HasErrors);
                eventAssert.ExpectEvent("HasErrors");
                var errors = person.GetErrors("FirstName");
                Assert.AreEqual(1, errors.Count);

                person.ClearErrors();
                Assert.IsFalse(person.HasErrors);
                var errors2 = person.GetErrors("FirstName");
                Assert.AreEqual(0, errors2.Count);

            }
        }
Exemple #7
0
 public void ModelBase_SetFailedTest2()
 {
     var person = new SimplePerson();
     try
     {
         person.BadSet2();
         Assert.Fail("Expected an exception");
     }
     catch (ArgumentException ex)
     {
         Assert.AreEqual("propertyName", ex.ParamName);
     }
 }
Exemple #8
0
        public void ModelBase_SerializationTest1()
        {
            var person = new SimplePerson();
            person.FirstName = "Tom";
            person.LastName = "Jones";

            var stream = new MemoryStream();
            var serializer = new DataContractSerializer(typeof(SimplePerson));
            serializer.WriteObject(stream, person);
            stream.Position = 0;
            var newPerson = (SimplePerson)serializer.ReadObject(stream);

            Assert.AreEqual(person.FirstName, newPerson.FirstName);
            Assert.AreEqual(person.LastName, newPerson.LastName);
            Assert.AreEqual(person.FullName, newPerson.FullName);
        }
Exemple #9
0
 public void ModelBase_PropertyChangedTest()
 {
     var person = new SimplePerson();
     try
     {
         person.InvokeBadPropertyMessage();
         Assert.Fail("Expected an exception");
     }
     catch (ArgumentOutOfRangeException ex)
     {
         Assert.AreEqual("propertyName", ex.ParamName);
         Assert.AreEqual("Boom", ex.ActualValue);
     }
 }
Exemple #10
0
        public void ModelBase_MultiFieldValidation()
        {
            var person = new SimplePerson();
            person.FirstName = "Tom";
            person.LastName = "Tom";
            IList<ValidationResult> errors = person.GetErrors("FirstName");
            Assert.AreEqual(1, errors.Count);
            Assert.IsTrue(errors[0].MemberNames.Contains("FirstName"));
            Assert.IsFalse(string.IsNullOrEmpty(errors[0].ErrorMessage));

            errors = person.GetErrors("LastName");
            Assert.AreEqual(1, errors.Count);
            Assert.IsTrue(errors[0].MemberNames.Contains("LastName"));
            Assert.IsFalse(string.IsNullOrEmpty(errors[0].ErrorMessage));

            errors = ((INotifyDataErrorInfo)person).GetErrors("LastName").Cast<ValidationResult>().ToList();
            Assert.AreEqual(1, errors.Count);
            Assert.IsTrue(errors[0].MemberNames.Contains("LastName"));
            Assert.IsFalse(string.IsNullOrEmpty(errors[0].ErrorMessage));

            errors = person.GetErrors();
            Assert.AreEqual(1, errors.Count);
            Assert.IsTrue(errors[0].MemberNames.Contains("FirstName"));
            Assert.IsTrue(errors[0].MemberNames.Contains("LastName"));
            Assert.IsFalse(string.IsNullOrEmpty(errors[0].ErrorMessage));

            #if !WINDOWS_UWP
            var interfacePerson = (IDataErrorInfo)person;
            Assert.IsTrue(!string.IsNullOrEmpty(interfacePerson.Error));
            Assert.IsTrue(!string.IsNullOrEmpty(interfacePerson["FirstName"]));
            Assert.IsTrue(!string.IsNullOrEmpty(interfacePerson["LastName"]));
            #endif
        }
Exemple #11
0
        public void ModelBase_GetNewTest()
        {
            var person = new SimplePerson();

            var a = person.Boss;
            Assert.AreEqual("Da", a.FirstName);
            Assert.AreEqual("Boss", a.LastName);
            Assert.AreSame(a, person.Boss);

            var b = person.Partner;
            Assert.AreSame(b, person.Partner);
        }
Exemple #12
0
 public void ModelBase_GetNewFailedTest3()
 {
     var person = new SimplePerson();
     try
     {
         person.BadGetNew3();
         Assert.Fail("Expected an exception");
     }
     catch (ArgumentException ex)
     {
         Assert.AreEqual("creationFunction", ex.ParamName);
     }
 }
Exemple #13
0
 public void ModelBase_CtrTest()
 {
     var employee = new SimplePerson();
 }
Exemple #14
0
 public void ModelBase_ChildPropertyChangedTest()
 {
     var person = new SimplePerson();
     Assert.AreEqual(0, person.SecretaryChangeCounter);
     person.Secretary = new SimplePerson();
     Assert.AreEqual(0, person.SecretaryChangeCounter);
     person.Secretary.FirstName = "Tom";
     Assert.AreEqual(2, person.SecretaryChangeCounter, "FirstName and FullName");
 }
Exemple #15
0
        public void PropertyBag_IsDefinedTest()
        {
            var person = new SimplePerson();
            var bag = person.GetPropertyBag();
            Assert.IsFalse(bag.IsDefined("FirstName"));
            Assert.IsFalse(bag.IsDefined("FullName"));
            Assert.IsFalse(bag.IsDefined("Frank"));

            person.FirstName = "Tom";
            Assert.IsTrue(bag.IsDefined("FirstName"));
            Assert.IsFalse(bag.IsDefined("FullName"));
            Assert.IsFalse(bag.IsDefined("Frank"));
        }
Exemple #16
0
        public void PropertyBag_FixCasingTest()
        {
            var person = new SimplePerson();
            var bag = person.GetPropertyBag();

            person.FirstName = "Frank";
            person.FirstName = "Frank";
            bag.Set("Tom", PropertySetModes.FixCasing, "firstname");
            Assert.AreEqual("Tom", person.FirstName);
        }