2 using System.Collections.Generic;
3 using System.Diagnostics;
4 using System.Diagnostics.Contracts;
8 using Pithos.Interfaces;
11 namespace Pithos.Network.Test
17 public void TestAuthenticate()
19 ICloudClient client = new CloudFilesClient();
20 client.Authenticate("", "");
21 string storageUrl=client.StorageUrl;
22 string token = client.Token;
24 Assert.IsNotEmpty(storageUrl, "Storage Url was empty");
25 Assert.IsNotEmpty(token, "Token was empty");
29 public void TestListContainers()
31 ICloudClient client = new CloudFilesClient();
32 client.Authenticate("", "");
34 IList<ContainerInfo> containers=client.ListContainers();
35 Assert.IsTrue(containers.Count()>1);
39 public void TestListObjects()
41 ICloudClient client = new CloudFilesClient();
42 client.Authenticate("", "");
44 IList<ObjectInfo> objects=client.ListObjects("PITHOS");
45 Assert.IsTrue(objects.Count()>=1);
49 public void TestContainerExists()
51 ICloudClient client = new CloudFilesClient();
52 client.Authenticate("", "");
54 bool dnzExists=client.ContainerExists("DotNetZone");
55 bool pithosExists = client.ContainerExists("PITHOS");
56 bool mooExists = client.ContainerExists("Moo");
57 Assert.IsTrue(dnzExists);
58 Assert.IsTrue(pithosExists);
59 Assert.IsFalse(mooExists);
63 public void TestGetContainerInfo()
65 ICloudClient client = new CloudFilesClient();
66 client.Authenticate("", "");
68 var dnzInfo =client.GetContainerInfo("DotNetZone");
69 Assert.AreNotEqual(ContainerInfo.Empty, dnzInfo);
71 var pithosInfo = client.GetContainerInfo("PITHOS");
72 Assert.AreNotEqual(ContainerInfo.Empty, pithosInfo);
74 var mooInfo = client.GetContainerInfo("moo");
75 Assert.AreEqual(ContainerInfo.Empty, mooInfo);
79 public void TestCreateContainer()
81 Assert.DoesNotThrow(() =>
83 ICloudClient client = new CloudFilesClient();
84 client.Authenticate("", "");
86 client.CreateContainer("Shares");
87 Assert.IsTrue(client.ContainerExists("Shares"));
88 client.CreateContainer("DotNetZone");
89 Assert.IsTrue(client.ContainerExists("DotNetZone"));
94 public void TestGetObject()
96 Assert.DoesNotThrow(() =>
98 ICloudClient client = new CloudFilesClient();
99 client.Authenticate("", "");
101 client.CreateContainer("Shares");
102 Assert.IsTrue(client.ContainerExists("Shares"));
103 using (var stream = client.GetObject("DotNetZone", "OData and WCF Data Services.pptx"))
104 using(var file=File.Create(@"e:\test.pptx",4096,FileOptions.DeleteOnClose))
107 Assert.IsTrue(File.Exists(@"e:\test.pptx"));
115 public void TestPutObject()
117 Assert.DoesNotThrow(() =>
119 ICloudClient client = new CloudFilesClient();
120 client.Authenticate("", "");
122 client.CreateContainer("Shares");
123 Assert.IsTrue(client.ContainerExists("Shares"));
125 var filePath = @"e:\DeveloperGuide.pdf";
126 FileInfo info=new FileInfo(filePath);
128 using (var file = File.OpenRead(filePath))
130 client.PutObject("Shares",info.Name, file,info.Length );
138 public void TestGetObjectMetadata()
140 Assert.DoesNotThrow(() =>
142 ICloudClient client = new CloudFilesClient();
143 client.Authenticate("", "");
145 var filePath = "DeveloperGuide.pdf";
146 var meta=client.GetObjectInfo("Shares", filePath);
147 Assert.IsNotEmpty(meta.Hash);
148 Assert.AreEqual(meta.Name,filePath);
155 public void TestDeleteObject()
157 Assert.DoesNotThrow(() =>
159 ICloudClient client = new CloudFilesClient();
160 client.Authenticate("", "");
162 client.CreateContainer("Shares");
163 Assert.IsTrue(client.ContainerExists("Shares"),"Container Exists");
165 var filePath = @"e:\DeveloperGuide.pdf";
166 FileInfo info=new FileInfo(filePath);
168 using (var file = File.OpenRead(filePath))
170 client.PutObject("Shares",info.Name, file,info.Length );
173 Assert.IsTrue(client.ObjectExists("Shares",info.Name),"File Created");
175 client.DeleteObject("Shares",info.Name);
176 Assert.IsFalse(client.ObjectExists("Shares", info.Name),"File Deleted");
186 public void TestFilesWithSpaces()
188 ICloudClient client = new CloudFilesClient();
189 client.Authenticate("", "");
191 var testName = "Name with spaces.txt";
193 using(var stream=new MemoryStream())
194 using (var writer = new StreamWriter(stream))
197 writer.WriteLine("This is a test line");
200 client.PutObject("PITHOS",testName,stream,stream.Length);
203 Assert.DoesNotThrow(() =>
205 var info = client.GetObjectInfo("PITHOS", testName);
206 Assert.AreEqual(testName, info.Name);
208 Assert.DoesNotThrow(() =>
210 client.DeleteObject("PITHOS", testName);
215 public void TestMoveObject()
217 Assert.DoesNotThrow(() =>
219 ICloudClient client = new CloudFilesClient();
220 client.Authenticate("", "");
222 client.CreateContainer("Shares");
223 Assert.IsTrue(client.ContainerExists("Shares"),"Container Exists");
225 var filePath = @"e:\DeveloperGuide.pdf";
226 FileInfo info=new FileInfo(filePath);
228 using (var file = File.OpenRead(filePath))
230 client.PutObject("Shares",info.Name, file,info.Length );
233 Assert.IsTrue(client.ObjectExists("Shares",info.Name),"File Created");
235 client.MoveObject("Shares",info.Name,"smoo.pdf");
236 Assert.IsFalse(client.ObjectExists("Shares", info.Name),"Original File Deleted");
237 Assert.IsTrue(client.ObjectExists("Shares", "smoo.pdf"), "Target File Created");
244 public void TestGetObjectMissing()
251 public void TestAuthenticateMissingArguments()
253 Assert.Catch<ArgumentNullException>(() =>
255 ICloudClient client = new CloudFilesClient();
256 client.Authenticate("someUser",null);
259 Assert.Catch<ArgumentNullException>(() =>
261 ICloudClient client = new CloudFilesClient();
262 client.Authenticate(null,"someKey");