Fixed handling for Content_Type "application/folder" in SelectiveSync and other locations
[pithos-ms-client] / trunk / Pithos.Network.Test / NetworkOpsTest.cs
index 41eef3d..6330cdc 100644 (file)
@@ -13,16 +13,16 @@ namespace Pithos.Network.Test
     [TestFixture]
     class NetworkOpsTest
     {
-        private string _apiKey = "9d3cb7b231e96f72ebe96af1c6cd5112";
-        private string _userName = "pkanavos";
         
             
 
         [Test]
         public void TestAuthenticate([Values(true,false)]bool usePithos)
         {
-            ICloudClient client = new CloudFilesClient{UsePithos=usePithos};
-            client.Authenticate(_userName, _apiKey);
+            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;
 
@@ -33,36 +33,41 @@ namespace Pithos.Network.Test
         [Test]
         public void TestListContainers([Values(true, false)]bool usePithos)
         {
-            ICloudClient client = new CloudFilesClient { UsePithos = usePithos };
-            client.Authenticate(_userName, _apiKey);
-            client.CreateContainer("PITHOS");
+            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]
         public void TestListObjects([Values(true, false)]bool usePithos)
         {
-            ICloudClient client = new CloudFilesClient { UsePithos = usePithos };
-            client.Authenticate(_userName, _apiKey);
-            client.CreateContainer("PITHOS");
-            var info = new FileInfo("devguide.pdf");
-            client.PutObject("PITHOS","devguide.pdf","devguide.pdf",info.Length);
-
-            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]
         public void TestContainerExists([Values(true, false)]bool usePithos)
         {
-            ICloudClient client = new CloudFilesClient { UsePithos = usePithos };
-            client.Authenticate(_userName, _apiKey);
-            client.CreateContainer("TestContainer");
-            bool dnzExists=client.ContainerExists("TestContainer");
+            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("Moo");
+            bool mooExists = client.ContainerExists(null, "Moo");
             Assert.IsTrue(dnzExists);
             
             Assert.IsFalse(mooExists);
@@ -71,19 +76,21 @@ namespace Pithos.Network.Test
         [Test]
         public void TestGetContainerInfo([Values(true, false)]bool usePithos)
         {
-            ICloudClient client = new CloudFilesClient { UsePithos = usePithos };
-            client.Authenticate(_userName, _apiKey);
+            var account = "890329@vho.grnet.gr";
+            var apiKey = "24989dce4e0fcb072f8cb60c8922be19";
+            var client = new CloudFilesClient(account, apiKey) { UsePithos = usePithos };
+            client.Authenticate();
 
-            client.CreateContainer("PITHOS");
-            client.CreateContainer("DotNetZone");
+            client.CreateContainer(null, "PITHOS");
+            client.CreateContainer(null, "DotNetZone");
 
-            var dnzInfo =client.GetContainerInfo("DotNetZone");
+            var dnzInfo =client.GetContainerInfo(null, "DotNetZone");
             Assert.AreNotEqual(ContainerInfo.Empty, dnzInfo,"Expected DotNetZone container not found");
 
-            var pithosInfo = client.GetContainerInfo("PITHOS");
+            var pithosInfo = client.GetContainerInfo(null, "PITHOS");
             Assert.AreNotEqual(ContainerInfo.Empty, pithosInfo,"Expected PITHOS container not found");
 
-            var mooInfo = client.GetContainerInfo("moo");
+            var mooInfo = client.GetContainerInfo(null, "moo");
             Assert.AreEqual(ContainerInfo.Empty, mooInfo);
         }
 
@@ -92,17 +99,19 @@ namespace Pithos.Network.Test
         {
             Assert.DoesNotThrow(() =>
                                     {
-                                        ICloudClient client = new CloudFilesClient{UsePithos=usePithos};
-                                        client.Authenticate(_userName, _apiKey);
-
-                                        client.CreateContainer("Shares2");
-                                        Assert.IsTrue(client.ContainerExists("Shares2"));
-                                        client.DeleteContainer("Shares2");
-
-                                        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"));
                                     });
         }
 
@@ -111,22 +120,22 @@ namespace Pithos.Network.Test
         {
             Assert.DoesNotThrow(() =>
             {
-                ICloudClient client = new CloudFilesClient { UsePithos = usePithos };
-                client.Authenticate(_userName, _apiKey);
+                var account = "890329@vho.grnet.gr";
+                var apiKey = "24989dce4e0fcb072f8cb60c8922be19";
+                var client = new CloudFilesClient(account, apiKey) { UsePithos = usePithos };
+                client.Authenticate();
                 //Prepare test file
-                client.CreateContainer("Shares");                
+                client.CreateContainer(null, "Shares");                
                 string testFileName = "test.txt";                
                 var info = new FileInfo(testFileName);
-                client.PutObject("Shares",testFileName,testFileName,info.Length);
+                client.PutObject(null, "Shares",testFileName,testFileName);
                 
 
                 string downloadFile = "test2.txt";
-                using (var stream = client.GetObject("Shares", testFileName))
-                using (var file = File.Create(downloadFile, 4096, FileOptions.DeleteOnClose))
-                {
-                    stream.CopyTo(file);
-                    Assert.IsTrue(File.Exists(downloadFile));
-                }
+                client.GetObject(null, "Shares", testFileName, downloadFile)
+                    .Wait();
+
+                Assert.IsTrue(File.Exists(downloadFile));
                 
             });
             
@@ -137,17 +146,19 @@ namespace Pithos.Network.Test
         {
             Assert.DoesNotThrow(() =>
                                     {
-                                        ICloudClient client = new CloudFilesClient {UsePithos = usePithos};
-                                        client.Authenticate(_userName, _apiKey);
+                                        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 = "devguide.pdf";
                                         FileInfo info = new FileInfo(filePath);
 
 
-                                        client.PutObject("Shares", info.Name, filePath, info.Length);
+                                        client.PutObject(null, "Shares", info.Name, filePath);
 
 
                                     });
@@ -159,22 +170,24 @@ namespace Pithos.Network.Test
         {
             Assert.DoesNotThrow(() =>
             {
-                ICloudClient client = new CloudFilesClient { UsePithos = usePithos };
-                client.Authenticate(_userName, _apiKey);
+                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 = "devguide.pdf";
                 FileInfo info = new FileInfo(filePath);
 
                
-                    client.PutObject("Shares", info.Name, filePath, info.Length);
+                    client.PutObject(null, "Shares", info.Name, filePath);
                 
 
 
                 
-                var meta=client.GetObjectInfo("Shares", filePath);
+                var meta=client.GetObjectInfo(null, "Shares", filePath);
                 Assert.IsNotEmpty(meta.Hash);
                 Assert.AreEqual(meta.Name,filePath);
 
@@ -187,22 +200,24 @@ namespace Pithos.Network.Test
         {
             Assert.DoesNotThrow(() =>
             {
-                ICloudClient client = new CloudFilesClient { UsePithos = usePithos };
-                client.Authenticate(_userName, _apiKey);
+                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 = "devguide.pdf";
                 FileInfo info=new FileInfo(filePath);
                 
                
-                    client.PutObject("Shares",info.Name, filePath,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/devguide.pdf",info.Name);
+                client.DeleteObject(null, "Shares/devguide.pdf",info.Name);
                 
             });
 
@@ -213,26 +228,28 @@ namespace Pithos.Network.Test
         {
             Assert.DoesNotThrow(() =>
             {
-                ICloudClient client = new CloudFilesClient { UsePithos = usePithos };
-                client.Authenticate(_userName, _apiKey);
+                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 = "devguide.pdf";
                 FileInfo info=new FileInfo(filePath);
                 
                
-                    client.PutObject("Shares",info.Name, filePath,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),"Container Deleted");
+                client.DeleteObject(null, "Shares",info.Name);
+                Assert.IsFalse(client.ObjectExists(null, "Shares", info.Name),"Container Deleted");
                 
-                client.DeleteObject("Moo",info.Name);
-                Assert.IsFalse(client.ObjectExists("Moo", info.Name),"Container Deleted");
+                client.DeleteObject(null, "Moo",info.Name);
+                Assert.IsFalse(client.ObjectExists(null, "Moo", info.Name),"Container Deleted");
                 
             });
 
@@ -272,24 +289,26 @@ namespace Pithos.Network.Test
         {
             Assert.DoesNotThrow(() =>
             {
-                ICloudClient client = new CloudFilesClient { UsePithos = usePithos };
-                client.Authenticate(_userName, _apiKey);
+                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 = "devguide.pdf";
                 FileInfo info=new FileInfo(filePath);
                 
                
-                    client.PutObject("Shares",info.Name, filePath,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");
 
             });
 
@@ -307,17 +326,23 @@ namespace Pithos.Network.Test
         {
             Assert.Catch<ArgumentNullException>(() =>
             {
-                ICloudClient client = new CloudFilesClient { UsePithos = usePithos };                
-                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>(() =>
             {
-                ICloudClient client = new CloudFilesClient { UsePithos = usePithos };
-                client.Authenticate(null,"someKey");
+                var account = "890329@vho.grnet.gr";
+                var apiKey = "24989dce4e0fcb072f8cb60c8922be19";
+                var client = new CloudFilesClient(account, apiKey) { UsePithos = usePithos };
+                client.Authenticate();
             });
 
         }
+
+
     }