public async Task <ActionResult> UpdateFriendshipStatus([FromRoute] int friendshipId, [FromBody] UpdateFriendshipStatusBody model, CancellationToken cancellationToken = default) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } FriendshipExistsQuery existsQuery = new FriendshipExistsQuery { FriendshipId = friendshipId }; bool exists = await _mediator.Send(existsQuery, cancellationToken); if (!exists) { return(NotFound(new ErrorResource { StatusCode = StatusCodes.Status404NotFound, Message = $"Friendship with ID '{friendshipId}' does not exist" })); } UpdateFriendshipStatusCommand updateCommand = new UpdateFriendshipStatusCommand { FriendshipId = friendshipId, FriendshipStatusId = model.FriendshipStatusId }; await _mediator.Send(updateCommand, cancellationToken); return(NoContent()); }
public async Task UpdateFriendshipStatusCommandHandler_ShouldAddNewFriendshipChange() { // Arrange UpdateFriendshipStatusCommand request = new UpdateFriendshipStatusCommand { FriendshipId = 1, FriendshipStatusId = FriendshipStatusId.Accepted }; _unitOfWorkMock .Setup(m => m.FriendshipChanges.Add(It.IsAny <FriendshipChange>(), It.IsAny <CancellationToken>())) .Returns(Task.CompletedTask); _unitOfWorkMock .Setup(m => m.CommitAsync(It.IsAny <CancellationToken>())) .ReturnsAsync(1); UpdateFriendshipStatusCommand.Handler handler = new UpdateFriendshipStatusCommand.Handler(_unitOfWorkMock.Object, _dateProviderMock.Object); // Act await handler.Handle(request); // Assert _unitOfWorkMock.Verify(m => m.FriendshipChanges.Add(It.IsAny <FriendshipChange>(), It.IsAny <CancellationToken>())); _unitOfWorkMock.Verify(m => m.CommitAsync(It.IsAny <CancellationToken>())); }