root / trunk / Pithos.Network.Test / ObjectInfoTest.cs @ 422c9598
History | View | Annotate | Download (3.9 kB)
1 | cfed7823 | Panagiotis Kanavos | using System; |
---|---|---|---|
2 | cfed7823 | Panagiotis Kanavos | using System.Collections.Generic; |
3 | cfed7823 | Panagiotis Kanavos | using System.Linq; |
4 | cfed7823 | Panagiotis Kanavos | using System.Text; |
5 | cfed7823 | Panagiotis Kanavos | using NUnit.Framework; |
6 | 9aa8abad | Panagiotis Kanavos | using Newtonsoft.Json; |
7 | 9aa8abad | Panagiotis Kanavos | using Newtonsoft.Json.Linq; |
8 | cfed7823 | Panagiotis Kanavos | using Pithos.Interfaces; |
9 | cfed7823 | Panagiotis Kanavos | |
10 | cfed7823 | Panagiotis Kanavos | namespace Pithos.Network.Test |
11 | cfed7823 | Panagiotis Kanavos | { |
12 | cfed7823 | Panagiotis Kanavos | [TestFixture] |
13 | cfed7823 | Panagiotis Kanavos | class ObjectInfoTest |
14 | cfed7823 | Panagiotis Kanavos | { |
15 | cfed7823 | Panagiotis Kanavos | [Test] |
16 | cfed7823 | Panagiotis Kanavos | public void RelativeUrlToFilePath() |
17 | cfed7823 | Panagiotis Kanavos | { |
18 | cfed7823 | Panagiotis Kanavos | |
19 | cfed7823 | Panagiotis Kanavos | var info1 = new ObjectInfo {Account = "pkanavos", Container = "pithos", Name = "somefolder/file1.txt"}; |
20 | cfed7823 | Panagiotis Kanavos | var path1=info1.RelativeUrlToFilePath("PKANAVOS"); |
21 | cfed7823 | Panagiotis Kanavos | Assert.AreEqual(@"somefolder\file1.txt",path1); |
22 | cfed7823 | Panagiotis Kanavos | var path2 = info1.RelativeUrlToFilePath("user1"); |
23 | cfed7823 | Panagiotis Kanavos | Assert.AreEqual(@"others\pkanavos\somefolder\file1.txt", path2); |
24 | cfed7823 | Panagiotis Kanavos | var info3 = new ObjectInfo { Account = "pkanavos", Name = "somefolder/file1.txt" }; |
25 | cfed7823 | Panagiotis Kanavos | var path3 = info1.RelativeUrlToFilePath("PKANAVOS"); |
26 | cfed7823 | Panagiotis Kanavos | Assert.AreEqual(@"somefolder\file1.txt", path1); |
27 | cfed7823 | Panagiotis Kanavos | |
28 | cfed7823 | Panagiotis Kanavos | } |
29 | 9aa8abad | Panagiotis Kanavos | |
30 | 9aa8abad | Panagiotis Kanavos | |
31 | 9aa8abad | Panagiotis Kanavos | [Test] |
32 | 9aa8abad | Panagiotis Kanavos | public void TestDeserialization() |
33 | 9aa8abad | Panagiotis Kanavos | { |
34 | 9aa8abad | Panagiotis Kanavos | var content="[{\"x_object_meta_smoe\": \"true\", \"hash\": \"0f5fbd63a50cb19c13eb111d3c3a7e40\", \"name\": \"wlsetup-web.exe\", \"x_object_meta_moe\": \"true\", \"x_object_meta_joe\": \"true\", \"x_object_sharing\": \"read=lumumba;write=pkanavos,fufutos\", \"x_object_version_timestamp\": \"1319572542.348810\", \"bytes\": 1286504, \"last_modified\": \"2011-10-25T19:55:42.348810+00:00\", \"content_type\": \"application/octet-stream\", \"x_object_version\": 22075, \"x_object_modified_by\": \"890329@vho.grnet.gr\"}]"; |
35 | 9aa8abad | Panagiotis Kanavos | var infos=JsonConvert.DeserializeObject<IList<ObjectInfo>>(content); |
36 | 9aa8abad | Panagiotis Kanavos | var info = infos[0]; |
37 | 9aa8abad | Panagiotis Kanavos | |
38 | 9aa8abad | Panagiotis Kanavos | Assert.IsNotEmpty(info.Tags); |
39 | 9aa8abad | Panagiotis Kanavos | Assert.IsNotEmpty(info.Permissions); |
40 | 9aa8abad | Panagiotis Kanavos | Assert.AreEqual(3,info.Permissions.Count); |
41 | 9aa8abad | Panagiotis Kanavos | Assert.IsTrue(info.Permissions["pkanavos"]=="write"); |
42 | 9aa8abad | Panagiotis Kanavos | Assert.IsTrue(info.Permissions["lumumba"] == "read"); |
43 | 9aa8abad | Panagiotis Kanavos | Assert.IsTrue(info.Permissions["fufutos"] == "write"); |
44 | 9aa8abad | Panagiotis Kanavos | Assert.IsTrue(info.Tags.ContainsKey("x_object_meta_smoe")); |
45 | 9aa8abad | Panagiotis Kanavos | } |
46 | 9aa8abad | Panagiotis Kanavos | |
47 | 9aa8abad | Panagiotis Kanavos | [Test] |
48 | 9aa8abad | Panagiotis Kanavos | public void ParseInfo() |
49 | 9aa8abad | Panagiotis Kanavos | { |
50 | 9aa8abad | Panagiotis Kanavos | |
51 | 9aa8abad | Panagiotis Kanavos | var account = "890329@vho.grnet.gr"; |
52 | 9aa8abad | Panagiotis Kanavos | var apiKey = "pvCJNuf28+K2UjWnSTlfVQ=="; |
53 | 9aa8abad | Panagiotis Kanavos | |
54 | 9aa8abad | Panagiotis Kanavos | var client = new CloudFilesClient(account, apiKey) |
55 | 9aa8abad | Panagiotis Kanavos | { |
56 | 9aa8abad | Panagiotis Kanavos | AuthenticationUrl = @"https://pithos.dev.grnet.gr", |
57 | 9aa8abad | Panagiotis Kanavos | UsePithos = true |
58 | 9aa8abad | Panagiotis Kanavos | }; |
59 | 9aa8abad | Panagiotis Kanavos | client.Authenticate(); |
60 | 9aa8abad | Panagiotis Kanavos | var fileName = @"wlsetup-web.exe"; |
61 | 9aa8abad | Panagiotis Kanavos | |
62 | 9aa8abad | Panagiotis Kanavos | var infos=client.ListObjects(account, "pithos"); |
63 | 9aa8abad | Panagiotis Kanavos | var info = infos.First(i=> i.Name == fileName); |
64 | 9aa8abad | Panagiotis Kanavos | Assert.IsNotEmpty(info.Tags); |
65 | 9aa8abad | Panagiotis Kanavos | |
66 | 9aa8abad | Panagiotis Kanavos | } |
67 | f0947233 | Panagiotis Kanavos | |
68 | f0947233 | Panagiotis Kanavos | [Test] |
69 | f0947233 | Panagiotis Kanavos | public void TestGetPermissions() |
70 | f0947233 | Panagiotis Kanavos | { |
71 | f0947233 | Panagiotis Kanavos | ObjectInfo objectInfo=new ObjectInfo(); |
72 | f0947233 | Panagiotis Kanavos | objectInfo.Permissions["user1"] = "read"; |
73 | f0947233 | Panagiotis Kanavos | objectInfo.Permissions["user2"] = "write"; |
74 | f0947233 | Panagiotis Kanavos | |
75 | f0947233 | Panagiotis Kanavos | var permissionString = objectInfo.GetPermissionString(); |
76 | f0947233 | Panagiotis Kanavos | |
77 | f0947233 | Panagiotis Kanavos | Assert.IsNotNullOrEmpty(permissionString); |
78 | f0947233 | Panagiotis Kanavos | Assert.AreEqual("read=user1;write=user2",permissionString); |
79 | f0947233 | Panagiotis Kanavos | } |
80 | f0947233 | Panagiotis Kanavos | |
81 | f0947233 | Panagiotis Kanavos | [Test] |
82 | f0947233 | Panagiotis Kanavos | public void TestSetPermissions() |
83 | f0947233 | Panagiotis Kanavos | { |
84 | f0947233 | Panagiotis Kanavos | var objectInfo=new ObjectInfo(); |
85 | f0947233 | Panagiotis Kanavos | |
86 | f0947233 | Panagiotis Kanavos | var permissionString = "read=user1;write=user2,user3@somehost.gr"; |
87 | f0947233 | Panagiotis Kanavos | |
88 | f0947233 | Panagiotis Kanavos | objectInfo.SetPermissions(permissionString); |
89 | f0947233 | Panagiotis Kanavos | |
90 | f0947233 | Panagiotis Kanavos | Assert.AreEqual(3,objectInfo.Permissions.Count); |
91 | f0947233 | Panagiotis Kanavos | Assert.IsTrue(objectInfo.Permissions.ContainsKey("user1")); |
92 | f0947233 | Panagiotis Kanavos | Assert.IsTrue(objectInfo.Permissions.ContainsKey("user2")); |
93 | f0947233 | Panagiotis Kanavos | Assert.IsTrue(objectInfo.Permissions.ContainsKey("user3@somehost.gr")); |
94 | f0947233 | Panagiotis Kanavos | Assert.IsTrue(objectInfo.Permissions["user1"]=="read"); |
95 | f0947233 | Panagiotis Kanavos | Assert.IsTrue(objectInfo.Permissions["user2"]=="write"); |
96 | f0947233 | Panagiotis Kanavos | Assert.IsTrue(objectInfo.Permissions["user3@somehost.gr"]=="write"); |
97 | f0947233 | Panagiotis Kanavos | |
98 | f0947233 | Panagiotis Kanavos | } |
99 | cfed7823 | Panagiotis Kanavos | } |
100 | cfed7823 | Panagiotis Kanavos | } |