public void Should_GetMockUserTokenFunction_Return_ValidToken() { //Arrange var _configuration = new Mock <IConfiguration>(); var _mockRepo = new Mock <IRepositoryWrapper>(); var _mockLogger = new Mock <ILoggerManager>(); var _mockToken = new Mock <IToken>(); string generatedToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjoiYWRtaW4iLCJpc19hZG1pbiI6IlRydWUiLCJleHAiOjE1NjcwMjkwNDAsImlzcyI6IlRlc3QuY29tIiwiYXVkIjoiVGVzdC5jb20ifQ.cqBycJ7bWw7bTCtnw8V0tQGA-XOdsCo6K_CimzPQd5Q"; List <User> userResult = new List <User>(); userResult.Add(new User { Id = 1, Name = "Admin", Family = "", UserName = "******", Email = "*****@*****.**", IsAdmin = true, IsActive = false, Password = "******" }); var user = new LoginVM() { UserName = "******", Password = "******" }; _mockToken.Setup(x => x.GenerateJSONWebToken(userResult[0])).Returns(generatedToken); _mockToken.Setup(x => x.AuthenticateUser(user)).Returns(userResult[0]); _mockRepo.Setup(x => x.User.FindByCondition(It.IsAny <Expression <Func <User, bool> > >())).Returns(userResult.AsQueryable()); var controller = new JWTAuthenticationController(_configuration.Object, _mockRepo.Object, _mockLogger.Object, _mockToken.Object); //Act var actual = controller.Post(user); //Assert var actualParsed = (((ResponseVM)((OkObjectResult)actual).Value).Data); System.Reflection.PropertyInfo pi = actualParsed.GetType().GetProperty("token"); string token = (string)(pi.GetValue(actualParsed, null)); Assert.Equal(generatedToken, token); }
public void Should_PasswordNotValid_MockFunction_Return_NotFound() { //Arrange var _configuration = new Mock <IConfiguration>(); _configuration.SetupGet(x => x[It.Is <string>(s => s == "Jwt:Key")]).Returns("ThisismySecretKey"); _configuration.SetupGet(x => x[It.Is <string>(s => s == "Jwt:Issuer")]).Returns("Test.com"); var _mockToken = new Mock <IToken>(); var _mockRepo = new Mock <IRepositoryWrapper>(); var _mockLogger = new Mock <ILoggerManager>(); List <User> userResult = new List <User>(); userResult.Add(new User { Id = 1, Name = "Admin", Family = "", UserName = "******", Email = "*****@*****.**", IsAdmin = true, IsActive = false, Password = "******" }); var user = new LoginVM() { UserName = "******", Password = "******" }; _mockRepo.Setup(x => x.User.FindByCondition(y => y.UserName == user.UserName && y.Password == user.Password)).Returns((new List <User>()).AsQueryable()); var controller = new JWTAuthenticationController(_configuration.Object, _mockRepo.Object, _mockLogger.Object, _mockToken.Object); //Act var actual = controller.Post(user); //Assert Assert.Same(typeof(NotFoundObjectResult), actual.GetType()); }