Mercurial > silverbladetech
diff SilverlightValidation/SilverlightValidation.Tests/ViewModels/UserViewModel_INotifyDataErrorInfo.cs @ 109:11994ccdc50b
First wave of tests complete
author | stevenhollidge <stevenhollidge@hotmail.com> |
---|---|
date | Sun, 06 May 2012 20:37:32 +0100 |
parents | |
children | 0185b15e04ba |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/SilverlightValidation/SilverlightValidation.Tests/ViewModels/UserViewModel_INotifyDataErrorInfo.cs Sun May 06 20:37:32 2012 +0100 @@ -0,0 +1,271 @@ +using System; +using FluentAssertions; +using SilverlightValidation.Tests.Helpers; +using Microsoft.VisualStudio.TestTools.UnitTesting; + +namespace SilverlightValidation.Tests.ViewModels +{ + [TestClass] + public class UserViewModel_INotifyDataErrorInfo + { + [TestMethod] + public void WhenValidVM_WithUpdatedUsername_WithValidData_ThenErrorsForUsernameEmpty() + { + // arrange + var vm = Helper.CreateValidUserViewModel(); + + // act + var validData = "valid"; + vm.Username = validData; + + // assert + Assert.IsFalse(vm.HasErrors); + vm.GetErrors("Username").Should().BeNull(); + } + + [TestMethod] + public void WhenValidVM_WithUpdatedUsername_WithInvalidEmptyData_ThenErrorsForUsernameEqualsOne() + { + // arrange + var vm = Helper.CreateValidUserViewModel(); + + // act + vm.Username = string.Empty; + + // assert + Assert.IsTrue(vm.HasErrors); + vm.GetErrors("Username").Should().HaveCount(1); + } + + [TestMethod] + public void WhenValidVM_WithUpdatedUsername_WithInvalidShortData_ThenErrorsForUsernameEqualsOne() + { + // arrange + var vm = Helper.CreateValidUserViewModel(); + + // act + var shortData = "a"; + vm.Username = shortData; + + // assert + Assert.IsTrue(vm.HasErrors); + vm.GetErrors("Username").Should().HaveCount(1); + } + + [TestMethod] + public void WhenValidVM_WithUpdatedUsername_WithInvalidLongData_ThenErrorsForUsernameEqualsOne() + { + // arrange + var vm = Helper.CreateValidUserViewModel(); + + // act + vm.Username = "thisdatashouldbetoolong"; + + // assert + Assert.IsTrue(vm.HasErrors); + vm.GetErrors("Username").Should().HaveCount(1); + } + + [TestMethod] + public void WhenValidVM_WithUpdatedPassword_WithValidData_ThenErrorsForPasswordEmpty() + { + // arrange + var vm = Helper.CreateValidUserViewModel(); + + // act + var validPassword = "Pa33word"; + vm.Password = validPassword; + + // assert + Assert.IsFalse(vm.HasErrors); + vm.GetErrors("Password").Should().BeNull(); + } + + [TestMethod] + public void WhenValidVM_WithUpdatedPassword_WithInvalidEmptyData_ThenErrorsForPasswordEqualsOne() + { + // arrange + var vm = Helper.CreateValidUserViewModel(); + + // act + vm.Password = string.Empty; + + // assert + Assert.IsTrue(vm.HasErrors); + vm.GetErrors("Password").Should().HaveCount(1); + } + + [TestMethod] + public void WhenValidVM_WithUpdatedPassword_WithInvalidDataNotContainingANumber_ThenErrorsForPasswordEqualsOne() + { + // arrange + var vm = Helper.CreateValidUserViewModel(); + + // act + vm.Password = "Password"; + + // assert + Assert.IsTrue(vm.HasErrors); + vm.GetErrors("Password").Should().HaveCount(1); + } + + [TestMethod] + public void WhenValidVM_WithUpdatedPassword_WithInvalidDataNotContainingAnUpperCaseLetter_ThenErrorsForPasswordEqualsOne() + { + // arrange + var vm = Helper.CreateValidUserViewModel(); + + // act + vm.Password = "pa33word"; + + // assert + Assert.IsTrue(vm.HasErrors); + vm.GetErrors("Password").Should().HaveCount(1); + } + + [TestMethod] + public void WhenValidVM_WithUpdatedPassword_WithInvalidDataNotContainingALowerCaseLetter_ThenErrorsForPasswordEqualsOne() + { + // arrange + var vm = Helper.CreateValidUserViewModel(); + + // act + vm.Password = "PA33WORD"; + + // assert + Assert.IsTrue(vm.HasErrors); + vm.GetErrors("Password").Should().HaveCount(1); + } + + [TestMethod] + public void WhenValidVM_WithUpdatedEmail_WithValidData_ThenErrorsForEmailEmpty() + { + // arrange + var vm = Helper.CreateValidUserViewModel(); + + // act + var validData = "valid@email.com"; + vm.Email = validData; + + // assert + Assert.IsFalse(vm.HasErrors); + vm.GetErrors("Email").Should().BeNull(); + } + + [TestMethod] + public void WhenValidVM_WithUpdatedEmail_WithInvalidEmptyData_ThenErrorsForEmailEqualsOne() + { + // arrange + var vm = Helper.CreateValidUserViewModel(); + + // act + vm.Email = string.Empty; + + // assert + Assert.IsTrue(vm.HasErrors); + vm.GetErrors("Email").Should().HaveCount(1); + } + + [TestMethod] + public void WhenValidVM_WithUpdatedEmail_WithInvalidDataNoAtSign_ThenErrorsForEmailEqualsOne() + { + // arrange + var vm = Helper.CreateValidUserViewModel(); + + // act + var noAtSign = "invalidemail.com"; + vm.Email = noAtSign; + + // assert + Assert.IsTrue(vm.HasErrors); + vm.GetErrors("Email").Should().HaveCount(1); + } + + [TestMethod] + public void WhenValidVM_WithUpdatedEmail_WithInvalidDataNothingBeforeAtSign_ThenErrorsForEmailEqualsOne() + { + // arrange + var vm = Helper.CreateValidUserViewModel(); + + // act + var nothingBeforeAtSign = "@email.com"; + vm.Email = nothingBeforeAtSign; + + // assert + Assert.IsTrue(vm.HasErrors); + vm.GetErrors("Email").Should().HaveCount(1); + } + + [TestMethod] + public void WhenValidVM_WithUpdatedEmail_WithInvalidDataNoDotAfterAtSign_ThenErrorsForEmailEqualsOne() + { + // arrange + var vm = Helper.CreateValidUserViewModel(); + + // act + vm.Email = "invalid@email"; + + // assert + Assert.IsTrue(vm.HasErrors); + vm.GetErrors("Email").Should().HaveCount(1); + } + + [TestMethod] + public void WhenValidVM_WithUpdatedDateOfBirth_WithValidData_ThenErrorsForDateOfBirthEmpty() + { + // arrange + var vm = Helper.CreateValidUserViewModel(); + + // act + var validData = new DateTime(1977, 01, 01); + vm.DateOfBirth = validData; + + // assert + Assert.IsFalse(vm.HasErrors); + vm.GetErrors("DateOfBirth").Should().BeNull(); + } + + [TestMethod] + public void WhenValidVM_WithUpdatedDateOfBirth_WithInvalidEarlyData_ThenErrorsForDateOfBirthEqualsOne() + { + // arrange + var vm = Helper.CreateValidUserViewModel(); + + // act + vm.DateOfBirth = DateTime.MinValue; + + // assert + Assert.IsTrue(vm.HasErrors); + vm.GetErrors("DateOfBirth").Should().HaveCount(1); + } + + [TestMethod] + public void WhenValidVM_WithUpdatedDateOfBirth_WithInvalidDataMaxDate_ThenErrorsForDateOfBirthEqualsOne() + { + // arrange + var vm = Helper.CreateValidUserViewModel(); + + // act + vm.DateOfBirth = DateTime.MaxValue; + + // assert + Assert.IsTrue(vm.HasErrors); + vm.GetErrors("DateOfBirth").Should().HaveCount(1); + } + + [TestMethod] + public void WhenValidVM_WithUpdatedDateOfBirth_WithInvalidDataTomorrow_ThenErrorsForDateOfBirthEqualsOne() + { + // arrange + var vm = Helper.CreateValidUserViewModel(); + + // act + vm.DateOfBirth = DateTime.Now.AddDays(1); + + // assert + Assert.IsTrue(vm.HasErrors); + vm.GetErrors("DateOfBirth").Should().HaveCount(1); + } + + } +} \ No newline at end of file