Statistics
| Branch: | Revision:

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
}