public void TestDeleteObject() { IObjectStorageProvider provider = new CloudFilesProvider(Bootstrapper.Settings.TestIdentity); string containerName = TestContainerPrefix + Path.GetRandomFileName(); string objectName = Path.GetRandomFileName(); // another random name counts as random content string fileData = Path.GetRandomFileName(); ObjectStore containerResult = provider.CreateContainer(containerName); Assert.AreEqual(ObjectStore.ContainerCreated, containerResult); using (MemoryStream uploadStream = new MemoryStream(Encoding.UTF8.GetBytes(fileData))) { provider.CreateObject(containerName, uploadStream, objectName); } string actualData = ReadAllObjectText(provider, containerName, objectName, Encoding.UTF8); Assert.AreEqual(fileData, actualData); provider.DeleteObject(containerName, objectName); try { using (MemoryStream downloadStream = new MemoryStream()) { provider.GetObject(containerName, objectName, downloadStream); } Assert.Fail("Expected an exception (object should not exist)"); } catch (ResponseException) { } /* Cleanup */ provider.DeleteContainer(containerName, deleteObjects: true); }
public void TestCreateLargeObject() { IObjectStorageProvider provider = new CloudFilesProvider(Bootstrapper.Settings.TestIdentity) { LargeFileBatchThreshold = 81920 }; string containerName = TestContainerPrefix + Path.GetRandomFileName(); string sourceFileName = "DarkKnightRises.jpg"; byte[] content = File.ReadAllBytes("DarkKnightRises.jpg"); ObjectStore containerResult = provider.CreateContainer(containerName); Assert.AreEqual(ObjectStore.ContainerCreated, containerResult); ProgressMonitor progressMonitor = new ProgressMonitor(content.Length); provider.CreateObjectFromFile(containerName, sourceFileName, progressUpdated: progressMonitor.Updated); Assert.IsTrue(progressMonitor.IsComplete, "Failed to notify progress monitor callback of status update."); using (MemoryStream downloadStream = new MemoryStream()) { provider.GetObject(containerName, sourceFileName, downloadStream); Assert.AreEqual(content.Length, GetContainerObjectSize(provider, containerName, sourceFileName)); downloadStream.Position = 0; byte[] actualData = new byte[downloadStream.Length]; downloadStream.Read(actualData, 0, actualData.Length); Assert.AreEqual(content.Length, actualData.Length); using (MD5 md5 = MD5.Create()) { byte[] contentMd5 = md5.ComputeHash(content); byte[] actualMd5 = md5.ComputeHash(actualData); Assert.AreEqual(BitConverter.ToString(contentMd5), BitConverter.ToString(actualMd5)); } } /* Cleanup */ provider.DeleteContainer(containerName, deleteObjects: true); }