public void Clear_RemovesAllObjects() { var directory = new Ess3Directory(); var file1 = new Ess3File { Key = exampleKey }; var file2 = new Ess3File { Key = exampleKey + "blabla" }; directory.Add(file1); directory.Add(file2); if (directory.Ess3Objects.Count != 2) { throw new Exception($"there were supposed to be 2 objects, there were actually {directory.Ess3Objects.Count}"); } directory.Clear(); int expected = 0; int actual = directory.Ess3Objects.Count; Assert.AreEqual(expected, actual); }
public void SetPrefixCorrectly_ForDirectories(string key, string prefix) { var directory = new Ess3Directory { Key = key }; Assert.AreEqual(prefix, directory.Prefix, "directory's prefix: {0}, correct prefix: {1}", directory.Prefix, prefix); }
public void BucketSize_Calculation() { Random random = new Random(Environment.TickCount % 17); Int64 fileSize1 = (Int64)random.Next(10, Int32.MaxValue - 1); Int64 fileSize2 = (Int64)random.Next(10, Int32.MaxValue - 1); Int64 fileSize3 = (Int64)random.Next(10, Int32.MaxValue - 1); Int64 fileSize4 = (Int64)random.Next(10, Int32.MaxValue - 1); var file1 = new Ess3File(new S3Object { Size = fileSize1, Key = "file1" }); var file2 = new Ess3File(new S3Object { Size = fileSize2, Key = "file2" }); var file3 = new Ess3File(new S3Object { Size = fileSize3, Key = "file3" }); var file4 = new Ess3File(new S3Object { Size = fileSize4, Key = "file4" }); var directory1 = new Ess3Directory { Key = "dir1" }; var directory2 = new Ess3Directory { Key = "dir2" }; var directory3 = new Ess3Directory { Key = "dir3" }; directory1.Add(file1); directory2.Add(file2); directory3.Add(file3); directory2.Add(directory3); directory1.Add(directory2); var bucket = new Ess3Bucket("bucket", DateTime.Now); bucket.Add(directory1); bucket.Add(file4); Int64 expected = fileSize1 + fileSize2 + fileSize3 + fileSize4; Int64 actual = bucket.Size; Assert.AreEqual(expected, actual, "bucket has {0} objects ({1}, {2}, {3}, {4})", bucket.Ess3Objects.Count, fileSize1, fileSize2, fileSize3, fileSize4); }
public void Add_AddsWhenDoesNotAlreadyContain() { var directory = new Ess3Directory(); var file = new Ess3File { Key = exampleKey }; directory.Add(file); int expected = 1; int actual = directory.Ess3Objects.Count; Assert.AreEqual(expected, actual); }
private static DeleteObjectsRequest CreateDirectoryDeletionRequest(Ess3Bucket bucket, Ess3Directory directory) { DeleteObjectsRequest request = new DeleteObjectsRequest { BucketName = bucket.BucketName }; // delete the directory key itself request.AddKey(directory.Key); // delete every subdirectory key //foreach (Ess3Directory eachDirectory in bucket.Directories) //{ // request.AddKey(eachDirectory.Key); //} // delete every file key on the directory //foreach (Ess3File eachFile in bucket.Files) //{ // request.AddKey(eachFile.Key); //} foreach (Ess3Object each in bucket.Ess3Objects) { request.AddKey(each.Key); } return(request); }
public static async Task <bool> DirectoryAsync(IAccount account, Ess3Bucket bucket, Ess3Directory directory, bool failOnHasItems, CancellationToken token) { if (BucketHasItems(bucket) && failOnHasItems) { return(false); } DeleteObjectsRequest request = CreateDirectoryDeletionRequest(bucket, directory); using IAmazonS3 client = new AmazonS3Client(account.GetCredentials(), bucket.RegionEndpoint); DeleteObjectsResponse?response = await Helpers .RunWithCatchAsync <DeleteObjectsRequest, DeleteObjectsResponse>(client.DeleteObjectsAsync, request, token) .ConfigureAwait(false); return((response?.HttpStatusCode ?? HttpStatusCode.BadRequest) == HttpStatusCode.OK); // I don't know which status code translates to success }
public static Task <bool> DirectoryAsync(IAccount account, Ess3Bucket bucket, Ess3Directory directory, bool failOnHasItems) => DirectoryAsync(account, bucket, directory, failOnHasItems, CancellationToken.None);