public void GetUserByEmail_ReturnsOk_WhenUserIsFound() { //Arrange GetUserByEmailRequest request = new GetUserByEmailRequest(fixture.Create <string>()); User user = fixture.Create <User>(); mediator.Send(Arg.Is <GetUserByEmailRequest>(r => r.Email == request.Email)).Returns(user); //Act Task <ActionResult> task = controller.GetUserByEmail(request); task.Wait(); ActionResult result = task.Result; //Assert result.Should().NotBeNull(); result.Should().BeOfType <OkObjectResult>(); OkObjectResult okResult = result as OkObjectResult; okResult.StatusCode.Should().Be(StatusCodes.Status200OK); okResult.Value.Should().NotBeNull(); okResult.Value.Should().BeOfType <User>(); User value = okResult.Value as User; value.Should().Be(user); }
public async Task <bool> ForgotPassword(ForgotPasswordViewModel forgotPasswordViewModel) { var forgotPasswordRequest = new ForgotPasswordRequest(forgotPasswordViewModel.EmailAddress); var getUserByEmailRequest = new GetUserByEmailRequest { EmailAddress = forgotPasswordViewModel.EmailAddress }; var clientInfo = UserAgentParser.Extract(_userAgent); var userResponse = await _bus.RequestAsync(getUserByEmailRequest); var name = Helpers.GetUserName(userResponse.User); var forgotPasswordResponse = await _bus.RequestAsync(forgotPasswordRequest); var actionurl = $"{_baseUrl}/Account/ChangePassword/{forgotPasswordResponse.Secret}"; var emailTemplateRequest = new EmailTemplateRequest(EmailType.ForgotPassword); var response = await _bus.RequestAsync(emailTemplateRequest); var template = TemplateContentBuilder.Build(response.Template, TemplateContentBuilder.CreateForgotPasswordTemplateContent(name, actionurl, clientInfo.OperatingSystem, clientInfo.BrowserName)); var email = new EmailEvent(new EmailAddress("noreply", "*****@*****.**"), new EmailAddress(name, forgotPasswordViewModel.EmailAddress), "Wachtwoord vergeten ikdoneer.nu", template, true); await _bus.PublishAsync(email); return(true); }
public void GetUserByEmail_CallsRepository_ReturnsUser() { //Arrange var email = fixture.Create <string>(); var user = new User( Guid.NewGuid(), fixture.Create <string>(), fixture.Create <string>(), fixture.Create <string>(), email, fixture.Create <DateTime>() ); userRepository.GetByEmail(Arg.Is(email)).Returns(user); GetUserByEmailRequest request = new GetUserByEmailRequest(email); CancellationToken token = new CancellationToken(); //Act Task <User> task = handler.Handle(request, token); task.Wait(); User result = task.Result; //Assert userRepository.Received(1).GetByEmail(Arg.Is(email)); result.Should().NotBeNull(); result.Should().BeEquivalentTo(user); }
public void Constructor_SetsEmail() { //Arrange var email = fixture.Create <string>(); //Act var request = new GetUserByEmailRequest(email); //Assert request.Email.Should().Be(email); }
public async Task <UserEntity> GetUserByEmail(GetUserByEmailRequest request) { var sqlStoredProc = "sp_user_get_by_email"; var response = await DapperAdapter.GetFromStoredProcAsync <UserEntity> ( storedProcedureName : sqlStoredProc, parameters : request, dbconnectionString : DefaultConnectionString, sqltimeout : DefaultTimeOut, dbconnection : _connection, dbtransaction : _transaction); return(response.FirstOrDefault()); }
public async Task GetUserByEmailRequestHandler_Handle_Returns_User() { UserContext.OpenInMemoryConnection(); try { GetUserByEmailResponse response; var request = new GetUserByEmailRequest() { EmailAddress = "*****@*****.**" }; using (var context = UserContext.GetInMemoryContext()) { context.Users.Add(new User { EmailAddress = "*****@*****.**", FirstName = "john", LastName = "doe" }); context.SaveChanges(); } using (var context = UserContext.GetInMemoryContext()) { var handler = new GetUserByEmailRequestHandler(context, AutoMapperHelper.BuildMapper(new MappingProfile())); response = await handler.Handle(request); } using (var context = UserContext.GetInMemoryContext()) { Assert.IsTrue(response.UserExists); Assert.AreEqual(context.Users.Single().FirstName, response.User.FirstName); Assert.AreEqual(context.Users.Single().LastName, response.User.LastName); } } finally { UserContext.CloseInMemoryConnection(); } }
public void GetUserByEmail_ReturnsNotFound_WhenUserIsNotFound() { //Arrange GetUserByEmailRequest request = new GetUserByEmailRequest(fixture.Create <string>()); //Act Task <ActionResult> task = controller.GetUserByEmail(request); task.Wait(); ActionResult result = task.Result; //Assert result.Should().NotBeNull(); result.Should().BeOfType <NotFoundResult>(); NotFoundResult notFoundResult = result as NotFoundResult; notFoundResult.StatusCode.Should().Be(StatusCodes.Status404NotFound); }
public async Task <ActionResult> GetUserByEmail([FromRoute] GetUserByEmailRequest request) { ActionResult response; try { User user = await mediator.Send(request); if (user != null) { response = Ok(user); } else { response = NotFound(); } } catch { response = new StatusCodeResult(StatusCodes.Status500InternalServerError); } return(response); }
public void GetUserByEmail_ReturnsInternalError_WhenExceptionOccurs() { //Arrange GetUserByEmailRequest request = new GetUserByEmailRequest(fixture.Create <string>()); mediator.When(m => m.Send(Arg.Any <GetUserByEmailRequest>())).Do( args => throw new Exception() ); //Act Task <ActionResult> task = controller.GetUserByEmail(request); task.Wait(); ActionResult result = task.Result; //Assert result.Should().NotBeNull(); result.Should().BeOfType <StatusCodeResult>(); StatusCodeResult statusCodeResult = result as StatusCodeResult; statusCodeResult.StatusCode.Should().Be(StatusCodes.Status500InternalServerError); }