Пример #1
0
        public void When_a_subscription_exists_and_messages_are_in_the_queue_the_messages_are_returned()
        {
            _nameSpaceManagerWrapper.Setup(f => f.SubscriptionExists("topic", "subscription")).Returns(true);

            var messageLockTokenOne = Guid.NewGuid().ToString();
            var messageLockTokenTwo = Guid.NewGuid().ToString();


            var brokeredMessageList = new List <IBrokeredMessageWrapper>();
            var message1            = new Mock <IBrokeredMessageWrapper>();

            message1.Setup(m => m.LockToken).Returns(messageLockTokenOne);
            message1.Setup(m => m.MessageBodyValue).Returns(Encoding.UTF8.GetBytes("somebody"));
            var message2 = new Mock <IBrokeredMessageWrapper>();

            message2.Setup(m => m.LockToken).Returns(messageLockTokenTwo);
            message2.Setup(m => m.MessageBodyValue).Returns(Encoding.UTF8.GetBytes("somebody2"));
            brokeredMessageList.Add(message1.Object);
            brokeredMessageList.Add(message2.Object);

            _messageReceiver.Setup(x => x.Receive(10, TimeSpan.FromMilliseconds(400))).Returns(Task.FromResult <IEnumerable <IBrokeredMessageWrapper> >(brokeredMessageList));

            var result = _azureServiceBusConsumer.Receive(400);

            Assert.That(result[0].Body.Value, Is.EqualTo("somebody"));
            Assert.That(result[0].Header.Bag["LockToken"], Is.EqualTo(messageLockTokenOne));
            Assert.That(result[0].Header.Topic, Is.EqualTo("topic"));

            Assert.That(result[1].Body.Value, Is.EqualTo("somebody2"));
            Assert.That(result[1].Header.Bag["LockToken"], Is.EqualTo(messageLockTokenTwo));
            Assert.That(result[1].Header.Topic, Is.EqualTo("topic"));
        }
Пример #2
0
        public void When_ackOnRead_is_Set_and_DeadLetter_fails_then_exception_is_thrown()
        {
            var brokeredMessageList = new List <IBrokeredMessageWrapper>();
            var message1            = new Mock <IBrokeredMessageWrapper>();
            var mockMessageReceiver = new Mock <IServiceBusReceiverProvider>();

            mockMessageReceiver.Setup(x => x.Get("topic", "subscription", ServiceBusReceiveMode.PeekLock)).Returns(_messageReceiver.Object);

            var lockToken = Guid.NewGuid().ToString();

            message1.Setup(x => x.MessageBodyValue).Returns((byte[])null);
            message1.Setup(m => m.ApplicationProperties).Returns(new Dictionary <string, object>()
            {
                { "MessageType", "MT_EVENT" }
            });
            message1.Setup(m => m.LockToken).Returns(lockToken);

            brokeredMessageList.Add(message1.Object);

            _messageReceiver.Setup(x => x.Receive(10, TimeSpan.FromMilliseconds(400))).Returns(Task.FromResult <IEnumerable <IBrokeredMessageWrapper> >(brokeredMessageList));
            _messageReceiver.Setup(x => x.DeadLetter(lockToken)).Throws(new Exception());

            var azureServiceBusConsumer = new AzureServiceBusConsumer("topic", "subscription", _mockMessageProducer.Object,
                                                                      _nameSpaceManagerWrapper.Object, mockMessageReceiver.Object, makeChannels: OnMissingChannel.Create, receiveMode: ServiceBusReceiveMode.PeekLock);

            Message[] result = azureServiceBusConsumer.Receive(400);

            var msg = result.First();

            Assert.Throws <Exception>(() => azureServiceBusConsumer.Reject(msg));
        }
Пример #3
0
        public void When_a_subscription_does_not_exist_and_Missing_is_set_to_Validate_a_Channel_Failure_is_Raised()
        {
            _nameSpaceManagerWrapper.Setup(f => f.SubscriptionExists("topic", "subscription")).Returns(false);

            var azureServiceBusConsumerValidate = new AzureServiceBusConsumer("topic", "subscription", _mockMessageProducer.Object,
                                                                              _nameSpaceManagerWrapper.Object, _mockMessageReceiver.Object, makeChannels: OnMissingChannel.Validate);

            Assert.Throws <ChannelFailureException>(() => azureServiceBusConsumerValidate.Receive(400));
        }
Пример #4
0
        public void When_a_subscription_exists_and_messages_are_in_the_queue_the_messages_are_returned()
        {
            _nameSpaceManagerWrapper.Setup(f => f.SubscriptionExists("topic", "subscription")).Returns(true);

            var brokeredMessageList = new List <IBrokeredMessageWrapper>();
            var message1            = new Mock <IBrokeredMessageWrapper>();

            message1.Setup(m => m.MessageBodyValue).Returns(Encoding.UTF8.GetBytes("somebody"));
            message1.Setup(m => m.ApplicationProperties).Returns(new Dictionary <string, object>()
            {
                { "MessageType", "MT_EVENT" }
            });
            var message2 = new Mock <IBrokeredMessageWrapper>();

            message2.Setup(m => m.MessageBodyValue).Returns(Encoding.UTF8.GetBytes("somebody2"));
            message2.Setup(m => m.ApplicationProperties).Returns(new Dictionary <string, object>()
            {
                { "MessageType", "MT_DOCUMENT" }
            });
            brokeredMessageList.Add(message1.Object);
            brokeredMessageList.Add(message2.Object);

            _messageReceiver.Setup(x => x.Receive(10, TimeSpan.FromMilliseconds(400))).Returns(Task.FromResult <IEnumerable <IBrokeredMessageWrapper> >(brokeredMessageList));

            Message[] result = _azureServiceBusConsumer.Receive(400);

            Assert.Equal("somebody", result[0].Body.Value);
            Assert.Equal("topic", result[0].Header.Topic);
            Assert.Equal(MessageType.MT_EVENT, result[0].Header.MessageType);

            Assert.Equal("somebody2", result[1].Body.Value);
            Assert.Equal("topic", result[1].Header.Topic);
            Assert.Equal(MessageType.MT_DOCUMENT, result[1].Header.MessageType);
        }