예제 #1
0
        public void ShouldNotAcknowledgeMessagesIfInvalid()
        {
            _source = new MessageSource <ITestMessage>(_lazyConnection, new[] { _deserializer }, _destination,
                                                       AcknowledgementMode.ClientAcknowledge);

            var consumer = A.Fake <IMessageConsumer>();

            A.CallTo(() => _session.CreateConsumer(_destination, null, false)).Returns(consumer);

            IBytesMessage bytesMessage = A.Fake <IBytesMessage>();

            A.CallTo(() => _deserializer.Deserialize(A <Stream> .Ignored)).Throws <Exception>();

            _source.Messages.Subscribe(_observer);
            consumer.Listener += Raise.FreeForm.With((Apache.NMS.IMessage)bytesMessage);

            A.CallTo(() => bytesMessage.Acknowledge()).MustNotHaveHappened();
        }