public void SubscribeTest()
        {
            var testEvent = new TestCreatedEvent();
            var signal    = new OperationCompletedSignal(testEvent);

            var mock = new Mock <ISubscriptionClient>();

            mock.Setup(s => s.RegisterSessionHandler(It.IsAny <Func <IMessageSession, Message, CancellationToken, Task> >(), It.IsAny <SessionHandlerOptions>()))
            .Callback <Func <IMessageSession, Message, CancellationToken, Task>, SessionHandlerOptions>((handler, _) =>
            {
                var msg         = CreateBusMessage(signal);
                var sessionMock = new Mock <IMessageSession>();
                handler?.Invoke(sessionMock.Object, msg, CancellationToken.None);
            });

            var logMock   = new Mock <ILogger <AzureReportBusClient> >();
            var reportBus = new AzureReportBusClient(logMock.Object, mock.Object);

            IMessage expectedMessage = null;

            reportBus.Subscribe(message =>
            {
                expectedMessage = message;
                return(Task.CompletedTask);
            });

            expectedMessage.Should().BeEquivalentTo(signal);
        }
        public async Task UnsubscribeTest()
        {
            var isUnsubscribeInvoked = false;

            var mock = new Mock <ISubscriptionClient>();

            mock.Setup(s => s.CloseAsync())
            .Callback(() =>
            {
                isUnsubscribeInvoked = true;
            });

            var logMock   = new Mock <ILogger <AzureReportBusClient> >();
            var reportBus = new AzureReportBusClient(logMock.Object, mock.Object);

            await reportBus.UnsubscribeAllAsync();

            isUnsubscribeInvoked.Should().BeTrue();
        }