public async Task DeleteMembership_ShouldDeleteMembership() { // Arrange const int membershipId = 1; Mock <IMediator> mediatorMock = new Mock <IMediator>(); mediatorMock .Setup(m => m.Send(It.IsAny <MembershipExistsQuery>(), It.IsAny <CancellationToken>())) .ReturnsAsync(true); mediatorMock .Setup(m => m.Send(It.IsAny <CanDeleteMembershipQuery>(), It.IsAny <CancellationToken>())) .ReturnsAsync(true); DeleteMembershipCommand passedDeleteCommand = null; mediatorMock .Setup(m => m.Send(It.IsAny <DeleteMembershipCommand>(), It.IsAny <CancellationToken>())) .Callback <IRequest <Unit>, CancellationToken>((r, _) => passedDeleteCommand = (DeleteMembershipCommand)r) .ReturnsAsync(Unit.Value); GroupMembershipController controller = new GroupMembershipController(mediatorMock.Object, null); // Act ActionResult response = await controller.DeleteMembership(membershipId); // Assert Assert.IsType <NoContentResult>(response); mediatorMock.Verify(m => m.Send(It.IsAny <DeleteMembershipCommand>(), It.IsAny <CancellationToken>()), Times.Once); Assert.NotNull(passedDeleteCommand); Assert.Equal(membershipId, passedDeleteCommand.GroupMembershipId); }
public async Task DeleteMembership_ShouldReturnForbiddenResult_WhenUserIsNotPermittedToDelete() { // Arrange const int membershipId = 1; Mock <IMediator> mediatorMock = new Mock <IMediator>(); mediatorMock .Setup(m => m.Send(It.IsAny <MembershipExistsQuery>(), It.IsAny <CancellationToken>())) .ReturnsAsync(true); mediatorMock .Setup(m => m.Send(It.IsAny <CanDeleteMembershipQuery>(), It.IsAny <CancellationToken>())) .ReturnsAsync(false); GroupMembershipController controller = new GroupMembershipController(mediatorMock.Object, null); // Act ActionResult response = await controller.DeleteMembership(membershipId); // Assert ObjectResult result = Assert.IsType <ObjectResult>(response); ErrorResource error = Assert.IsType <ErrorResource>(result.Value); Assert.NotNull(error); Assert.Equal(StatusCodes.Status403Forbidden, error.StatusCode); }