using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using NUnit.Framework; using Pithos.Network; namespace Pithos.IntegrationTests { [TestFixture] public class FileCreationTest { private const string RootPath = @"c:\p1\"; private const string PithosContainer = "pithos"; private DirectoryInfo _rootDir; private CloudFilesClient _client; private string _account = ""; private string _apiKey = ""; [SetUp] public void Initialize() { var standardPaths = new[] {"pithos"}; _rootDir = new DirectoryInfo(RootPath); _rootDir.EnumerateDirectories() .Where(d=>!standardPaths.Contains(d.Name)) .All(d => { d.Delete(true); return true; }); _rootDir.EnumerateFiles().All(d => { d.Delete(); return true; }); _client = new CloudFilesClient(_account, _apiKey); } [Test] public async void TestFileCreation() { var path=Path.Combine(RootPath,PithosContainer,"File1.txt"); File.WriteAllText(path,"TestContents"); await TaskEx.Delay(TimeSpan.FromSeconds(20)); var exists=_client.ObjectExists(_account, PithosContainer, "File1.txt"); Assert.That(exists,Is.True); } [Test] public async void TestFileDeletion() { var path=Path.Combine(RootPath,PithosContainer,"File1.txt"); if (!File.Exists(path)) File.WriteAllText(path,"TestContents"); await TaskEx.Delay(TimeSpan.FromSeconds(20)); var exists=_client.ObjectExists(_account, PithosContainer, "File1.txt"); Assert.That(exists,Is.True); File.Delete(path); await TaskEx.Delay(TimeSpan.FromSeconds(20)); var deleted= !_client.ObjectExists(_account, PithosContainer, "File1.txt"); Assert.That(deleted, Is.True); _client.DeleteObject(_account, PithosContainer, "File1.txt", false); } [Test] public async void TestFileMove() { var path=Path.Combine(RootPath,PithosContainer,"File1.txt"); var path2=Path.Combine(RootPath,PithosContainer,"File2.txt"); if (!File.Exists(path)) File.WriteAllText(path,"TestContents"); await TaskEx.Delay(TimeSpan.FromSeconds(20)); var exists=_client.ObjectExists(_account, PithosContainer, "File1.txt"); Assert.That(exists,Is.True); File.Move(path,path2); await TaskEx.Delay(TimeSpan.FromSeconds(20)); var sourceExists = _client.ObjectExists(_account, PithosContainer, "File1.txt"); Assert.That(sourceExists, Is.False); var targetExists = _client.ObjectExists(_account, PithosContainer, "File2.txt"); Assert.That(targetExists, Is.True); _client.DeleteObject(_account,PithosContainer,"File2.txt", false); var deleted= !_client.ObjectExists(_account, PithosContainer, "File2.txt"); Assert.That(deleted, Is.True); } } }