public void GetUserByUserName_ReturnsOk_WhenUserIsFound() { //Arrange GetUserByUserNameRequest request = new GetUserByUserNameRequest(fixture.Create <string>()); User user = fixture.Create <User>(); mediator.Send(Arg.Is <GetUserByUserNameRequest>(r => r.UserName == request.UserName)).Returns(user); //Act Task <ActionResult> task = controller.GetUserByUserName(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 <ActionResult> Subscribe([FromBody] SubscribeCommand subscription) { ActionResult response = new StatusCodeResult(StatusCodes.Status422UnprocessableEntity); try { await mediator.Send(subscription); var request = new GetUserByUserNameRequest(subscription.UserName); response = CreatedAtRoute("GetUserByUserName", request, request); } catch (UserApplicationException ex) when(ex is UsernameAlreadyTakenException || ex is EmailAlreadyTakenException) { response = Conflict(ex.Message); } catch (Exception ex) when(ex is FormatException || ex is ArgumentException || ex is ArgumentNullException) { response = BadRequest(); } catch { response = new StatusCodeResult(StatusCodes.Status500InternalServerError); } return(response); }
public void Subscribe_ReturnsStatus201_WhenSusbcriptionWorks() { //Arrange SubscribeCommand command = fixture.Create <SubscribeCommand>(); //Act Task <ActionResult> task = controller.Subscribe(command); task.Wait(); ActionResult response = task.Result; //Assert mediator.Received(1).Send(Arg.Is(command)); response.Should().NotBeNull(); response.Should().BeOfType <CreatedAtRouteResult>(); CreatedAtRouteResult result = response as CreatedAtRouteResult; result.StatusCode.Should().Be(StatusCodes.Status201Created); result.Value.Should().NotBeNull(); result.Value.Should().BeOfType <GetUserByUserNameRequest>(); GetUserByUserNameRequest resultValue = result.Value as GetUserByUserNameRequest; resultValue.UserName.Should().Be(command.UserName); }
public async Task <IActionResult> GetUser([FromQuery] GetUserByUserNameRequest request) { await _getUserByUserNameUseCase .Handle(new Application.Dto.UseCaseRequests.GetUserByUserNameRequest(request.UserName), _getUserByUserNamePresenter); return(_getUserByUserNamePresenter.Content); }
public void GetUserByUserName_CallsRepository_ReturnsUser() { //Arrange string userName = fixture.Create <string>(); User user = new User( Guid.NewGuid(), userName, fixture.Create <string>(), fixture.Create <string>(), fixture.Create <string>(), fixture.Create <DateTime>() ); userRepository.GetByUserName(Arg.Is(userName)).Returns(user); GetUserByUserNameRequest request = new GetUserByUserNameRequest(userName); CancellationToken token = new CancellationToken(); //Act Task <User> task = handler.Handle(request, token); task.Wait(); User result = task.Result; //Assert userRepository.Received(1).GetByUserName(Arg.Is(userName)); result.Should().NotBeNull(); result.Should().BeEquivalentTo(user); }
public async Task <bool> Handle(GetUserByUserNameRequest message, IOutputPort <GetUserByUserNameResponse> outputPort) { var response = await _userRepository.GetUserByUsernameAsync(message.UserName); outputPort.Handle(response.Success ? new GetUserByUserNameResponse(response.User, true) : new GetUserByUserNameResponse(response.Errors.Select(x => x))); return(response.Success); }
public override async Task <GetUserByUserNameReply> GetUserByUserName(GetUserByUserNameRequest request, ServerCallContext context) { var user = await _userService.GetUserByUserNameAsync(request.Username); return(new GetUserByUserNameReply { User = _mapper.Map <UserMessage>(user) }); }
public void Constructor_AssignsProperties() { //Arrange string userName = fixture.Create <string>(); //Act GetUserByUserNameRequest request = new GetUserByUserNameRequest(userName); //Assert request.UserName.Should().Be(userName); }
public UserInfo GetUserByUserName(string userName) { GetUserByUserNameRequest request = new GetUserByUserNameRequest() { UserName = userName }; GetUserResponse response = CallWebService < IUserManagementServicev1_0, GetUserByUserNameRequest, GetUserResponse>( m_service1_0, request, (s, q) => s.GetUserByUserName(q)); return(response.User); }
public void GetUserByUserName_ReturnsNotFound_WhenUserIsNotFound() { //Arrange GetUserByUserNameRequest request = new GetUserByUserNameRequest(fixture.Create <string>()); //Act Task <ActionResult> task = controller.GetUserByUserName(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> GetUserByUserName([FromRoute] GetUserByUserNameRequest 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 GetUserByUserName_ReturnsInternalError_WhenExceptionOccurs() { //Arrange GetUserByUserNameRequest request = new GetUserByUserNameRequest(fixture.Create <string>()); mediator.When(m => m.Send(Arg.Any <GetUserByUserNameRequest>())).Do( args => throw new Exception() ); //Act Task <ActionResult> task = controller.GetUserByUserName(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); }