Changing the delete agent to handle renames as well didn't help. Renames or moves...
[pithos-ms-client] / trunk / Pithos.Network.Test / NetworkOpsTest.cs
index 088b71b..6330cdc 100644 (file)
@@ -13,137 +13,181 @@ namespace Pithos.Network.Test
     [TestFixture]
     class NetworkOpsTest
     {
     [TestFixture]
     class NetworkOpsTest
     {
+        
+            
+
         [Test]
         [Test]
-        public void TestAuthenticate()
+        public void TestAuthenticate([Values(true,false)]bool usePithos)
         {
         {
-            ICloudClient client = new CloudFilesClient();
-            client.Authenticate("", "");
-            string storageUrl=client.StorageUrl;
+            var account = "890329@vho.grnet.gr";
+            var apiKey = "24989dce4e0fcb072f8cb60c8922be19";
+            var client = new CloudFilesClient(account, apiKey) { UsePithos = usePithos };
+            client.Authenticate();
+            Uri storageUrl=client.StorageUrl;
             string token = client.Token;
 
             string token = client.Token;
 
-            Assert.IsNotEmpty(storageUrl, "Storage Url was empty");
+            Assert.IsNotNull(storageUrl, "Storage Url was empty");
             Assert.IsNotEmpty(token, "Token was empty");
         }
 
         [Test]
             Assert.IsNotEmpty(token, "Token was empty");
         }
 
         [Test]
-        public void TestListContainers()
+        public void TestListContainers([Values(true, false)]bool usePithos)
         {
         {
-            ICloudClient client = new CloudFilesClient();
-            client.Authenticate("", "");
+            var account = "890329@vho.grnet.gr";
+            var apiKey = "24989dce4e0fcb072f8cb60c8922be19";
+            var client = new CloudFilesClient(account, apiKey) { UsePithos = usePithos };
+            var accountInfo = client.Authenticate();
+            client.CreateContainer(null, "PITHOS");
 
 
-            IList<ContainerInfo> containers=client.ListContainers();
+            IList<ContainerInfo> containers=client.ListContainers(account);
             Assert.IsTrue(containers.Count()>1);
         }
 
         [Test]
             Assert.IsTrue(containers.Count()>1);
         }
 
         [Test]
-        public void TestListObjects()
+        public void TestListObjects([Values(true, false)]bool usePithos)
         {
         {
-            ICloudClient client = new CloudFilesClient();
-            client.Authenticate("", "");
-
-            IList<ObjectInfo> objects=client.ListObjects("PITHOS");
+            var account = "890329@vho.grnet.gr";
+            var apiKey = "24989dce4e0fcb072f8cb60c8922be19";
+            var client = new CloudFilesClient(account, apiKey) { UsePithos = usePithos };
+            client.Authenticate();
+            client.CreateContainer(null, "PITHOS");            
+            client.PutObject(null, "PITHOS","devguide.pdf","devguide.pdf");
+
+            IList<ObjectInfo> objects=client.ListObjects(null, "PITHOS");
             Assert.IsTrue(objects.Count()>=1);
         }
 
         [Test]
             Assert.IsTrue(objects.Count()>=1);
         }
 
         [Test]
-        public void TestContainerExists()
+        public void TestContainerExists([Values(true, false)]bool usePithos)
         {
         {
-            ICloudClient client = new CloudFilesClient();
-            client.Authenticate("", "");
-
-            bool dnzExists=client.ContainerExists("DotNetZone");
-            bool pithosExists = client.ContainerExists("PITHOS");
-            bool mooExists = client.ContainerExists("Moo");
+            var account = "890329@vho.grnet.gr";
+            var apiKey = "24989dce4e0fcb072f8cb60c8922be19";
+            var client = new CloudFilesClient(account, apiKey) { UsePithos = usePithos };
+            client.Authenticate();
+            client.CreateContainer(null, "TestContainer");
+            bool dnzExists=client.ContainerExists(null, "TestContainer");
+            
+            bool mooExists = client.ContainerExists(null, "Moo");
             Assert.IsTrue(dnzExists);
             Assert.IsTrue(dnzExists);
-            Assert.IsTrue(pithosExists);
+            
             Assert.IsFalse(mooExists);
         }
 
         [Test]
             Assert.IsFalse(mooExists);
         }
 
         [Test]
-        public void TestGetContainerInfo()
+        public void TestGetContainerInfo([Values(true, false)]bool usePithos)
         {
         {
-            ICloudClient client = new CloudFilesClient();
-            client.Authenticate("", "");
+            var account = "890329@vho.grnet.gr";
+            var apiKey = "24989dce4e0fcb072f8cb60c8922be19";
+            var client = new CloudFilesClient(account, apiKey) { UsePithos = usePithos };
+            client.Authenticate();
 
 
-            var dnzInfo =client.GetContainerInfo("DotNetZone");
-            Assert.AreNotEqual(ContainerInfo.Empty, dnzInfo);
+            client.CreateContainer(null, "PITHOS");
+            client.CreateContainer(null, "DotNetZone");
 
 
-            var pithosInfo = client.GetContainerInfo("PITHOS");
-            Assert.AreNotEqual(ContainerInfo.Empty, pithosInfo);
+            var dnzInfo =client.GetContainerInfo(null, "DotNetZone");
+            Assert.AreNotEqual(ContainerInfo.Empty, dnzInfo,"Expected DotNetZone container not found");
 
 
-            var mooInfo = client.GetContainerInfo("moo");
+            var pithosInfo = client.GetContainerInfo(null, "PITHOS");
+            Assert.AreNotEqual(ContainerInfo.Empty, pithosInfo,"Expected PITHOS container not found");
+
+            var mooInfo = client.GetContainerInfo(null, "moo");
             Assert.AreEqual(ContainerInfo.Empty, mooInfo);
         }
 
         [Test]
             Assert.AreEqual(ContainerInfo.Empty, mooInfo);
         }
 
         [Test]
-        public void TestCreateContainer()
+        public void TestCreateContainer([Values(true, false)]bool usePithos)
         {
             Assert.DoesNotThrow(() =>
                                     {
         {
             Assert.DoesNotThrow(() =>
                                     {
-                                        ICloudClient client = new CloudFilesClient();
-                                        client.Authenticate("", "");
-
-                                        client.CreateContainer("Shares");
-                                        Assert.IsTrue(client.ContainerExists("Shares"));
-                                        client.CreateContainer("DotNetZone");
-                                        Assert.IsTrue(client.ContainerExists("DotNetZone"));
+                                        var account = "890329@vho.grnet.gr";
+                                        var apiKey = "24989dce4e0fcb072f8cb60c8922be19";
+                                        var client = new CloudFilesClient(account, apiKey) { UsePithos = usePithos };
+                                        client.Authenticate();
+
+                                        client.CreateContainer(null, "Shares2");
+                                        Assert.IsTrue(client.ContainerExists(null, "Shares2"));
+                                        client.DeleteContainer(null, "Shares2");
+
+                                        client.CreateContainer(null, "Shares");
+                                        Assert.IsTrue(client.ContainerExists(null, "Shares"));
+                                        client.CreateContainer(null, "DotNetZone");
+                                        Assert.IsTrue(client.ContainerExists(null, "DotNetZone"));
                                     });
         }
 
         [Test]
                                     });
         }
 
         [Test]
-        public void TestGetObject()
+        public void TestGetObject([Values(true, false)]bool usePithos)
         {
             Assert.DoesNotThrow(() =>
             {
         {
             Assert.DoesNotThrow(() =>
             {
-                ICloudClient client = new CloudFilesClient();
-                client.Authenticate("", "");
-
-                client.CreateContainer("Shares");
-                Assert.IsTrue(client.ContainerExists("Shares"));
-                using (var stream = client.GetObject("DotNetZone", "OData and WCF Data Services.pptx"))
-                using(var file=File.Create(@"e:\test.pptx",4096,FileOptions.DeleteOnClose))
-                {
-                    stream.CopyTo(file);
-                    Assert.IsTrue(File.Exists(@"e:\test.pptx"));
-                }
+                var account = "890329@vho.grnet.gr";
+                var apiKey = "24989dce4e0fcb072f8cb60c8922be19";
+                var client = new CloudFilesClient(account, apiKey) { UsePithos = usePithos };
+                client.Authenticate();
+                //Prepare test file
+                client.CreateContainer(null, "Shares");                
+                string testFileName = "test.txt";                
+                var info = new FileInfo(testFileName);
+                client.PutObject(null, "Shares",testFileName,testFileName);
+                
+
+                string downloadFile = "test2.txt";
+                client.GetObject(null, "Shares", testFileName, downloadFile)
+                    .Wait();
+
+                Assert.IsTrue(File.Exists(downloadFile));
                 
             });
             
         }
 
         [Test]
                 
             });
             
         }
 
         [Test]
-        public void TestPutObject()
+        public void TestPutObject([Values(true, false)]bool usePithos)
         {
             Assert.DoesNotThrow(() =>
         {
             Assert.DoesNotThrow(() =>
-            {
-                ICloudClient client = new CloudFilesClient();
-                client.Authenticate("", "");
+                                    {
+                                        var account = "890329@vho.grnet.gr";
+                                        var apiKey = "24989dce4e0fcb072f8cb60c8922be19";
+                                        var client = new CloudFilesClient(account, apiKey) { UsePithos = usePithos };
+                                        client.Authenticate();
 
 
-                client.CreateContainer("Shares");
-                Assert.IsTrue(client.ContainerExists("Shares"));                
+                                        client.CreateContainer(null, "Shares");
+                                        Assert.IsTrue(client.ContainerExists(null, "Shares"));
 
 
-                var filePath = @"e:\DeveloperGuide.pdf";
-                FileInfo info=new FileInfo(filePath);
-                
-                using (var file = File.OpenRead(filePath))
-                {
-                    client.PutObject("Shares",info.Name, file,info.Length );
-                }
+                                        var filePath = "devguide.pdf";
+                                        FileInfo info = new FileInfo(filePath);
+
+
+                                        client.PutObject(null, "Shares", info.Name, filePath);
 
 
-            });
+
+                                    });
 
         }
 
         [Test]
 
         }
 
         [Test]
-        public void TestGetObjectMetadata()
+        public void TestGetObjectMetadata([Values(true, false)]bool usePithos)
         {
             Assert.DoesNotThrow(() =>
             {
         {
             Assert.DoesNotThrow(() =>
             {
-                ICloudClient client = new CloudFilesClient();
-                client.Authenticate("", "");
+                var account = "890329@vho.grnet.gr";
+                var apiKey = "24989dce4e0fcb072f8cb60c8922be19";
+                var client = new CloudFilesClient(account, apiKey) { UsePithos = usePithos };
+                client.Authenticate();
+
+                client.CreateContainer(null, "Shares");
+                Assert.IsTrue(client.ContainerExists(null, "Shares"));
 
 
-                var filePath = "DeveloperGuide.pdf";
-                var meta=client.GetObjectInfo("Shares", filePath);
+                var filePath = "devguide.pdf";
+                FileInfo info = new FileInfo(filePath);
+
+               
+                    client.PutObject(null, "Shares", info.Name, filePath);
+                
+
+
+                
+                var meta=client.GetObjectInfo(null, "Shares", filePath);
                 Assert.IsNotEmpty(meta.Hash);
                 Assert.AreEqual(meta.Name,filePath);
 
                 Assert.IsNotEmpty(meta.Hash);
                 Assert.AreEqual(meta.Name,filePath);
 
@@ -152,46 +196,75 @@ namespace Pithos.Network.Test
         }
 
         [Test]
         }
 
         [Test]
-        public void TestDeleteObject()
+        public void TestDeleteObject([Values(true, false)]bool usePithos)
         {
             Assert.DoesNotThrow(() =>
             {
         {
             Assert.DoesNotThrow(() =>
             {
-                ICloudClient client = new CloudFilesClient();
-                client.Authenticate("", "");
+                var account = "890329@vho.grnet.gr";
+                var apiKey = "24989dce4e0fcb072f8cb60c8922be19";
+                var client = new CloudFilesClient(account, apiKey) { UsePithos = usePithos };
+                client.Authenticate();
 
 
-                client.CreateContainer("Shares");
-                Assert.IsTrue(client.ContainerExists("Shares"),"Container Exists");                
+                client.CreateContainer(null, "Shares");
+                Assert.IsTrue(client.ContainerExists(null, "Shares"),"Container Exists");                
 
 
-                var filePath = @"e:\DeveloperGuide.pdf";
+                var filePath = "devguide.pdf";
                 FileInfo info=new FileInfo(filePath);
                 
                 FileInfo info=new FileInfo(filePath);
                 
-                using (var file = File.OpenRead(filePath))
-                {
-                    client.PutObject("Shares",info.Name, file,info.Length );
-                }
+               
+                    client.PutObject(null, "Shares",info.Name, filePath);
+                
 
 
-                Assert.IsTrue(client.ObjectExists("Shares",info.Name),"File Created");
+                Assert.IsTrue(client.ObjectExists(null, "Shares",info.Name),"File Created");
 
 
-                client.DeleteObject("Shares",info.Name);
-                Assert.IsFalse(client.ObjectExists("Shares", info.Name),"File Deleted");
+                client.DeleteObject(null, "Shares/devguide.pdf",info.Name);
                 
                 
+            });
+
+        }
+        
+        [Test]
+        public void TestDeleteContainer([Values(true, false)]bool usePithos)
+        {
+            Assert.DoesNotThrow(() =>
+            {
+                var account = "890329@vho.grnet.gr";
+                var apiKey = "24989dce4e0fcb072f8cb60c8922be19";
+                var client = new CloudFilesClient(account, apiKey) { UsePithos = usePithos };
+                client.Authenticate();
 
 
+                client.CreateContainer(null, "Shares");
+                Assert.IsTrue(client.ContainerExists(null, "Shares"),"Container Exists");                
 
 
+                var filePath = "devguide.pdf";
+                FileInfo info=new FileInfo(filePath);
+                
+               
+                    client.PutObject(null, "Shares",info.Name, filePath );
+                
 
 
+                Assert.IsTrue(client.ObjectExists(null, "Shares",info.Name),"File Created");
+
+                client.DeleteObject(null, "Shares",info.Name);
+                Assert.IsFalse(client.ObjectExists(null, "Shares", info.Name),"Container Deleted");
+                
+                client.DeleteObject(null, "Moo",info.Name);
+                Assert.IsFalse(client.ObjectExists(null, "Moo", info.Name),"Container Deleted");
+                
             });
 
         }
 
             });
 
         }
 
-        [Test]
-        public void TestFilesWithSpaces()
+       /* [Test]
+        public void TestFilesWithSpaces([Values(true, false)]bool usePithos)
         {
         {
-            ICloudClient client = new CloudFilesClient();
-            client.Authenticate("", "");
+            ICloudClient client = new CloudFilesClient { UsePithos = usePithos };
+            client.Authenticate(_userName, _apiKey);
             
             var testName = "Name with spaces.txt";
             
             using(var stream=new MemoryStream())
             
             var testName = "Name with spaces.txt";
             
             using(var stream=new MemoryStream())
-            using (var writer = new StreamWriter(stream))
+            using (var writer = new File.(stream))
             {
                 
                 writer.WriteLine("This is a test line");
             {
                 
                 writer.WriteLine("This is a test line");
@@ -209,32 +282,33 @@ namespace Pithos.Network.Test
                                     {
                                         client.DeleteObject("PITHOS", testName);                                        
                                     });
                                     {
                                         client.DeleteObject("PITHOS", testName);                                        
                                     });
-        }
+        }*/
 
         [Test]
 
         [Test]
-        public void TestMoveObject()
+        public void TestMoveObject([Values(true, false)]bool usePithos)
         {
             Assert.DoesNotThrow(() =>
             {
         {
             Assert.DoesNotThrow(() =>
             {
-                ICloudClient client = new CloudFilesClient();
-                client.Authenticate("", "");
+                var account = "890329@vho.grnet.gr";
+                var apiKey = "24989dce4e0fcb072f8cb60c8922be19";
+                var client = new CloudFilesClient(account, apiKey) { UsePithos = usePithos };
+                client.Authenticate();
 
 
-                client.CreateContainer("Shares");
-                Assert.IsTrue(client.ContainerExists("Shares"),"Container Exists");                
+                client.CreateContainer(null, "Shares");
+                Assert.IsTrue(client.ContainerExists(null, "Shares"),"Container Exists");                
 
 
-                var filePath = @"e:\DeveloperGuide.pdf";
+                var filePath = "devguide.pdf";
                 FileInfo info=new FileInfo(filePath);
                 
                 FileInfo info=new FileInfo(filePath);
                 
-                using (var file = File.OpenRead(filePath))
-                {
-                    client.PutObject("Shares",info.Name, file,info.Length );
-                }
+               
+                    client.PutObject(null, "Shares",info.Name, filePath);
+                
 
 
-                Assert.IsTrue(client.ObjectExists("Shares",info.Name),"File Created");
+                Assert.IsTrue(client.ObjectExists(null, "Shares",info.Name),"File Created");
 
 
-                client.MoveObject("Shares",info.Name,"smoo.pdf");
-                Assert.IsFalse(client.ObjectExists("Shares", info.Name),"Original File Deleted");
-                Assert.IsTrue(client.ObjectExists("Shares", "smoo.pdf"), "Target File Created");
+                client.MoveObject(null, "Shares",info.Name,"Shares","smoo.pdf");
+                Assert.IsFalse(client.ObjectExists(null, "Shares", info.Name),"Original File Deleted");
+                Assert.IsTrue(client.ObjectExists(null, "Shares", "smoo.pdf"), "Target File Created");
 
             });
 
 
             });
 
@@ -248,21 +322,27 @@ namespace Pithos.Network.Test
 
 
         [Test]
 
 
         [Test]
-        public void TestAuthenticateMissingArguments()
+        public void TestAuthenticateMissingArguments([Values(true, false)]bool usePithos)
         {
             Assert.Catch<ArgumentNullException>(() =>
             {
         {
             Assert.Catch<ArgumentNullException>(() =>
             {
-                ICloudClient client = new CloudFilesClient();                
-                client.Authenticate("someUser",null);
+                var account = "890329@vho.grnet.gr";
+                var apiKey = "24989dce4e0fcb072f8cb60c8922be19";
+                var client = new CloudFilesClient(account, apiKey) { UsePithos = usePithos };
+                client.Authenticate();
             });
 
             Assert.Catch<ArgumentNullException>(() =>
             {
             });
 
             Assert.Catch<ArgumentNullException>(() =>
             {
-                ICloudClient client = new CloudFilesClient();
-                client.Authenticate(null,"someKey");
+                var account = "890329@vho.grnet.gr";
+                var apiKey = "24989dce4e0fcb072f8cb60c8922be19";
+                var client = new CloudFilesClient(account, apiKey) { UsePithos = usePithos };
+                client.Authenticate();
             });
 
         }
             });
 
         }
+
+
     }
 
     
     }