Esempio n. 1
0
        public void ProcessMessageAsync_LogsWarning_Stopped_Session()
        {
            try
            {
                _listener.Started = false;
                var message = ServiceBusModelFactory.ServiceBusReceivedMessage(
                    messageId: Guid.NewGuid().ToString(),
                    sessionId: Guid.NewGuid().ToString(),
                    sequenceNumber: 1,
                    deliveryCount: 55,
                    enqueuedTime: DateTimeOffset.Now,
                    lockedUntil: DateTimeOffset.Now);
                var receiver = new Mock <ServiceBusSessionReceiver>().Object;
                var args     = new ProcessSessionMessageEventArgs(message, receiver, CancellationToken.None);

                Assert.That(
                    async() => await _listener.ProcessSessionMessageAsync(args),
                    Throws.InstanceOf <InvalidOperationException>());

                Assert.NotNull(_loggerProvider.GetAllLogMessages()
                               .SingleOrDefault(
                                   x => x.FormattedMessage.StartsWith("Message received for a listener that is not in a running state. The message will not be delivered to the function, " +
                                                                      "and instead will be abandoned. (Listener started = False, Listener disposed = False") && x.Level == LogLevel.Warning));
            }
            finally
            {
                _listener.Started = true;
                _loggerProvider.ClearAllLogMessages();
            }
        }