public void TestWithListenerRegisteredAfterOpen()
        {
            var mockConnectionFactory = new Mock <R.IConnectionFactory>();
            var mockConnection        = new Mock <R.IConnection>();
            var listener = new IncrementConnectionListener();

            mockConnectionFactory.Setup((f) => f.CreateConnection(It.IsAny <string>())).Returns(mockConnection.Object);
            var connectionFactory = CreateConnectionFactory(mockConnectionFactory.Object, null);
            var con = connectionFactory.CreateConnection();

            Assert.Equal(0, listener.Called);
            connectionFactory.SetConnectionListeners(new List <IConnectionListener>()
            {
                listener
            });
            Assert.Equal(1, listener.Called);
            con.Close();
            Assert.Equal(1, listener.Called);
            mockConnection.Verify((c) => c.Close(It.IsAny <int>()), Times.Never);
            _ = connectionFactory.CreateConnection();
            Assert.Equal(1, listener.Called);
            connectionFactory.Destroy();
            Assert.Equal(0, listener.Called);
            mockConnection.Verify((c) => c.Close(It.IsAny <int>()), Times.AtLeastOnce);
            mockConnectionFactory.Verify((f) => f.CreateConnection(It.IsAny <string>()), Times.Once);
        }
Exemple #2
0
        public void TestWithListener()
        {
            var mockConnectionFactory = new Mock <RC.IConnectionFactory>();
            var mockConnection        = new Mock <RC.IConnection>();

            mockConnectionFactory.Setup((f) => f.CreateConnection(It.IsAny <string>())).Returns(mockConnection.Object);

            // var mockLogger = new Mock<ILoggerFactory>();
            var connectionFactory = CreateConnectionFactory(mockConnectionFactory.Object, null);
            var listener          = new IncrementConnectionListener();

            connectionFactory.SetConnectionListeners(new List <IConnectionListener>()
            {
                listener
            });
            var con = connectionFactory.CreateConnection();

            Assert.Equal(1, listener.Called);

            // mockLogger.Verify((l) => l.Log(LogLevel.Information, 0, It.IsAny<It.IsAnyType>(), null, (Func<It.IsAnyType, Exception, string>)It.IsAny<object>()), Times.AtLeast(2));
            con.Close();
            Assert.Equal(1, listener.Called);
            mockConnection.Verify((c) => c.Close(It.IsAny <int>()), Times.Never);
            connectionFactory.CreateConnection();
            Assert.Equal(1, listener.Called);
            connectionFactory.Destroy();
            Assert.Equal(0, listener.Called);
            mockConnection.Verify((c) => c.Close(It.IsAny <int>()), Times.AtLeastOnce);
            mockConnectionFactory.Verify((f) => f.CreateConnection(It.IsAny <string>()), Times.Once);

            connectionFactory.SetAddresses("foo:5672,bar:5672");
            con = connectionFactory.CreateConnection();
            Assert.Equal(1, listener.Called);

            // mockLogger.Verify((l) => l.Log(LogLevel.Information, 0, It.IsAny<It.IsAnyType>(), null, (Func<It.IsAnyType, Exception, string>)It.IsAny<object>()), Times.AtLeast(4));
            con.Close();
            connectionFactory.Destroy();
            Assert.Equal(0, listener.Called);
        }