public async Task Run()
        {
            var newEvent = new CohortApprovalRequestedByProvider();

            await _messageSession.Publish(newEvent);

            // TODO: assert the document is updated
        }
        public void Arrange()
        {
            _subscriptionFactory = new Mock <IMessageSubscriberFactory>();
            _subscriber          = new Mock <IMessageSubscriber <CohortApprovalRequestedByProvider> >();

            _messageContent = new CohortApprovalRequestedByProvider();

            _mockMessage = new Mock <IMessage <CohortApprovalRequestedByProvider> >();

            _mockMessage.Setup(x => x.Content).Returns(_messageContent);

            _mediator    = new Mock <IMediator>();
            _tokenSource = new CancellationTokenSource();

            _processor = new CohortApprovalRequestedMessageProcessor(_subscriptionFactory.Object, Mock.Of <ILog>(),
                                                                     _mediator.Object);

            _subscriptionFactory.Setup(x => x.GetSubscriber <CohortApprovalRequestedByProvider>()).Returns(_subscriber.Object);

            _subscriber.Setup(x => x.ReceiveAsAsync())
            .ReturnsAsync(() => _mockMessage.Object)
            .Callback(() => { _tokenSource.Cancel(); });
        }