public HandleShould()
            {
                receivedEvent = new ProvisionRequestedMessage
                {
                    Name          = "Neil Armstrong",
                    MobileId      = Guid.NewGuid(),
                    MobileOrderId = Guid.NewGuid()
                };

                existingSimCardOrder = new SimCardOrder
                {
                    Name          = "Alan Turing",
                    MobileId      = Guid.NewGuid(),
                    MobileOrderId = Guid.NewGuid()
                };

                transactionMock = new Mock <ITransaction>();
                dataStoreMock   = new Mock <ISimCardOrdersDataStore>();
                dataStoreMock.Setup(x => x.BeginTransaction()).Returns(transactionMock.Object);
                dataStoreMock.Setup(x => x.GetExisting(existingSimCardOrder.MobileId, existingSimCardOrder.MobileOrderId)).Returns(existingSimCardOrder);

                externalSimCardProviderServiceMock = new Mock <IExternalSimCardsProviderService>();
                var loggerMock           = new Mock <ILogger <ProvisionRequestedHandler> >();
                var messagePublisherMock = new Mock <IMessagePublisher>();
                var monitoringMock       = new Mock <IMonitoring>();

                sut = new ProvisionRequestedHandler(loggerMock.Object, dataStoreMock.Object, externalSimCardProviderServiceMock.Object, messagePublisherMock.Object, monitoringMock.Object);
            }
        public IMessageBusListener Build()
        {
            var handler = new ProvisionRequestedHandler(logger, simCardOrdersDataStore, simCardWholesaleService, messagePublisher, monitoring);

            messageBus.Subscribe <ProvisionRequestedMessage, IHandlerAsync <ProvisionRequestedMessage> >(handler);

            return(new MessageBusListener(messageBus, sqsService, new MessageDeserializer()));
        }