Guest User

Untitled

a guest
Oct 7th, 2018
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.02 KB | None | 0 0
  1. using System;
  2. using FluentAssertions.EventMonitoring;
  3. using Microsoft.VisualStudio.TestTools.UnitTesting;
  4. using SilverlightValidation.Tests.Helpers;
  5.  
  6. namespace SilverlightValidation.Tests.ViewModels
  7. {
  8. [TestClass]
  9. public class UserViewModel_INotifyPropertyChanged
  10. {
  11. [TestMethod]
  12. public void WhenPropertyChanged_WithValidDateOfBirthUpdated_ThenFiresChangeEventAndIsChangedEqualsTrue()
  13. {
  14. // arrange
  15. var vm = Helper.CreateDefaultUserViewModel();
  16.  
  17. // act
  18. vm.DateOfBirth = new DateTime(1977, 01, 01);
  19.  
  20. // assert
  21. vm.ShouldRaisePropertyChangeFor(x => x.DateOfBirth);
  22. Assert.IsTrue(vm.IsChanged);
  23. }
  24.  
  25. [TestMethod]
  26. public void WhenPropertyChanged_WithInvalidDateOfBirthUpdated_ThenFiresChangeEventAndIsChangedEqualsTrue()
  27. {
  28. // arrange
  29. var vm = Helper.CreateDefaultUserViewModel();
  30.  
  31. // act
  32. vm.DateOfBirth = new DateTime(1800, 01, 01);
  33.  
  34. // assert
  35. vm.ShouldRaisePropertyChangeFor(x => x.DateOfBirth);
  36. Assert.IsTrue(vm.IsChanged);
  37. }
  38.  
  39. [TestMethod]
  40. public void WhenPropertyChanged_WithDescriptionUpdated_ThenFiresChangeEventAndIsChangedEqualsTrue()
  41. {
  42. // arrange
  43. var vm = Helper.CreateDefaultUserViewModel();
  44.  
  45. // act
  46. vm.Description = "New description";
  47.  
  48. // assert
  49. vm.ShouldRaisePropertyChangeFor(x => x.Description);
  50. Assert.IsTrue(vm.IsChanged);
  51. }
  52.  
  53. [TestMethod]
  54. public void WhenPropertyChanged_WithValidEmailUpdated_ThenFiresChangeEventAndIsChangedEqualsTrue()
  55. {
  56. // arrange
  57. var vm = Helper.CreateDefaultUserViewModel();
  58.  
  59. // act
  60. vm.Email = "test@domain.com";
  61.  
  62. // assert
  63. vm.ShouldRaisePropertyChangeFor(x => x.Email);
  64. Assert.IsTrue(vm.IsChanged);
  65. }
  66.  
  67. [TestMethod]
  68. public void WhenPropertyChanged_WithInvalidEmailUpdated_ThenFiresChangeEventAndIsChangedEqualsTrue()
  69. {
  70. // arrange
  71. var vm = Helper.CreateDefaultUserViewModel();
  72.  
  73. // act
  74. vm.Email = "invalid email";
  75.  
  76. // assert
  77. vm.ShouldRaisePropertyChangeFor(x => x.Email);
  78. Assert.IsTrue(vm.IsChanged);
  79. }
  80.  
  81. [TestMethod]
  82. public void WhenPropertyChanged_WithValidUsernameUpdated_ThenFiresChangeEventAndIsChangedEqualsTrue()
  83. {
  84. // arrange
  85. var vm = Helper.CreateDefaultUserViewModel();
  86.  
  87. // act
  88. vm.Username = "dummy";
  89.  
  90. // assert
  91. vm.ShouldRaisePropertyChangeFor(x => x.Username);
  92. Assert.IsTrue(vm.IsChanged);
  93. }
  94.  
  95. [TestMethod]
  96. public void WhenPropertyChanged_WithInvalidUsernameUpdated_ThenFiresChangeEventAndIsChangedEqualsTrue()
  97. {
  98. // arrange
  99. var vm = Helper.CreateDefaultUserViewModel();
  100.  
  101. // act
  102. vm.Username = "invalidusernametoolong";
  103.  
  104. // assert
  105. vm.ShouldRaisePropertyChangeFor(x => x.Username);
  106. Assert.IsTrue(vm.IsChanged);
  107. }
  108.  
  109. [TestMethod]
  110. public void WhenPropertyChanged_WithValidPasswordUpdated_ThenFiresChangeEventAndIsChangedEqualsTrue()
  111. {
  112. // arrange
  113. var vm = Helper.CreateDefaultUserViewModel();
  114.  
  115. // act
  116. vm.Password = "dummy";
  117.  
  118. // assert
  119. vm.ShouldRaisePropertyChangeFor(x => x.Password);
  120. Assert.IsTrue(vm.IsChanged);
  121. }
  122.  
  123. [TestMethod]
  124. public void WhenPropertyChanged_WithInvalidPasswordUpdated_ThenFiresChangeEventAndIsChangedEqualsTrue()
  125. {
  126. // arrange
  127. var vm = Helper.CreateDefaultUserViewModel();
  128.  
  129. // act
  130. vm.Password = "invalidpasswordtoolong";
  131.  
  132. // assert
  133. vm.ShouldRaisePropertyChangeFor(x => x.Password);
  134. Assert.IsTrue(vm.IsChanged);
  135. }
  136. }
  137. }
Add Comment
Please, Sign In to add comment