public void Auth_WhenBodyViewModelWithPasswordGrantTypeAndEmail_ShouldReturnTokenResponse() { //Arrange var userName = $"{_fixture.Create<string>()}@test.com"; var password = _fixture.Create <string>(); var token = _fixture.Create <Token>(); var tokenData = new TokenData { ExporationTimeInMinutes = 60, EncodedToken = token.Value }; TokenRequestViewModel viewModel = new TokenRequestViewModel { Username = userName, ClientId = token.ClientId, Password = password, GrantType = "password" }; var userResult = new GetUserQueryResult { User = new ApplicationUser { Id = token.UserId, UserName = userName } }; _serviceMock.Setup(x => x.GenerateRefreshToken(token.ClientId, token.UserId)).Returns(token); _serviceMock.Setup(x => x.CreateAccessToken(token.UserId)).Returns(tokenData); _queryDispatcherMock.Setup(x => x.DispatchAsync <GetUserByNameQuery, GetUserQueryResult>(It.IsAny <GetUserByNameQuery>())) .Returns(Task.FromResult(new GetUserQueryResult())); _queryDispatcherMock.Setup(x => x.DispatchAsync <GetUserByEmailQuery, GetUserQueryResult>(It.IsAny <GetUserByEmailQuery>())) .Returns(Task.FromResult(userResult)); _queryDispatcherMock.Setup(x => x.DispatchAsync <CheckUserPasswordQuery, CheckUserPasswordQueryResult>(It.IsAny <CheckUserPasswordQuery>())) .Returns(Task.FromResult(new CheckUserPasswordQueryResult { IsCorrect = true })); _commandDispatcherMock.Setup(x => x.DispatchAsync <AddTokenCommand>(It.IsAny <AddTokenCommand>())) .Returns(Task.CompletedTask); //Act var result = _controller.Auth(viewModel).Result as JsonResult; //Assert Assert.IsNotNull(result); var json = new JsonResult(new TokenResponseViewModel { Expiration = tokenData.ExporationTimeInMinutes, RefreshToken = tokenData.EncodedToken, Token = token.Value }); Assert.AreEqual(result.Value.ToString(), json.Value.ToString()); }
public void Then_If_Null_Then_Null_Returned() { var source = new GetUserQueryResult { User = null }; var actual = (UserApiResponse)source; actual.Should().BeNull(); }
public UserVm GetUserById(UserVm vm) { if (vm == null) { throw new ArgumentNullException(string.Format(MessagesModel.NullValueError, "UserEditVm vm")); } GetUserByIdQuery query = new GetUserByIdQuery(vm.Id); GetUserQueryResult result = this.queryDispatcher.Dispatch <GetUserByIdQuery, GetUserQueryResult, User>(query); vm = UserModelHelper.QueryResultToUserVm(result); return(vm); }
public async Task Then_The_Query_Is_Handled_And_Data_Returned( string email, GetUserQueryResult mediatorResult, [Frozen] Mock <IMediator> mediator, [Greedy] UsersController controller) { mediator .Setup(x => x.Send( It.Is <GetUserQuery>(c => c.Email.Equals(email)), CancellationToken.None)) .ReturnsAsync(mediatorResult); var actual = await controller.GetUser(email) as OkObjectResult; var actualModel = actual !.Value as UserApiResponse; actualModel.Should().BeEquivalentTo((UserApiResponse)mediatorResult); }
public static UserVm QueryResultToUserVm(GetUserQueryResult result) { if (result == null) { throw new ArgumentNullException(string.Format(MessagesModel.NullValueError, "result")); } UserVm vm = new UserVm(); vm.DateAdded = result.DateAdded; vm.Id = result.Id; vm.FirstName = result.FirstName; vm.LastName = result.LastName; vm.Email = result.Email; vm.Roles = result.Roles; vm.Groups = result.Groups; vm.IsEnabled = result.IsEnabled; return(vm); }
public void Auth_WhenBodyViewModelWithPasswordGrantTypeWrongPassword_ShouldReturnUnauthorizedResult() { //Arrange var userName = _fixture.Create <string>(); var password = _fixture.Create <string>(); var token = _fixture.Create <Token>(); TokenRequestViewModel viewModel = new TokenRequestViewModel { Username = userName, ClientId = token.ClientId, Password = password, GrantType = "password" }; var userResult = new GetUserQueryResult { User = new ApplicationUser { Id = token.UserId, UserName = userName } }; _queryDispatcherMock.Setup(x => x.DispatchAsync <GetUserByNameQuery, GetUserQueryResult>(It.IsAny <GetUserByNameQuery>())) .Returns(Task.FromResult(userResult)); _queryDispatcherMock.Setup(x => x.DispatchAsync <CheckUserPasswordQuery, CheckUserPasswordQueryResult>(It.IsAny <CheckUserPasswordQuery>())) .Returns(Task.FromResult(new CheckUserPasswordQueryResult { IsCorrect = false })); _commandDispatcherMock.Setup(x => x.DispatchAsync <AddTokenCommand>(It.IsAny <AddTokenCommand>())) .Verifiable(); //Act var result = _controller.Auth(viewModel).Result; //Assert Assert.IsInstanceOf <UnauthorizedResult>(result); }
public void Then_The_Fields_Are_Mapped(GetUserQueryResult source) { var actual = (UserApiResponse)source; actual.User.Should().BeEquivalentTo(source.User); }
public void Auth_WhenBodyViewModelWithRefreshTokenGrantTypeAndUserName_ShouldReturnTokenResponse() { //Arrange var userName = _fixture.Create <string>(); var clientId = _fixture.Create <string>(); var userId = _fixture.Create <string>(); var password = _fixture.Create <string>(); var refreshToken = new Token { ClientId = clientId, UserId = userId, Id = 1, CreationDate = DateTime.Now, Value = Guid.NewGuid().ToString() }; var newRefreshToken = new Token { ClientId = clientId, UserId = userId, Id = 1, CreationDate = DateTime.Now, Value = Guid.NewGuid().ToString() }; var tokenData = new TokenData { ExporationTimeInMinutes = 60, EncodedToken = refreshToken.Value }; TokenRequestViewModel viewModel = new TokenRequestViewModel { Username = userName, ClientId = refreshToken.ClientId, Password = password, GrantType = "refresh_token" }; var userResult = new GetUserQueryResult { User = new ApplicationUser { Id = refreshToken.UserId, UserName = userName } }; var tokenResult = new GetTokenQueryResult { Token = refreshToken }; _serviceMock.Setup(x => x.GenerateRefreshToken(refreshToken.ClientId, refreshToken.UserId)).Returns(newRefreshToken); _serviceMock.Setup(x => x.CreateAccessToken(refreshToken.UserId)).Returns(tokenData); _queryDispatcherMock.Setup(x => x.DispatchAsync <GetUserByIdQuery, GetUserQueryResult>(It.IsAny <GetUserByIdQuery>())) .Returns(Task.FromResult(userResult)); _queryDispatcherMock.Setup(x => x.DispatchAsync <GetTokenQuery, GetTokenQueryResult>(It.IsAny <GetTokenQuery>())) .Returns(Task.FromResult(tokenResult)); _commandDispatcherMock.Setup(x => x.DispatchAsync <AddTokenCommand>(It.IsAny <AddTokenCommand>())) .Returns(Task.CompletedTask); _commandDispatcherMock.Setup(x => x.DispatchAsync <RemoveTokenCommand>(It.IsAny <RemoveTokenCommand>())) .Returns(Task.CompletedTask); //Act var result = _controller.Auth(viewModel).Result as JsonResult; //Assert Assert.IsNotNull(result); var json = new JsonResult(new TokenResponseViewModel { Expiration = tokenData.ExporationTimeInMinutes, RefreshToken = tokenData.EncodedToken, Token = newRefreshToken.Value }); Assert.AreEqual(result.Value.ToString(), json.Value.ToString()); }