Guest User

Untitled

a guest
Jul 25th, 2018
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.50 KB | None | 0 0
  1. public class Tests
  2. {
  3. private AutoMoqer mocker;
  4.  
  5. [SetUp]
  6. public void Setup()
  7. {
  8. mocker = new AutoMoqer();
  9.  
  10. mocker.GetMock<IEncryption>()
  11. .Setup(x => x.CheckPassword(It.IsAny<string>(), It.IsAny<string>()))
  12. .Returns(true);
  13. }
  14.  
  15. [Test]
  16. public void Returns_a_user_when_the_username_and_password_are_valid()
  17. {
  18. var expectedUser = new User { Password = "My Encrypted Password" };
  19.  
  20. ThisUsernameReturnsThisUser("Username", expectedUser);
  21. ThisEncryptedAndDecryptedPasswordWillMatch("My Encrypted Password", "Password");
  22.  
  23. var result = GetTheUser("Username", "Password");
  24.  
  25. result.ShouldBeSameAs(expectedUser);
  26. }
  27.  
  28. [Test]
  29. public void Returns_null_when_the_password_does_not_match()
  30. {
  31. var expectedUser = new User { Password = "another encrypted password" };
  32.  
  33. ThisUsernameReturnsThisUser("un", expectedUser);
  34. ThisEncryptedAndDecryptedPasswordDoNotMatch("another encrypted password", "pw");
  35.  
  36. var result = GetTheUser("un", "pw");
  37.  
  38. result.ShouldBeNull();
  39. }
  40.  
  41. [Test]
  42. public void Returns_null_when_the_username_is_not_valid()
  43. {
  44. ThisUsernameReturnsThisUser("I don't exist.", null);
  45.  
  46. var result = GetTheUser("I don't exist.", "x");
  47.  
  48. result.ShouldBeNull();
  49. }
  50.  
  51. private void ThisEncryptedAndDecryptedPasswordDoNotMatch(string encryptedPassword, string decryptedPassword)
  52. {
  53. mocker.GetMock<IEncryption>()
  54. .Setup(x => x.CheckPassword(encryptedPassword, decryptedPassword))
  55. .Returns(false);
  56. }
  57.  
  58. private User GetTheUser(string username, string password)
  59. {
  60. var userRepository = mocker.Resolve<UserRepository>();
  61. return userRepository.FindByCredentials(username, password);
  62. }
  63.  
  64. private void ThisUsernameReturnsThisUser(string username, User user)
  65. {
  66. mocker.GetMock<IDataStore>()
  67. .Setup(x => x.FindOneByNamedQuery("FindUserByUserName", username))
  68. .Returns(user);
  69. }
  70.  
  71. private void ThisEncryptedAndDecryptedPasswordWillMatch(string encryptedPassword, string decryptedPassword)
  72. {
  73. mocker.GetMock<IEncryption>()
  74. .Setup(x => x.CheckPassword(encryptedPassword, decryptedPassword))
  75. .Returns(true);
  76. }
  77. }
Add Comment
Please, Sign In to add comment