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