public void GivenAConfigWithFlagSetThenTheEnvironmentVariableIsNotUsed(string s3EnvValue, S3UsEast1RegionalEndpointValue configFlagValue, S3UsEast1RegionalEndpointValue expectedValue, string expectedEndpointSystemName)
        {
            var olds3EnvValue = Environment.GetEnvironmentVariable(AwsS3RegionalEndpointEnvironmentVariable);
            var oldRegion     = Environment.GetEnvironmentVariable("AWS_REGION");

            try
            {
                Environment.SetEnvironmentVariable(AwsS3RegionalEndpointEnvironmentVariable, s3EnvValue);
                Environment.SetEnvironmentVariable("AWS_REGION", "us-east-1");
                var config = new AmazonS3Config()
                {
                    RegionEndpoint = Amazon.RegionEndpoint.USEast1,
                    USEast1RegionalEndpointValue = configFlagValue
                };
                // Simulate a first service call
                config.DetermineServiceURL();
                Assert.AreEqual(expectedValue, config.USEast1RegionalEndpointValue);
                Assert.AreEqual(expectedEndpointSystemName, config.RegionEndpoint.SystemName);
            }
            finally
            {
                Environment.SetEnvironmentVariable("AWS_REGION", oldRegion);
                Environment.SetEnvironmentVariable(AwsS3RegionalEndpointEnvironmentVariable, olds3EnvValue);
            }
        }
        public void GivenAConfigWithFlagNotSetThenTheEnvironmentVariableIsRespected(string s3FlagValue, string expectedEndpointSystemName)
        {
            var olds3EnvValue = Environment.GetEnvironmentVariable(AwsS3RegionalEndpointEnvironmentVariable);

            try
            {
                Environment.SetEnvironmentVariable(AwsS3RegionalEndpointEnvironmentVariable, s3FlagValue);
                var config = new AmazonS3Config()
                {
                    RegionEndpoint = Amazon.RegionEndpoint.USEast1
                };
                // Simulate a first service call
                config.DetermineServiceURL();
                Assert.AreEqual(expectedEndpointSystemName, config.RegionEndpoint.SystemName);
            }
            finally
            {
                Environment.SetEnvironmentVariable(AwsS3RegionalEndpointEnvironmentVariable, olds3EnvValue);
            }
        }
        public void GivenAConfigWithFlagNotSetThenTheEnvironmentVariableIsRespected(string s3FlagValue, string expectedEndpointUrl)
        {
            var olds3EnvValue = Environment.GetEnvironmentVariable(AwsS3RegionalEndpointEnvironmentVariable);
            var oldRegion     = Environment.GetEnvironmentVariable("AWS_REGION");

            try
            {
                Environment.SetEnvironmentVariable(AwsS3RegionalEndpointEnvironmentVariable, s3FlagValue);
                Environment.SetEnvironmentVariable("AWS_REGION", "us-east-1");
                var config = new AmazonS3Config()
                {
                    RegionEndpoint = Amazon.RegionEndpoint.USEast1
                };
                // Simulate a first service call
                var url = config.DetermineServiceURL();
                Assert.AreEqual(expectedEndpointUrl, url);
            }
            finally
            {
                Environment.SetEnvironmentVariable("AWS_REGION", oldRegion);
                Environment.SetEnvironmentVariable(AwsS3RegionalEndpointEnvironmentVariable, olds3EnvValue);
            }
        }