public void UsingConnection() { IConnection connection = mocks.StrictMock<IConnection>(); connection.Start(); LastCall.On(connection).Repeat.Twice(); connection.PurgeTempDestinations(); 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(connection); IConnection con1 = scf.CreateConnection(); con1.Start(); con1.PurgeTempDestinations(); con1.Stop(); // should be ignored con1.Close(); // should be ignored IConnection con2 = scf.CreateConnection(); con2.Start(); con1.PurgeTempDestinations(); con2.Stop(); // should be ignored con2.Close(); // should be ignored. scf.Dispose(); mocks.VerifyAll(); }
public void UsingConnection() { IConnection connection = mocks.StrictMock <IConnection>(); connection.Start(); LastCall.On(connection).Repeat.Twice(); connection.PurgeTempDestinations(); 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(connection); IConnection con1 = scf.CreateConnection(); con1.Start(); con1.PurgeTempDestinations(); con1.Stop(); // should be ignored con1.Close(); // should be ignored IConnection con2 = scf.CreateConnection(); con2.Start(); con1.PurgeTempDestinations(); con2.Stop(); // should be ignored con2.Close(); // should be ignored. scf.Dispose(); mocks.VerifyAll(); }
public void UsingConnectionFactoryAndReconnectOnException() { IConnectionFactory connectionFactory = (IConnectionFactory)mocks.CreateMock(typeof(IConnectionFactory)); TestConnection con = new TestConnection(); Expect.Call(connectionFactory.CreateConnection()).Return(con).Repeat.Twice(); mocks.ReplayAll(); SingleConnectionFactory scf = new SingleConnectionFactory(connectionFactory); scf.ReconnectOnException = true; IConnection con1 = scf.CreateConnection(); con1.Start(); con.FireExcpetionEvent(new NMSException("")); IConnection con2 = scf.CreateConnection(); con2.Start(); scf.Dispose(); mocks.VerifyAll(); Assert.AreEqual(2, con.StartCount); Assert.AreEqual(2, con.CloseCount); }
public void UsingConnection() { IConnection connection = (IConnection)mocks.CreateMock(typeof(IConnection)); 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(connection); IConnection con1 = scf.CreateConnection(); con1.Start(); con1.Stop(); // should be ignored con1.Close(); // should be ignored IConnection con2 = scf.CreateConnection(); con2.Start(); con2.Stop(); // should be ignored con2.Close(); // should be ignored. scf.Dispose(); mocks.VerifyAll(); }
public void UsingConnectionFactoryAndClientId() { IConnectionFactory connectionFactory = A.Fake <IConnectionFactory>(); IConnection connection = A.Fake <IConnection>(); A.CallTo(() => connectionFactory.CreateConnection()).Returns(connection).Once(); SingleConnectionFactory scf = new SingleConnectionFactory(connectionFactory); scf.ClientId = "MyId"; IConnection con1 = scf.CreateConnection(); con1.Start(); con1.Close(); // should be ignored IConnection con2 = scf.CreateConnection(); con2.Start(); con2.Close(); // should be ignored scf.Dispose(); // should trigger actual close A.CallToSet(() => connection.ClientId).WhenArgumentsMatch(x => x.Get <string>(0) == "MyId").MustHaveHappenedOnceExactly(); A.CallTo(() => connection.Start()).MustHaveHappenedTwiceExactly(); A.CallTo(() => connection.Stop()).MustHaveHappenedOnceExactly(); A.CallTo(() => connection.Close()).MustHaveHappenedOnceExactly(); }
public void UsingConnectionFactoryAndClientId() { IConnectionFactory connectionFactory = (IConnectionFactory)mocks.CreateMock(typeof(IConnectionFactory)); IConnection connection = (IConnection)mocks.CreateMock(typeof(IConnection)); Expect.Call(connectionFactory.CreateConnection()).Return(connection).Repeat.Once(); connection.ClientId = "MyId"; LastCall.On(connection).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.ClientId = "MyId"; IConnection con1 = scf.CreateConnection(); con1.Start(); con1.Close(); // should be ignored IConnection con2 = scf.CreateConnection(); con2.Start(); con2.Close(); // should be ignored scf.Dispose(); // should trigger actual close mocks.VerifyAll(); }
public void UsingConnectionFactory() { IConnectionFactory connectionFactory = (IConnectionFactory)mocks.StrictMock <IConnectionFactory>(); IConnection connection = mocks.StrictMock <IConnection>(); Expect.Call(connectionFactory.CreateConnection()).Return(connection).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); IConnection con1 = scf.CreateConnection(); con1.Start(); con1.Close(); // should be ignored IConnection con2 = scf.CreateConnection(); con2.Start(); con2.Close(); //should be ignored scf.Dispose(); //should trigger actual close mocks.VerifyAll(); }
public void UsingConnectionFactoryAndExceptionListenerAndReconnectOnException() { IConnectionFactory connectionFactory = A.Fake <IConnectionFactory>(); TestConnection con = new TestConnection(); TestExceptionListener listener = new TestExceptionListener(); A.CallTo(() => connectionFactory.CreateConnection()).Returns(con).Twice(); SingleConnectionFactory scf = new SingleConnectionFactory(connectionFactory); scf.ExceptionListener = listener; scf.ReconnectOnException = true; IConnection con1 = scf.CreateConnection(); //Assert.AreSame(listener, ); con1.Start(); con.FireExcpetionEvent(new NMSException("")); IConnection con2 = scf.CreateConnection(); con2.Start(); scf.Dispose(); Assert.AreEqual(2, con.StartCount); Assert.AreEqual(2, con.CloseCount); Assert.AreEqual(1, listener.Count); }
public void UsingConnectionFactoryAndExceptionListenerAndReconnectOnException() { IConnectionFactory connectionFactory = mocks.StrictMock <IConnectionFactory>(); TestConnection con = new TestConnection(); TestExceptionListener listener = new TestExceptionListener(); Expect.Call(connectionFactory.CreateConnection()).Return(con).Repeat.Twice(); mocks.ReplayAll(); SingleConnectionFactory scf = new SingleConnectionFactory(connectionFactory); scf.ExceptionListener = listener; scf.ReconnectOnException = true; IConnection con1 = scf.CreateConnection(); //Assert.AreSame(listener, ); con1.Start(); con.FireExcpetionEvent(new NMSException("")); IConnection con2 = scf.CreateConnection(); con2.Start(); scf.Dispose(); mocks.VerifyAll(); Assert.AreEqual(2, con.StartCount); Assert.AreEqual(2, con.CloseCount); Assert.AreEqual(1, listener.Count); }
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 UsingConnectionFactory() { IConnectionFactory connectionFactory = A.Fake <IConnectionFactory>(); IConnection connection = A.Fake <IConnection>(); A.CallTo(() => connectionFactory.CreateConnection()).Returns(connection).Once(); SingleConnectionFactory scf = new SingleConnectionFactory(connectionFactory); IConnection con1 = scf.CreateConnection(); con1.Start(); con1.Close(); // should be ignored IConnection con2 = scf.CreateConnection(); con2.Start(); con2.Close(); //should be ignored scf.Dispose(); //should trigger actual close A.CallTo(() => connection.Start()).MustHaveHappenedTwiceExactly(); A.CallTo(() => connection.Stop()).MustHaveHappenedOnceExactly(); A.CallTo(() => connection.Close()).MustHaveHappenedOnceExactly(); }
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 UsingConnection() { IConnection connection = A.Fake <IConnection>(); SingleConnectionFactory scf = new SingleConnectionFactory(connection); IConnection con1 = scf.CreateConnection(); con1.Start(); con1.PurgeTempDestinations(); con1.Stop(); // should be ignored con1.Close(); // should be ignored IConnection con2 = scf.CreateConnection(); con2.Start(); con1.PurgeTempDestinations(); con2.Stop(); // should be ignored con2.Close(); // should be ignored. scf.Dispose(); A.CallTo(() => connection.Start()).MustHaveHappenedTwiceExactly(); A.CallTo(() => connection.PurgeTempDestinations()).MustHaveHappenedTwiceExactly(); A.CallTo(() => connection.Stop()).MustHaveHappenedOnceExactly(); A.CallTo(() => connection.Close()).MustHaveHappenedOnceExactly(); }
public void SessionCallbackWithinSynchronizedTransaction() { SingleConnectionFactory scf = new SingleConnectionFactory(mockConnectionFactory); NmsTemplate template = CreateTemplate(); template.ConnectionFactory = scf; mockConnection.Start(); LastCall.On(mockConnection).Repeat.Times(2); // We're gonna call getTransacted 3 times, i.e. 2 more times. Expect.Call(mockSession.Transacted).Return(UseTransactedSession).Repeat.Twice(); if (UseTransactedTemplate) { mockSession.Commit(); LastCall.On(mockSession).Repeat.Once(); } mockSession.Close(); LastCall.On(mockSession).Repeat.Once(); mockConnection.Stop(); LastCall.On(mockConnection).Repeat.Once(); mockConnection.Close(); LastCall.On(mockConnection).Repeat.Once(); mocks.ReplayAll(); TransactionSynchronizationManager.InitSynchronization(); try { template.Execute(delegate(ISession session) { bool b = session.Transacted; return null; }); template.Execute(delegate(ISession session) { bool b = session.Transacted; return null; }); Assert.AreSame(mockSession, ConnectionFactoryUtils.GetTransactionalSession(scf, null, false)); Assert.AreSame(mockSession, ConnectionFactoryUtils.GetTransactionalSession(scf, scf.CreateConnection(), false)); //In Java this test was doing 'double-duty' and testing TransactionAwareConnectionFactoryProxy, which has //not been implemented in .NET template.Execute(delegate(ISession session) { bool b = session.Transacted; return null; }); IList synchs = TransactionSynchronizationManager.Synchronizations; Assert.AreEqual(1, synchs.Count); ITransactionSynchronization synch = (ITransactionSynchronization) synchs[0]; synch.BeforeCommit(false); synch.BeforeCompletion(); synch.AfterCommit(); synch.AfterCompletion(TransactionSynchronizationStatus.Unknown); } finally { TransactionSynchronizationManager.ClearSynchronization(); //Assert.IsTrue(TransactionSynchronizationManager.ResourceDictionary.Count == 0); //Assert.IsFalse(TransactionSynchronizationManager.SynchronizationActive); scf.Dispose(); } Assert.IsTrue(TransactionSynchronizationManager.ResourceDictionary.Count == 0); mocks.VerifyAll(); }
public CloseSupressingConnection(SingleConnectionFactory singleConnectionFactory, IConnection target) { this.target = target; this.singleConnectionFactory = singleConnectionFactory; }
public void UsingConnectionFactoryAndExceptionListenerAndReconnectOnException() { IConnectionFactory connectionFactory = mocks.StrictMock<IConnectionFactory>(); TestConnection con = new TestConnection(); TestExceptionListener listener = new TestExceptionListener(); Expect.Call(connectionFactory.CreateConnection()).Return(con).Repeat.Twice(); mocks.ReplayAll(); SingleConnectionFactory scf = new SingleConnectionFactory(connectionFactory); scf.ExceptionListener = listener; scf.ReconnectOnException = true; IConnection con1 = scf.CreateConnection(); //Assert.AreSame(listener, ); con1.Start(); con.FireExcpetionEvent(new NMSException("")); IConnection con2 = scf.CreateConnection(); con2.Start(); scf.Dispose(); mocks.VerifyAll(); Assert.AreEqual(2, con.StartCount); Assert.AreEqual(2, con.CloseCount); Assert.AreEqual(1, listener.Count); }
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 UsingConnectionFactory() { IConnectionFactory connectionFactory = (IConnectionFactory)mocks.StrictMock<IConnectionFactory>(); IConnection connection = mocks.StrictMock<IConnection>(); Expect.Call(connectionFactory.CreateConnection()).Return(connection).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); IConnection con1 = scf.CreateConnection(); con1.Start(); con1.Close(); // should be ignored IConnection con2 = scf.CreateConnection(); con2.Start(); con2.Close(); //should be ignored scf.Dispose(); //should trigger actual close mocks.VerifyAll(); }