public async Task <IActionResult> Post([FromBody] CreateActivityCommandModel command) { await busClient.PublishAsync(command .SetId(Guid.NewGuid()) .SetCreatedAt(DateTime.Now) .SetUserId(User.Identity.GetUserIdIfExist())); return(AcceptedAtRoute("Get", new { id = command.Id })); }
public async Task ActivitiesController_Post_Should_Return_Accepted_StatusCode() { //arrange var busClient = new Mock <IBusClient>(); var activityRepository = new Mock <IActivityRepository>(); var userId = Guid.NewGuid(); var command = new CreateActivityCommandModel { Id = Guid.NewGuid(), Name = "Test", Category = "TestCategory", Description = "Description Category" }; var sut = new ActivitiesController(busClient.Object, activityRepository.Object); sut.ControllerContext = new ControllerContext { HttpContext = new DefaultHttpContext { User = new ClaimsPrincipal( new ClaimsIdentity ( new Claim[] { new Claim(ClaimTypes.Name, userId.ToString()) }, "test" ) ) } }; var routeValues = new Dictionary <string, object> { { "id", command.Id } }; //act var result = await sut.Post(command) as AcceptedAtRouteResult; //assert result.Should().NotBeNull(); result.StatusCode?.Should().Be(StatusCodes.Status202Accepted); result.RouteName.Should().Be("Get"); result.RouteValues.Should().BeEquivalentTo(routeValues); }