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();
        }