示例#1
0
        public void NewInstanceTest()
        {
            // Arrange
            var pool = new TinyHttpClientPool();


            // Act
            var a = pool.Fetch();
            var b = pool.Fetch();

            // Assert
            Assert.NotSame(a, b);
        }
示例#2
0
        public void ReuseTest()
        {
            // Arrange
            var pool = new TinyHttpClientPool();

            // Act
            var a = pool.Fetch();

            a.Dispose();
            var b = pool.Fetch();

            // Assert
            Assert.Same(a, b);
        }
示例#3
0
        public void InitializeClientOnFetchTest()
        {
            // Arrange
            var i    = 0;
            var pool = new TinyHttpClientPool();

            pool.ClientInitializationOnFetch = (obj) => i++;

            // Act
            var a = pool.Fetch();

            a.Dispose();
            var b = pool.Fetch();

            b.Dispose();

            // Assert
            Assert.Equal(2, i);
        }
示例#4
0
        public void InitializationTest()
        {
            // Arrange
            var pool = new TinyHttpClientPool();

            // Act
            var a = pool.Fetch();

            // Assert
            Assert.NotNull(a);
        }
示例#5
0
        public void ResetHeadersOnReuseTest()
        {
            // Arrange
            var pool = new TinyHttpClientPool(
                new TinyHttpClientPoolConfiguration()
            {
                ResetHeadersOnReuse = true
            });

            // Act
            var a = pool.Fetch();

            a.DefaultRequestHeaders.Add("Ducks", "are awesome");
            a.Dispose();

            var b = pool.Fetch();

            // Assert
            Assert.Same(a, b);
            Assert.Equal(0, b.DefaultRequestHeaders.Count());
        }
示例#6
0
        public void FlushTest()
        {
            // Arrange
            var pool = new TinyHttpClientPool();

            // Act
            var a = pool.Fetch();
            var b = pool.Fetch();

            // Assert and dispose
            Assert.Equal(0, pool.AvailableCount);
            Assert.Equal(2, pool.TotalPoolSize);

            a.Dispose();

            Assert.Equal(1, pool.AvailableCount);
            Assert.Equal(2, pool.TotalPoolSize);

            pool.Flush(); // Only removes unused

            Assert.Equal(0, pool.AvailableCount);
            Assert.Equal(1, pool.TotalPoolSize); // There should be one left since it's still in use
        }
示例#7
0
        public void BaseUrlThroughConfigurationTest()
        {
            // Arrange
            var pool = new TinyHttpClientPool(
                new TinyHttpClientPoolConfiguration()
            {
                BaseUrl = "https://www.ducksareawesome.net"
            });

            // Act
            var a = pool.Fetch();

            // Assert
            Assert.Equal("https://www.ducksareawesome.net/", a.BaseAddress.ToString());
        }
示例#8
0
        public async System.Threading.Tasks.Task MessageHandlerThroughConfigurationTest()
        {
            // Arrange
            var pool = new TinyHttpClientPool(
                new TinyHttpClientPoolConfiguration()
            {
                BaseUrl        = "https://www.ducksareawesome.net",
                MessageHandler = new TinyHttpClientPool.Tests.DummyMessageHandler()
            });

            // Act
            var a      = pool.Fetch();
            var result = await a.GetAsync("http://test.nu/fake");

            // Assert
            Assert.Equal(result.StatusCode, System.Net.HttpStatusCode.SeeOther);
        }