Apache.NMS.ActiveMQ.Test.IndividualAckTest.TestIndividualAcknowledgeMultiMessages_AcknowledgeFirstTest C# (CSharp) Method

TestIndividualAcknowledgeMultiMessages_AcknowledgeFirstTest() private method

        public void TestIndividualAcknowledgeMultiMessages_AcknowledgeFirstTest()
        {
            ISession session = connection.CreateSession(AcknowledgementMode.IndividualAcknowledge);

            // Push 2 messages to queue
            ITemporaryQueue queue = session.CreateTemporaryQueue();
            IMessageProducer producer = session.CreateProducer(queue);

            ITextMessage msg = session.CreateTextMessage("test 1");
            producer.Send(msg, MsgDeliveryMode.Persistent, MsgPriority.Normal, TimeSpan.MinValue);
            msg = session.CreateTextMessage("test 2");
            producer.Send(msg, MsgDeliveryMode.Persistent, MsgPriority.Normal, TimeSpan.MinValue);
            producer.Close();

            IMessageConsumer consumer = session.CreateConsumer(queue);

            // Read the first message
            ITextMessage fetchedMessage1 = (ITextMessage) consumer.Receive(TimeSpan.FromMilliseconds(2000));
            Assert.IsNotNull(fetchedMessage1);
            Assert.AreEqual("test 1", fetchedMessage1.Text);

            // Read the second message
            ITextMessage fetchedMessage2 = (ITextMessage) consumer.Receive(TimeSpan.FromMilliseconds(2000));
            Assert.IsNotNull(fetchedMessage2);
            Assert.AreEqual("test 2", fetchedMessage2.Text);

            // Acknowledge first message
            fetchedMessage1.Acknowledge();

            consumer.Close();

            // Read first message a second time
            consumer = session.CreateConsumer(queue);
            fetchedMessage1 = (ITextMessage) consumer.Receive(TimeSpan.FromMilliseconds(2000));
            Assert.IsNotNull(fetchedMessage1);
            Assert.AreEqual("test 2", fetchedMessage1.Text);

            // Try to read second message a second time
            fetchedMessage2 = (ITextMessage) consumer.Receive(TimeSpan.FromMilliseconds(2000));
            Assert.IsNull(fetchedMessage2);
            consumer.Close();
        }