예제 #1
0
        public void ErrorsChanged_Invoked()
        {
            // Arrange
            var senderList   = new List <object>();
            var propertyList = new List <string>();
            var model        = new BaseModelTestImplementation();

            model.ErrorsChanged += (sender,
                                    args) =>
            {
                if (sender != null)
                {
                    senderList.Add(sender);
                }
                if (args?.PropertyName != null)
                {
                    propertyList.Add(args.PropertyName);
                }
            };

            // Act
            model.FakeError = true;
            model.FakeError = false;

            // Assert
            Assert.AreEqual(2, senderList.Count);
            Assert.AreSame(model, senderList[0]);
            Assert.AreSame(model, senderList[1]);
            Assert.AreEqual(2, propertyList.Count);
            Assert.AreEqual(nameof(BaseModelTestImplementation.FakeError), propertyList[0]);
            Assert.AreEqual(nameof(BaseModelTestImplementation.FakeError), propertyList[1]);
        }
예제 #2
0
        public void SetValidationErrors_ArgumentNullException_PropertyName()
        {
            // Arrange
            var model = new BaseModelTestImplementation();

            // Act & Assert
            Assert.Throws <ArgumentNullException>(() => model.InvokeSetValidationErrorsWithPropertyNameNull());
        }
예제 #3
0
        public void NoValidationErrorsWithoutExplicitValidation()
        {
            // Arrange
            var model = new BaseModelTestImplementation();

            // Act
            var hasErrors = model.HasErrors;

            // Assert
            Assert.IsFalse(hasErrors);
        }
예제 #4
0
        public void HasErrors_CorrectResult(bool fakeError, bool expectedHasErrorsState)
        {
            // Arrange
            var model = new BaseModelTestImplementation {
                FakeError = fakeError
            };

            // Act
            var hasErrors = model.HasErrors;

            // Assert
            Assert.AreEqual(expectedHasErrorsState, hasErrors);
        }
예제 #5
0
        public void GetErrors_EmptyListIfNoPropertyNameIsProvided(string propertyName)
        {
            // Arrange
            var model = new BaseModelTestImplementation {
                FakeError = true
            };

            // Act
            var errors = model.GetErrors(propertyName);

            // Assert
            Assert.IsNotNull(errors);
            Assert.AreEqual(0, errors.OfType <string>().Count());
        }
예제 #6
0
        public void GetErrors_FilledErrorCollection()
        {
            // Arrange
            var model = new BaseModelTestImplementation {
                FakeError = true
            };

            // Act
            var errors = model.GetErrors(nameof(BaseModelTestImplementation.FakeError));

            // Assert
            Assert.IsNotNull(errors);
            var errorArray = errors.OfType <string>().ToArray();

            Assert.AreEqual(2, errorArray.Length);
            Assert.AreEqual("Error1", errorArray[0]);
            Assert.AreEqual("Error2", errorArray[1]);
        }
예제 #7
0
        public void PropertyChanged_Invoked()
        {
            // Arrange
            object invokedSender   = null;
            string invokedProperty = null;
            var    model           = new BaseModelTestImplementation();

            model.PropertyChanged += (sender,
                                      args) =>
            {
                invokedSender   = sender;
                invokedProperty = args?.PropertyName;
            };

            // Act
            model.FakeError = true;

            // Assert
            Assert.IsNotNull(invokedSender);
            Assert.AreSame(model, invokedSender);
            Assert.IsNotNull(invokedProperty);
            Assert.AreEqual(nameof(BaseModelTestImplementation.FakeError), invokedProperty);
        }