Пример #1
0
        public void Tests_Validate_SubViewModel()
        {
            // arrange
            var target = new MockViewModel
            {
                FirstName = "Test",
                LastName  = "Mock",
                DayOfWeek = DayOfWeek.Saturday,
            };

            // この時点ではエラーはない。
            Assert.False(target.HasErrors);
            target.SubViewModel.Number = MockSubViewModel.NumberMinimum - 1;

            // act
            target.Validate();

            // assert
            // 子ViewModelのエラー結果を検証する。
            Assert.True(target.SubViewModel.HasErrors);
            // 親ViewModelが子ViewModelのエラー結果を保持する。
            Assert.True(target.HasErrors);

            ConsoleWriteErrorMessages(target.SubViewModel);
            ConsoleWriteErrorMessages(target);
        }
Пример #2
0
        public void CheckValidationFailsWhenPropertiesAreEmptyTest()
        {
            var mockViewModel = new MockViewModel();

            bool isValid = mockViewModel.Validate();

            Assert.False(isValid);
            Assert.Null(mockViewModel.Forename.Value);
            Assert.Null(mockViewModel.Surname.Value);
            Assert.False(mockViewModel.Forename.IsValid);
            Assert.False(mockViewModel.Surname.IsValid);
            Assert.NotEmpty(mockViewModel.Forename.Errors);
            Assert.NotEmpty(mockViewModel.Surname.Errors);
        }
Пример #3
0
        public void CheckValidationPassesWhenOnlySurnameHasDataTest()
        {
            var mockViewModel = new MockViewModel();

            mockViewModel.Surname.Value = "Matos";

            bool isValid = mockViewModel.Validate();

            Assert.False(isValid);
            Assert.Null(mockViewModel.Forename.Value);
            Assert.NotNull(mockViewModel.Surname.Value);
            Assert.False(mockViewModel.Forename.IsValid);
            Assert.True(mockViewModel.Surname.IsValid);
            Assert.NotEmpty(mockViewModel.Forename.Errors);
            Assert.Empty(mockViewModel.Surname.Errors);
        }
Пример #4
0
        public void CheckValidationPassesWhenBothPropertiesHaveDataTest()
        {
            var mockViewModel = new MockViewModel();

            mockViewModel.Forename.Value = "Weverly";
            mockViewModel.Surname.Value  = "Matos";

            bool isValid = mockViewModel.Validate();

            Assert.True(isValid);
            Assert.NotNull(mockViewModel.Forename.Value);
            Assert.NotNull(mockViewModel.Surname.Value);
            Assert.True(mockViewModel.Forename.IsValid);
            Assert.True(mockViewModel.Surname.IsValid);
            Assert.Empty(mockViewModel.Forename.Errors);
            Assert.Empty(mockViewModel.Surname.Errors);
        }
Пример #5
0
        public void Tests_NotificationError()
        {
            // arrange
            var target = new MockViewModel
            {
                FirstName = "John",
                LastName  = "Smith"
            };

            // act
            target.DayOfWeek = DayOfWeek.Monday;
            // この時点ではエラーでないこと。
            Assert.False(target.HasErrors);

            // ここで検証してエラーが通知されること。
            target.Validate();

            // assert
            Assert.True(target.HasPropertyError(() => target.DayOfWeek));
            ConsoleWriteErrorMessages(target);
        }
Пример #6
0
        public void Tests_NotificationError()
        {
            // arrange
            var target = new MockViewModel
                         {
                             FirstName = "John",
                             LastName = "Smith"
                         };

            // act
            target.DayOfWeek = DayOfWeek.Monday;
            // この時点ではエラーでないこと。
            Assert.False(target.HasErrors);

            // ここで検証してエラーが通知されること。
            target.Validate();

            // assert
            Assert.True(target.HasPropertyError(() => target.DayOfWeek));
            ConsoleWriteErrorMessages(target);
        }
Пример #7
0
        public void Tests_Validate_SubViewModel()
        {
            // arrange
            var target = new MockViewModel
                         {
                             FirstName = "Test",
                             LastName = "Mock",
                             DayOfWeek = DayOfWeek.Saturday,
                         };
            // この時点ではエラーはない。
            Assert.False(target.HasErrors);
            target.SubViewModel.Number = MockSubViewModel.NumberMinimum - 1;

            // act
            target.Validate();

            // assert
            // 子ViewModelのエラー結果を検証する。
            Assert.True(target.SubViewModel.HasErrors);
            // 親ViewModelが子ViewModelのエラー結果を保持する。
            Assert.True(target.HasErrors);

            ConsoleWriteErrorMessages(target.SubViewModel);
            ConsoleWriteErrorMessages(target);
        }