public void UsingConnectionFactoryAndExceptionListener() { IConnectionFactory connectionFactory = mocks.StrictMock <IConnectionFactory>(); IConnection connection = mocks.StrictMock <IConnection>(); IExceptionListener listener = new ChainedExceptionListener(); Expect.Call(connectionFactory.CreateConnection()).Return(connection).Repeat.Once(); connection.ExceptionListener += listener.OnException; LastCall.On(connection).IgnoreArguments(); 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(); //can't look at invocation list on event ...grrr. 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 = A.Fake <IConnectionFactory>(); IConnection connection = A.Fake <IConnection>(); IExceptionListener listener = new ChainedExceptionListener(); A.CallTo(() => connectionFactory.CreateConnection()).Returns(connection).Once(); SingleConnectionFactory scf = new SingleConnectionFactory(connectionFactory); scf.ExceptionListener = listener; IConnection con1 = scf.CreateConnection(); //can't look at invocation list on event ...grrr. con1.Start(); con1.Stop(); // should be ignored con1.Close(); // should be ignored IConnection con2 = scf.CreateConnection(); con2.Start(); con2.Stop(); con2.Close(); scf.Dispose(); // TODO //connection.ExceptionListener += listener.OnException; // LastCall.On(connection).IgnoreArguments(); A.CallTo(() => connection.Start()).MustHaveHappenedTwiceExactly(); A.CallTo(() => connection.Stop()).MustHaveHappenedOnceExactly(); A.CallTo(() => connection.Close()).MustHaveHappenedOnceExactly(); }
public void UsingConnectionFactoryAndExceptionListener() { IConnectionFactory connectionFactory = mocks.StrictMock<IConnectionFactory>(); IConnection connection = mocks.StrictMock<IConnection>(); IExceptionListener listener = new ChainedExceptionListener(); Expect.Call(connectionFactory.CreateConnection()).Return(connection).Repeat.Once(); connection.ExceptionListener += listener.OnException; LastCall.On(connection).IgnoreArguments(); 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(); //can't look at invocation list on event ...grrr. 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(); }