Encapsulate common things necessary for all bucket region tests. Tests require a bucket where the DNS has propagated and S3 has stopped issuing 301 for the bucket. This is done by ensuring the bucket is well over 4 hours old. Tests must check the TestBucketIsReady property before running.
Inheritance: IDisposable
Exemplo n.º 1
0
 public void GetPreSignedUrlSigV4ExplicitlySet()
 {
     using (var runner = new BucketRegionTestRunner(true, true))
     {
         if (runner.TestBucketIsReady)
         {
             Assert.AreEqual(HttpStatusCode.BadRequest, GetHttpStatusCode(runner.USEast1Client.GetPreSignedURL(runner.PreSignedUrlRequest)));
         }
     }
 }
Exemplo n.º 2
0
 public void GetPreSignedUrlSigV2()
 {
     using (var runner = new BucketRegionTestRunner(false))
     {
         if (runner.TestBucketIsReady)
         {
             Assert.AreEqual(HttpStatusCode.OK, GetHttpStatusCode(runner.USEast1Client.GetPreSignedURL(runner.PreSignedUrlRequest)));
         }
     }
 }
Exemplo n.º 3
0
        public void DeleteBucketUsingS3RegionUSEast1Enum()
        {
            using (var runner = new BucketRegionTestRunner(true, true))
            {
                var bucketName = S3TestUtils.CreateBucketWithWait(runner.USEast1Client);

                runner.USWest1Client.DeleteBucket(new DeleteBucketRequest
                {
                    BucketName   = bucketName,
                    BucketRegion = S3Region.US
                });
            }
        }
Exemplo n.º 4
0
 public void HappyCaseSigV4()
 {
     // make sure the cache works when it gets the region from the response body
     using (var runner = new BucketRegionTestRunner(true))
     {
         if (runner.TestBucketIsReady)
         {
             runner.USEast1Client.PutObject(runner.PutObjectRequest);
             RegionEndpoint cachedRegion;
             Assert.IsTrue(BucketRegionDetector.BucketRegionCache.TryGetValue(runner.BucketName, out cachedRegion));
             Assert.AreEqual(RegionEndpoint.USWest1, cachedRegion);
         }
     }
 }
Exemplo n.º 5
0
 public void HappyCaseDoesS3BucketExist()
 {
     // make sure the cache works when it gets the region from the x-amz-bucket-region header
     using (var runner = new BucketRegionTestRunner(true, true))
     {
         if (runner.TestBucketIsReady)
         {
             Assert.IsTrue(AmazonS3Util.DoesS3BucketExistV2(runner.USEast1Client, runner.BucketName));
             RegionEndpoint cachedRegion;
             Assert.IsTrue(BucketRegionDetector.BucketRegionCache.TryGetValue(runner.BucketName, out cachedRegion));
             Assert.AreEqual(RegionEndpoint.USWest1, cachedRegion);
         }
     }
 }
 public async Task HappyCaseSigV4()
 {
     // make sure the cache works when it gets the region from the response body
     using (var runner = new BucketRegionTestRunner(true))
     {
         if (runner.TestBucketIsReady)
         {
             await runner.USEast1Client.PutObjectAsync(runner.PutObjectRequest);
             RegionEndpoint cachedRegion;
             Assert.IsTrue(BucketRegionDetector.BucketRegionCache.TryGetValue(runner.BucketName, out cachedRegion));
             Assert.AreEqual(RegionEndpoint.USWest1, cachedRegion);
         }
     }
 }
Exemplo n.º 7
0
 public void HappyCaseSigV4()
 {
     // make sure the cache works when it gets the region from the response body
     using (var runner = new BucketRegionTestRunner(true))
     {
         if (runner.TestBucketIsReady)
         {
             BeginPutObject(runner).AsyncWaitHandle.WaitOne();
             RegionEndpoint cachedRegion;
             Assert.IsTrue(BucketRegionDetector.BucketRegionCache.TryGetValue(runner.BucketName, out cachedRegion));
             Assert.AreEqual(RegionEndpoint.USWest1, cachedRegion);
         }
     }
 }
Exemplo n.º 8
0
 public void HappyCaseSigV2()
 {
     // make sure we're not using the cache with SigV2 requests
     using (var runner = new BucketRegionTestRunner(false))
     {
         if (runner.TestBucketIsReady)
         {
             runner.USEast1Client.PutObject(runner.PutObjectRequest);
             RegionEndpoint cachedRegion;
             Assert.IsFalse(BucketRegionDetector.BucketRegionCache.TryGetValue(runner.BucketName, out cachedRegion));
             Assert.AreEqual(null, cachedRegion);
         }
     }
 }
 public async Task HappyCaseSigV2()
 {
     // make sure we're not using the cache with SigV2 requests
     using (var runner = new BucketRegionTestRunner(false))
     {
         if (runner.TestBucketIsReady)
         {
             await runner.USEast1Client.PutObjectAsync(runner.PutObjectRequest);
             RegionEndpoint cachedRegion;
             Assert.IsFalse(BucketRegionDetector.BucketRegionCache.TryGetValue(runner.BucketName, out cachedRegion));
             Assert.AreEqual(null, cachedRegion);
         }
     }
 }
Exemplo n.º 10
0
 public void BucketRecreatedInDifferentRegion()
 {
     // make sure the cache gets refreshed when it should
     using (var runner = new BucketRegionTestRunner(true))
     {
         if (runner.TestBucketIsReady)
         {
             BucketRegionDetector.BucketRegionCache.AddOrUpdate(runner.BucketName, RegionEndpoint.APNortheast2);
             BeginPutObject(runner).AsyncWaitHandle.WaitOne();
             RegionEndpoint cachedRegion;
             Assert.IsTrue(BucketRegionDetector.BucketRegionCache.TryGetValue(runner.BucketName, out cachedRegion));
             Assert.AreEqual(RegionEndpoint.USWest1, cachedRegion);
         }
     }
 }
Exemplo n.º 11
0
 public void BucketRecreatedInDifferentRegion()
 {
     // make sure the cache gets refreshed when it should
     using (var runner = new BucketRegionTestRunner(true))
     {
         if (runner.TestBucketIsReady)
         {
             BucketRegionDetector.BucketRegionCache.AddOrUpdate(runner.BucketName, RegionEndpoint.APNortheast2);
             runner.USEast1Client.PutObject(runner.PutObjectRequest);
             RegionEndpoint cachedRegion;
             Assert.IsTrue(BucketRegionDetector.BucketRegionCache.TryGetValue(runner.BucketName, out cachedRegion));
             Assert.AreEqual(RegionEndpoint.USWest1, cachedRegion);
         }
     }
 }
Exemplo n.º 12
0
 public async Task BucketRecreatedInDifferentRegion()
 {
     // make sure the cache gets refreshed when it should
     using (var runner = new BucketRegionTestRunner(true))
     {
         if (runner.TestBucketIsReady)
         {
             BucketRegionDetector.BucketRegionCache.AddOrUpdate(runner.BucketName, RegionEndpoint.APNortheast2);
             await runner.USEast1Client.PutObjectAsync(runner.PutObjectRequest);
             RegionEndpoint cachedRegion;
             Assert.IsTrue(BucketRegionDetector.BucketRegionCache.TryGetValue(runner.BucketName, out cachedRegion));
             Assert.AreEqual(RegionEndpoint.USWest1, cachedRegion);
         }
     }
 }
 public void HappyCaseGetObjectMetedata()
 {
     // make sure the cache works when it gets the region from a HEAD bucket request
     using (var runner = new BucketRegionTestRunner(true))
     {
         if (runner.TestBucketIsReady)
         {
             // ensure the object exists then clear the cache
             BeginPutObject(runner).AsyncWaitHandle.WaitOne();
             BucketRegionDetector.BucketRegionCache.Clear();
             BeginGetObjectMetadata(runner).AsyncWaitHandle.WaitOne();
             RegionEndpoint cachedRegion;
             Assert.IsTrue(BucketRegionDetector.BucketRegionCache.TryGetValue(runner.BucketName, out cachedRegion));
             Assert.AreEqual(RegionEndpoint.USWest1, cachedRegion);
         }
     }
 }
Exemplo n.º 14
0
 public void GetObjectMetedataSessionCredentials()
 {
     // make sure the cache works when it gets the region from a HEAD bucket request
     using (var runner = new BucketRegionTestRunner(true))
     {
         if (runner.TestBucketIsReady)
         {
             // ensure the object exists then clear the cache
             runner.USEast1ClientWithSessionCredentials.PutObject(runner.PutObjectRequest);
             BucketRegionDetector.BucketRegionCache.Clear();
             runner.USEast1ClientWithSessionCredentials.GetObjectMetadata(runner.GetObjectMetadataRequest);
             RegionEndpoint cachedRegion;
             Assert.IsTrue(BucketRegionDetector.BucketRegionCache.TryGetValue(runner.BucketName, out cachedRegion));
             Assert.AreEqual(RegionEndpoint.USWest1, cachedRegion);
         }
     }
 }
 public void HappyCaseSigV2()
 {
     // make sure we're not using the cache with SigV2 requests
     using (var runner = new BucketRegionTestRunner(false))
     {
         if (runner.TestBucketIsReady)
         {
             var result = BeginPutObject(runner);
             result.AsyncWaitHandle.WaitOne();
             RegionEndpoint cachedRegion;
             Assert.IsFalse(BucketRegionDetector.BucketRegionCache.TryGetValue(runner.BucketName, out cachedRegion));
             Assert.AreEqual(null, cachedRegion);
             // throw in an assertion to make sure the state makes the round trip correctly
             Assert.AreEqual(testState, result.AsyncState);
         }
     }
 }
Exemplo n.º 16
0
 public async Task HappyCaseGetObjectMetedata()
 {
     // make sure the cache works when it gets the region from a HEAD bucket request
     using (var runner = new BucketRegionTestRunner(true))
     {
         if (runner.TestBucketIsReady)
         {
             // ensure the object exists then clear the cache
             await runner.USEast1Client.PutObjectAsync(runner.PutObjectRequest);
             BucketRegionDetector.BucketRegionCache.Clear();
             await runner.USEast1Client.GetObjectMetadataAsync(runner.GetObjectMetadataRequest);
             RegionEndpoint cachedRegion;
             Assert.IsTrue(BucketRegionDetector.BucketRegionCache.TryGetValue(runner.BucketName, out cachedRegion));
             Assert.AreEqual(RegionEndpoint.USWest1, cachedRegion);
         }
     }
 }
Exemplo n.º 17
0
 public void GetObjectMetedataSessionCredentials()
 {
     // make sure the cache works when it gets the region from a HEAD bucket request
     using (var runner = new BucketRegionTestRunner(true))
     {
         if (runner.TestBucketIsReady)
         {
             // ensure the object exists then clear the cache
             runner.USEast1ClientWithSessionCredentials.PutObject(runner.PutObjectRequest);
             BucketRegionDetector.BucketRegionCache.Clear();
             runner.USEast1ClientWithSessionCredentials.GetObjectMetadata(runner.GetObjectMetadataRequest);
             RegionEndpoint cachedRegion;
             Assert.IsTrue(BucketRegionDetector.BucketRegionCache.TryGetValue(runner.BucketName, out cachedRegion));
             Assert.AreEqual(RegionEndpoint.USWest1, cachedRegion);
         }
     }
 }
Exemplo n.º 18
0
 public void HappyCaseGetObjectMetedata()
 {
     // make sure the cache works when it gets the region from a HEAD bucket request
     using (var runner = new BucketRegionTestRunner(true))
     {
         if (runner.TestBucketIsReady)
         {
             // ensure the object exists then clear the cache
             BeginPutObject(runner).AsyncWaitHandle.WaitOne();
             BucketRegionDetector.BucketRegionCache.Clear();
             BeginGetObjectMetadata(runner).AsyncWaitHandle.WaitOne();
             RegionEndpoint cachedRegion;
             Assert.IsTrue(BucketRegionDetector.BucketRegionCache.TryGetValue(runner.BucketName, out cachedRegion));
             Assert.AreEqual(RegionEndpoint.USWest1, cachedRegion);
         }
     }
 }
Exemplo n.º 19
0
 public void HappyCaseSigV2()
 {
     // make sure we're not using the cache with SigV2 requests
     using (var runner = new BucketRegionTestRunner(false))
     {
         if (runner.TestBucketIsReady)
         {
             var result = BeginPutObject(runner);
             result.AsyncWaitHandle.WaitOne();
             RegionEndpoint cachedRegion;
             Assert.IsFalse(BucketRegionDetector.BucketRegionCache.TryGetValue(runner.BucketName, out cachedRegion));
             Assert.AreEqual(null, cachedRegion);
             // throw in an assertion to make sure the state makes the round trip correctly
             Assert.AreEqual(testState, result.AsyncState);
         }
     }
 }
        public async Task HappyCaseGetObjectMetedata()
        {
            // make sure the cache works when it gets the region from a HEAD bucket request
            using (var runner = new BucketRegionTestRunner(true))
            {
                if (runner.TestBucketIsReady)
                {
                    // ensure the object exists then clear the cache
                    await runner.USEast1Client.PutObjectAsync(runner.PutObjectRequest);

                    BucketRegionDetector.BucketRegionCache.Clear();
                    await runner.USEast1Client.GetObjectMetadataAsync(runner.GetObjectMetadataRequest);

                    RegionEndpoint cachedRegion;
                    Assert.IsTrue(BucketRegionDetector.BucketRegionCache.TryGetValue(runner.BucketName, out cachedRegion));
                    Assert.AreEqual(RegionEndpoint.USWest1, cachedRegion);
                }
            }
        }
 private IAsyncResult BeginPutObject(BucketRegionTestRunner runner)
 {
     return(runner.USEast1Client.BeginPutObject(runner.PutObjectRequest,
                                                new AsyncCallback(asyncResult => runner.USEast1Client.EndPutObject(asyncResult)), testState));
 }
Exemplo n.º 22
0
 public void HappyCaseDoesS3BucketExist()
 {
     // make sure the cache works when it gets the region from the x-amz-bucket-region header
     using (var runner = new BucketRegionTestRunner(true, true))
     {
         if (runner.TestBucketIsReady)
         {
             Assert.IsTrue(AmazonS3Util.DoesS3BucketExist(runner.USEast1Client, runner.BucketName));
             RegionEndpoint cachedRegion;
             Assert.IsTrue(BucketRegionDetector.BucketRegionCache.TryGetValue(runner.BucketName, out cachedRegion));
             Assert.AreEqual(RegionEndpoint.USWest1, cachedRegion);
         }
     }
 }
 private IAsyncResult BeginGetObjectMetadata(BucketRegionTestRunner runner)
 {
     return(runner.USEast1Client.BeginGetObjectMetadata(runner.GetObjectMetadataRequest,
                                                        new AsyncCallback(asyncResult => runner.USEast1Client.EndGetObjectMetadata(asyncResult)), testState));
 }
Exemplo n.º 24
0
 private IAsyncResult BeginPutObject(BucketRegionTestRunner runner)
 {
     return runner.USEast1Client.BeginPutObject(runner.PutObjectRequest,
         new AsyncCallback(asyncResult => runner.USEast1Client.EndPutObject(asyncResult)), testState);
 }
Exemplo n.º 25
0
 public void GetPreSignedUrlSigV4ExplicitlySet()
 {
     using (var runner = new BucketRegionTestRunner(true, true))
     {
         if (runner.TestBucketIsReady)
         {
             Assert.AreEqual(HttpStatusCode.BadRequest, GetHttpStatusCode(runner.USEast1Client.GetPreSignedURL(runner.PreSignedUrlRequest)));
         }
     }
 }
Exemplo n.º 26
0
 private IAsyncResult BeginGetObjectMetadata(BucketRegionTestRunner runner)
 {
     return runner.USEast1Client.BeginGetObjectMetadata(runner.GetObjectMetadataRequest,
         new AsyncCallback(asyncResult => runner.USEast1Client.EndGetObjectMetadata(asyncResult)), testState);
 }
Exemplo n.º 27
0
 public void GetPreSignedUrlSigV2()
 {
     using (var runner = new BucketRegionTestRunner(false))
     {
         if (runner.TestBucketIsReady)
         {
             Assert.AreEqual(HttpStatusCode.OK, GetHttpStatusCode(runner.USEast1Client.GetPreSignedURL(runner.PreSignedUrlRequest)));
         }
     }
 }