Beispiel #1
0
        public void Should_Not_Throw_Exception_If_Trying_To_Remove_Channel_Not_In_Pool()
        {
            /* Setup */
            var pool    = new DynamicChannelPool(NullLogger <IChannelPool> .Instance);
            var channel = new Mock <IModel>();

            /* Test */
            pool.Remove(channel.Object);

            /* Assert */
            Assert.True(true, "Successfully remove a channel not in the pool");
        }
Beispiel #2
0
        public async Task Should_Remove_Channels_Based_On_Count()
        {
            /* Setup */
            var channels = new List <Mock <IModel> >
            {
                new Mock <IModel> {
                    Name = "First"
                },
                new Mock <IModel> {
                    Name = "Second"
                },
                new Mock <IModel> {
                    Name = "Third"
                }
            };

            foreach (var channel in channels)
            {
                channel
                .Setup(c => c.IsOpen)
                .Returns(true);
            }
            var pool = new DynamicChannelPool(channels.Select(c => c.Object), NullLogger <IChannelPool> .Instance);

            /* Test */
            pool.Remove(2);
            var firstChannel = await pool.GetAsync();

            var secondChannel = await pool.GetAsync();

            var thirdChannel = await pool.GetAsync();

            /* Assert */
            Assert.Equal(firstChannel, channels[2].Object);
            Assert.Equal(secondChannel, channels[2].Object);
            Assert.Equal(thirdChannel, channels[2].Object);
        }