Exemple #1
0
        public void UsingConnectionFactoryAndExceptionListener()
        {
            IConnectionFactory connectionFactory = (IConnectionFactory)mocks.CreateMock(typeof(IConnectionFactory));
            IConnection        connection        = (IConnection)mocks.CreateMock(typeof(IConnection));


            IExceptionListener listener = new ChainedExceptionListener();

            Expect.Call(connectionFactory.CreateConnection()).Return(connection).Repeat.Once();
            connection.ExceptionListener = listener;
            LastCall.On(connection).IgnoreArguments();
            Expect.Call(connection.ExceptionListener).Return(listener).Repeat.Once();

            connection.Start();
            LastCall.On(connection).Repeat.Twice();
            connection.Stop();
            LastCall.On(connection).Repeat.Once();
            connection.Close();
            LastCall.On(connection).Repeat.Once();

            mocks.ReplayAll();

            SingleConnectionFactory scf = new SingleConnectionFactory(connectionFactory);

            scf.ExceptionListener = listener;
            IConnection con1 = scf.CreateConnection();

            Assert.AreEqual(listener, connection.ExceptionListener);

            con1.Start();
            con1.Stop();  // should be ignored
            con1.Close(); // should be ignored
            IConnection con2 = scf.CreateConnection();

            con2.Start();
            con2.Stop();
            con2.Close();
            scf.Dispose();

            mocks.VerifyAll();
        }
        public void UsingConnectionFactoryAndExceptionListener()
        {
            IConnectionFactory connectionFactory = (IConnectionFactory)mocks.CreateMock(typeof(IConnectionFactory));
            IConnection connection = (IConnection)mocks.CreateMock(typeof(IConnection));


            IExceptionListener listener = new ChainedExceptionListener();
            Expect.Call(connectionFactory.CreateConnection()).Return(connection).Repeat.Once();
            connection.ExceptionListener = listener;
            LastCall.On(connection).IgnoreArguments();
            Expect.Call(connection.ExceptionListener).Return(listener).Repeat.Once();

            connection.Start();
            LastCall.On(connection).Repeat.Twice();
            connection.Stop();
            LastCall.On(connection).Repeat.Once();
            connection.Close();
            LastCall.On(connection).Repeat.Once();

            mocks.ReplayAll();
            
            SingleConnectionFactory scf = new SingleConnectionFactory(connectionFactory);
            scf.ExceptionListener = listener;
            IConnection con1 = scf.CreateConnection();

            Assert.AreEqual(listener, connection.ExceptionListener);

            con1.Start();
            con1.Stop(); // should be ignored
            con1.Close(); // should be ignored
            IConnection con2 = scf.CreateConnection();
            con2.Start();
            con2.Stop();
            con2.Close();
            scf.Dispose();
                       
            mocks.VerifyAll();
        }