Beispiel #1
0
        public void CachedMessageProducerTwoRequests()
        {
            IConnectionFactory connectionFactory = CreateConnectionFactory();

            CachingConnectionFactory cachingConnectionFactory = new CachingConnectionFactory();

            cachingConnectionFactory.TargetConnectionFactory = connectionFactory;
            IConnection con1 = cachingConnectionFactory.CreateConnection();

            ISession            sessionA  = con1.CreateSession(AcknowledgementMode.Transactional);
            IMessageProducer    producerA = sessionA.CreateProducer();
            TestMessageProducer tmpA      = GetTestMessageProducer(producerA);


            ISession            sessionB  = con1.CreateSession(AcknowledgementMode.Transactional);
            IMessageProducer    producerB = sessionB.CreateProducer();
            TestMessageProducer tmpB      = GetTestMessageProducer(producerB);

            Assert.AreNotSame(tmpA, tmpB);

            sessionA.Close();

            ISession            sessionC  = con1.CreateSession(AcknowledgementMode.Transactional);
            IMessageProducer    producerC = sessionC.CreateProducer();
            TestMessageProducer tmpC      = GetTestMessageProducer(producerC);

            Assert.AreSame(tmpA, tmpC);
        }
Beispiel #2
0
        public void CachedMessageProducer()
        {
            IConnectionFactory connectionFactory = (IConnectionFactory)mocks.CreateMock(typeof(IConnectionFactory));
            IConnection        connection        = new TestConnection();

            Expect.Call(connectionFactory.CreateConnection()).Return(connection).Repeat.Once();

            mocks.ReplayAll();


            CachingConnectionFactory cachingConnectionFactory = new CachingConnectionFactory();

            cachingConnectionFactory.TargetConnectionFactory = connectionFactory;
            IConnection con1 = cachingConnectionFactory.CreateConnection();

            ISession            sessionA  = con1.CreateSession(AcknowledgementMode.Transactional);
            IMessageProducer    producerA = sessionA.CreateProducer();
            TestMessageProducer tmpA      = GetTestMessageProducer(producerA);

            sessionA.Close();

            ISession            sessionB  = con1.CreateSession(AcknowledgementMode.Transactional);
            IMessageProducer    producerB = sessionB.CreateProducer();
            TestMessageProducer tmpB      = GetTestMessageProducer(producerB);

            Assert.AreSame(tmpA, tmpB);

            mocks.VerifyAll();
        }
Beispiel #3
0
        private static TestMessageProducer GetTestMessageProducer(IMessageProducer producer1)
        {
            CachedMessageProducer cmp1 = producer1 as CachedMessageProducer;

            Assert.IsNotNull(cmp1);
            TestMessageProducer tmp1 = cmp1.Target as TestMessageProducer;

            Assert.IsNotNull(tmp1);
            return(tmp1);
        }