Advertisement
Guest User

wejscowka

a guest
Mar 19th, 2018
311
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.67 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Security.Cryptography;
  4. using System.Text;
  5. using Microsoft.AspNetCore.Mvc;
  6. using Moq;
  7. using TDD.Dto;
  8. using TDD.Interface;
  9. using TDD.Model;
  10. using TDD.Service;
  11. using Xunit;
  12.  
  13. namespace TDD.Tests
  14. {
  15.     public class UnitTest1
  16.     {
  17.         [Fact]
  18.         public void ShouldReturnOnInvalidPassword()
  19.         {
  20.             var error = "Haslo lub uzytkownik jest bledne ";
  21.             //user w bazie
  22.             var user = new User { Username = "login", Email = "mail@mail.com", Password = GetHash("asdsdasd") };
  23.             var loginModel = new LoginModel
  24.             {
  25.                 Username = "login",
  26.                 Password = "asd"
  27.             };
  28.             var userRepository = new Mock<IRepository<User>>();
  29.  
  30.             var userService = new UserService(userRepository.Object);
  31.  
  32.             var accountController = new AccountController(userService);
  33.  
  34.  
  35.             var result = accountController.Login(loginModel);
  36.             var badRequest = Assert.IsType<BadRequestObjectResult>(result);
  37.             var errorResult = Assert.IsAssignableFrom<ResultDto<LoginResultDto>>(badRequest.Value);
  38.  
  39.             Assert.Contains(error, errorResult.Errors);
  40.         }
  41.  
  42.  
  43.         [Fact]
  44.         public void ShouldLoginWithSuccess()
  45.         {
  46.             var user = new User { Username = "login", Email = "mail@mail.com", Password = GetHash("asd") };
  47.  
  48.             var loginModel = new LoginModel
  49.             {
  50.                 Username = "login",
  51.                 Password = "asd"
  52.             };
  53.             var userRepository = new Mock<IRepository<User>>();
  54.             userRepository.Setup(x => x.Exist(It.IsAny<Func<User, bool>>())).Returns(true);
  55.             userRepository.Setup(x => x.GetBy(It.IsAny<Func<User, bool>>())).Returns(user);
  56.  
  57.             var userService = new UserService(userRepository.Object);
  58.  
  59.             var accountController = new AccountController(userService);
  60.  
  61.  
  62.             var result = accountController.Login(loginModel);
  63.             var okResult = Assert.IsType<OkObjectResult>(result);
  64.             var okResultValue = Assert.IsAssignableFrom<ResultDto<LoginResultDto>>(okResult.Value);
  65.  
  66.             Assert.Equal(user.Email, okResultValue.SuccessResult.Email);
  67.         }
  68.         private string GetHash(string text)
  69.         {
  70.             // SHA512 is disposable by inheritance.  
  71.             using (var sha256 = SHA256.Create())
  72.             {
  73.                 // Send a sample text to hash.  
  74.                 var hashedBytes = sha256.ComputeHash(Encoding.UTF8.GetBytes(text));
  75.                 // Get the hashed string.  
  76.                 return BitConverter.ToString(hashedBytes).Replace("-", "").ToLower();
  77.             }
  78.         }
  79.  
  80.         [Fact]
  81.         public void ShouldReturnErrorOnInvalidUser()
  82.         {
  83.             var error = "Haslo lub uzytkownik jest bledne ";
  84.             //user w bazie
  85.             var user = new User { Username = "login", Email = "mail@mail.com", Password = GetHash("asd") };
  86.  
  87.             var loginModel = new LoginModel
  88.             {
  89.                 Username = "login",
  90.                 Password = "asd"
  91.             };
  92.             var userRepository = new Mock<IRepository<User>>();
  93.  
  94.             var userService = new UserService(userRepository.Object);
  95.  
  96.             var accountController = new AccountController(userService);
  97.  
  98.  
  99.             var result = accountController.Login(loginModel);
  100.             var badRequest = Assert.IsType<BadRequestObjectResult>(result);
  101.             var errorResult = Assert.IsAssignableFrom<ResultDto<LoginResultDto>>(badRequest.Value);
  102.  
  103.             Assert.Contains(error, errorResult.Errors);
  104.         }
  105.     }
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement