コード例 #1
0
        public void ScheduleMessageExceptionLogsEvents()
        {
            var mockLogger          = new Mock <ServiceBusEventSource>();
            var mockTransportSender = new Mock <TransportSender>();
            var mockConnection      = GetMockConnection(mockTransportSender);

            var sender = new ServiceBusSender(
                "queueName",
                new ServiceBusSenderOptions(),
                mockConnection.Object,
                new ServiceBusPlugin[] { })
            {
                Logger = mockLogger.Object
            };

            mockTransportSender.Setup(
                sender => sender.ScheduleMessagesAsync(
                    It.IsAny <IReadOnlyList <ServiceBusMessage> >(),
                    It.IsAny <CancellationToken>()))
            .Throws(new Exception());

            var scheduleTime = DateTimeOffset.UtcNow.AddMinutes(1);

            Assert.That(
                async() => await sender.ScheduleMessageAsync(GetMessage(), scheduleTime),
                Throws.InstanceOf <Exception>());

            mockLogger
            .Verify(
                log => log.ScheduleMessagesStart(
                    sender.Identifier,
                    1,
                    It.IsAny <string>()),
                Times.Once);
            mockLogger
            .Verify(
                log => log.ScheduleMessagesException(
                    sender.Identifier,
                    It.IsAny <string>()),
                Times.Once);
        }
コード例 #2
0
        public async Task ScheduleMessageLogsEvents()
        {
            var mockLogger          = new Mock <ServiceBusEventSource>();
            var mockTransportSender = new Mock <TransportSender>();
            var mockConnection      = GetMockConnection(mockTransportSender);
            var sender = new ServiceBusSender(
                "queueName",
                new ServiceBusSenderOptions(),
                mockConnection.Object,
                new ServiceBusPlugin[] { })
            {
                Logger = mockLogger.Object
            };

            mockTransportSender.Setup(
                sender => sender.ScheduleMessagesAsync(
                    It.IsAny <IReadOnlyList <ServiceBusMessage> >(),
                    It.IsAny <CancellationToken>()))
            .Returns(Task.FromResult((IReadOnlyList <long>) new List <long> {
                1
            }));

            var scheduleTime = DateTimeOffset.UtcNow.AddMinutes(1);
            await sender.ScheduleMessageAsync(GetMessage(), scheduleTime);

            mockLogger
            .Verify(
                log => log.ScheduleMessagesStart(
                    sender.Identifier,
                    1,
                    It.IsAny <string>()),
                Times.Once);
            mockLogger
            .Verify(
                log => log.ScheduleMessagesComplete(
                    sender.Identifier),
                Times.Once);
        }