public async Task <IActionResult> ChangeDoxatagAsync([FromBody] ChangeDoxatagRequest request) { var user = await _userService.GetUserAsync(User); var result = await _doxatagService.ChangeDoxatagAsync(user, request.Name); if (result.IsValid) { return(this.Ok(_mapper.Map <DoxatagDto>(result.Response))); } result.AddToModelState(ModelState); return(this.BadRequest(new ValidationProblemDetails(ModelState))); }
public async Task ChangeDoxatagAsync_ShouldBeOkObjectResult() { // Arrange var user = new User { Id = Guid.NewGuid() }; var doxatag = new Doxatag( UserId.FromGuid(user.Id), "Name", 1000, new UtcNowDateTimeProvider()); TestMock.UserService.Setup(userManager => userManager.GetUserAsync(It.IsAny <ClaimsPrincipal>())).ReturnsAsync(user).Verifiable(); TestMock.DoxatagService.Setup(doxatagService => doxatagService.ChangeDoxatagAsync(It.IsAny <User>(), It.IsAny <string>())) .ReturnsAsync(DomainValidationResult <Doxatag> .Succeeded(doxatag)) .Verifiable(); var controller = new DoxatagHistoryController(TestMock.UserService.Object, TestMock.DoxatagService.Object, TestMapper); var request = new ChangeDoxatagRequest { Name = doxatag.Name }; // Act var result = await controller.ChangeDoxatagAsync(request); // Assert result.Should().BeOfType <OkObjectResult>(); TestMock.UserService.Verify(userManager => userManager.GetUserAsync(It.IsAny <ClaimsPrincipal>()), Times.Once); TestMock.DoxatagService.Verify(doxatagService => doxatagService.ChangeDoxatagAsync(It.IsAny <User>(), It.IsAny <string>()), Times.Once); }
private async Task <HttpResponseMessage> ExecuteAsync(ChangeDoxatagRequest request) { return(await _httpClient.PostAsJsonAsync("api/doxatag-history", request)); }