public async Task PurchaseOrderIsAccepted() { AcceptedPurchaseOrder accepted = new AcceptedPurchaseOrder { Accepted = true }; bool publishedAccepted = false; var mockMediator = new Mock <IMediator>(); mockMediator.Setup(m => m.Send(It.IsAny <AcceptPurchaseOrder>(), It.IsAny <CancellationToken>())) .ReturnsAsync(accepted) .Verifiable("Sent AcceptPurchaseOrder command."); mockMediator.Setup(m => m.Publish(It.IsAny <ProcessedPurchaseOrder>(), It.IsAny <CancellationToken>())) .Returns(Task.CompletedTask) .Verifiable("Published ProcessedPurchase order notification."); PurchaseOrder sut = CreateTestPurchaseOrder(mockMediator.Object); await sut.Accept(); mockMediator.Verify(m => m.Send(It.IsAny <AcceptPurchaseOrder>(), It.IsAny <CancellationToken>()), Times.Once()); mockMediator.Verify(m => m.Publish(It.IsAny <ProcessedPurchaseOrder>(), It.IsAny <CancellationToken>()), Times.Once); sut.Accepted.ShouldBeTrue(); }