Custom WebProxy implementation that creates a webproxy based on user inputs(Host name and port number)
Inheritance: IWebProxy
        //Fact]
        public void WebProxyPrecedenceSetting()
        {
            var config = new AmazonS3Config
            {
                ProxyHost        = "127.0.0.1",
                ProxyPort        = 0,
                ProxyCredentials = new NetworkCredential("1", "1"),
                RegionEndpoint   = RegionEndpoint.USEast1,
                UseHttp          = true
            };
            var customProxy = new WebProxy("http://localhost:8888/");

            config.SetWebProxy(customProxy);
            Assert.Equal(customProxy, config.GetWebProxy());
        }
        //[Fact]
        public void HostPortPrecedenceSetting()
        {
            var customProxy = new WebProxy("http://localhost:8889/");
            var config      = new AmazonS3Config();

            config.SetWebProxy(customProxy);
            config.ProxyHost        = "127.0.0.1";
            config.ProxyPort        = 8888;
            config.ProxyCredentials = new NetworkCredential("1", "1");
            config.RegionEndpoint   = RegionEndpoint.USEast1;

            var setProxy = new WebProxy(config.ProxyHost, config.ProxyPort);

            config.SetWebProxy(setProxy);
            var c = config.GetWebProxy();

            Assert.Equal(setProxy, config.GetWebProxy());
        }