Statistics
| Branch: | Revision:

root / trunk / Pithos.Network.Test / FolderTests.cs @ c28a075a

History | View | Annotate | Download (6.7 kB)

1 10523ad9 Panagiotis Kanavos
using System;
2 10523ad9 Panagiotis Kanavos
using System.Collections.Generic;
3 10523ad9 Panagiotis Kanavos
using System.Diagnostics;
4 10523ad9 Panagiotis Kanavos
using System.Diagnostics.Contracts;
5 10523ad9 Panagiotis Kanavos
using System.Linq;
6 10523ad9 Panagiotis Kanavos
using System.Text;
7 10523ad9 Panagiotis Kanavos
using NUnit.Framework;
8 10523ad9 Panagiotis Kanavos
using Pithos.Interfaces;
9 10523ad9 Panagiotis Kanavos
using System.IO;
10 10523ad9 Panagiotis Kanavos
11 10523ad9 Panagiotis Kanavos
12 10523ad9 Panagiotis Kanavos
namespace Pithos.Network.Test
13 10523ad9 Panagiotis Kanavos
{
14 10523ad9 Panagiotis Kanavos
    [TestFixture]
15 10523ad9 Panagiotis Kanavos
    class FolderTests
16 10523ad9 Panagiotis Kanavos
    {
17 10523ad9 Panagiotis Kanavos
        private string _apiKey = "9d3cb7b231e96f72ebe96af1c6cd5112";
18 10523ad9 Panagiotis Kanavos
        private string _userName = "pkanavos";
19 10523ad9 Panagiotis Kanavos
20 10523ad9 Panagiotis Kanavos
        [SetUp]
21 10523ad9 Panagiotis Kanavos
        public void Setup()
22 10523ad9 Panagiotis Kanavos
        {
23 10523ad9 Panagiotis Kanavos
            Directory.CreateDirectory("RootFolder");
24 10523ad9 Panagiotis Kanavos
            File.WriteAllText(@"RootFolder\TestFile1.txt", "This is a test file");
25 10523ad9 Panagiotis Kanavos
            Directory.CreateDirectory(@"RootFolder\Folder1");
26 10523ad9 Panagiotis Kanavos
            File.WriteAllText(@"RootFolder\Folder1\TestFile1.txt", "This is a test file");
27 10523ad9 Panagiotis Kanavos
            Directory.CreateDirectory(@"RootFolder\Folder1\Subfolder1");
28 10523ad9 Panagiotis Kanavos
            File.WriteAllText(@"RootFolder\Folder1\Subfolder1\TestFile1.txt", "This is a test file");
29 10523ad9 Panagiotis Kanavos
            Directory.CreateDirectory(@"RootFolder\Folder2");
30 10523ad9 Panagiotis Kanavos
            File.WriteAllText(@"RootFolder\Folder2\TestFile1.txt", "This is a test file");
31 10523ad9 Panagiotis Kanavos
32 10523ad9 Panagiotis Kanavos
        }
33 10523ad9 Panagiotis Kanavos
34 10523ad9 Panagiotis Kanavos
        [TearDown]
35 10523ad9 Panagiotis Kanavos
        public void TearDown()
36 10523ad9 Panagiotis Kanavos
        {
37 10523ad9 Panagiotis Kanavos
            Directory.Delete("RootFolder",true);
38 10523ad9 Panagiotis Kanavos
        }
39 10523ad9 Panagiotis Kanavos
        
40 10523ad9 Panagiotis Kanavos
        [Test]
41 10523ad9 Panagiotis Kanavos
        public void TestCreateSingleFolder([Values(true, false)]bool usePithos)
42 10523ad9 Panagiotis Kanavos
        {
43 c53aa229 Panagiotis Kanavos
            var account = "890329@vho.grnet.gr";
44 c53aa229 Panagiotis Kanavos
            var apiKey = "24989dce4e0fcb072f8cb60c8922be19";
45 c53aa229 Panagiotis Kanavos
            var client = new CloudFilesClient(account, apiKey){ UsePithos = usePithos };
46 c53aa229 Panagiotis Kanavos
            client.Authenticate();
47 10523ad9 Panagiotis Kanavos
48 cfed7823 Panagiotis Kanavos
            client.CreateContainer(null, "Pithos");
49 10523ad9 Panagiotis Kanavos
50 cfed7823 Panagiotis Kanavos
            client.CreateFolder(null, "Pithos", "RootFolder");
51 10523ad9 Panagiotis Kanavos
52 cfed7823 Panagiotis Kanavos
            Assert.IsTrue(client.ObjectExists(null, "Pithos","RootFolder"));
53 cfed7823 Panagiotis Kanavos
            var info = client.GetObjectInfo(null, "Pithos", "RootFolder");
54 10523ad9 Panagiotis Kanavos
            Assert.AreEqual(@"application/directory",info.Content_Type);
55 10523ad9 Panagiotis Kanavos
            
56 10523ad9 Panagiotis Kanavos
        } 
57 10523ad9 Panagiotis Kanavos
        
58 10523ad9 Panagiotis Kanavos
        [Test]
59 10523ad9 Panagiotis Kanavos
        public void TestCreateSubFolders([Values(true, false)]bool usePithos)
60 10523ad9 Panagiotis Kanavos
        {
61 c53aa229 Panagiotis Kanavos
            var account = "890329@vho.grnet.gr";
62 c53aa229 Panagiotis Kanavos
            var apiKey = "24989dce4e0fcb072f8cb60c8922be19";
63 c53aa229 Panagiotis Kanavos
            var client = new CloudFilesClient(account, apiKey) { UsePithos = usePithos };
64 c53aa229 Panagiotis Kanavos
            client.Authenticate();
65 10523ad9 Panagiotis Kanavos
66 cfed7823 Panagiotis Kanavos
            client.CreateContainer(null, "Pithos");
67 10523ad9 Panagiotis Kanavos
68 cfed7823 Panagiotis Kanavos
            client.CreateFolder(null, "Pithos", "RootFolder");
69 cfed7823 Panagiotis Kanavos
            client.CreateFolder(null, "Pithos", "RootFolder/Folder1");            
70 cfed7823 Panagiotis Kanavos
            client.PutObject(null, "Pithos","RootFolder/Folder1/test.txt","test.txt");
71 10523ad9 Panagiotis Kanavos
72 10523ad9 Panagiotis Kanavos
73 cfed7823 Panagiotis Kanavos
            Assert.IsTrue(client.ObjectExists(null, "Pithos", "RootFolder/Folder1"));
74 cfed7823 Panagiotis Kanavos
            var folderInfo = client.GetObjectInfo(null, "Pithos", "RootFolder/Folder1");
75 10523ad9 Panagiotis Kanavos
            Assert.AreEqual(@"application/directory",folderInfo.Content_Type);
76 10523ad9 Panagiotis Kanavos
77 10523ad9 Panagiotis Kanavos
78 cfed7823 Panagiotis Kanavos
            Assert.IsTrue(client.ObjectExists(null, "Pithos", "RootFolder/Folder1/test.txt"));
79 cfed7823 Panagiotis Kanavos
            var fileInfo = client.GetObjectInfo(null, "Pithos", "RootFolder/Folder1/test.txt");
80 10523ad9 Panagiotis Kanavos
            Assert.AreEqual(@"application/octet-stream", fileInfo.Content_Type);
81 10523ad9 Panagiotis Kanavos
            
82 10523ad9 Panagiotis Kanavos
        }
83 10523ad9 Panagiotis Kanavos
        
84 10523ad9 Panagiotis Kanavos
        [Test]
85 10523ad9 Panagiotis Kanavos
        public void TestDeleteSubFolders([Values(true, false)]bool usePithos)
86 10523ad9 Panagiotis Kanavos
        {
87 c53aa229 Panagiotis Kanavos
            var account = "890329@vho.grnet.gr";
88 c53aa229 Panagiotis Kanavos
            var apiKey = "24989dce4e0fcb072f8cb60c8922be19";
89 c53aa229 Panagiotis Kanavos
            var client = new CloudFilesClient(account, apiKey) { UsePithos = usePithos };
90 c53aa229 Panagiotis Kanavos
            client.Authenticate();
91 10523ad9 Panagiotis Kanavos
92 cfed7823 Panagiotis Kanavos
            client.CreateContainer(null, "Pithos");
93 10523ad9 Panagiotis Kanavos
94 cfed7823 Panagiotis Kanavos
            client.CreateFolder(null, "Pithos", "RootFolder");
95 cfed7823 Panagiotis Kanavos
            client.CreateFolder(null, "Pithos", "RootFolder/Folder1");
96 10523ad9 Panagiotis Kanavos
            var localInfo = new FileInfo("test.txt");
97 cfed7823 Panagiotis Kanavos
            client.PutObject(null, "Pithos","RootFolder/Folder1/test.txt","test.txt");
98 10523ad9 Panagiotis Kanavos
99 c53aa229 Panagiotis Kanavos
            client.DeleteObject(null, "pithos", "RootFolder/Folder1");
100 10523ad9 Panagiotis Kanavos
101 cfed7823 Panagiotis Kanavos
            Assert.IsTrue(client.ObjectExists(null, "Pithos", "RootFolder/Folder1"));
102 cfed7823 Panagiotis Kanavos
            var folderInfo = client.GetObjectInfo(null, "Pithos", "RootFolder/Folder1");
103 10523ad9 Panagiotis Kanavos
            Assert.AreEqual(@"application/directory",folderInfo.Content_Type);
104 10523ad9 Panagiotis Kanavos
105 10523ad9 Panagiotis Kanavos
106 cfed7823 Panagiotis Kanavos
            Assert.IsTrue(client.ObjectExists(null, "Pithos", "RootFolder/Folder1/test.txt"));
107 cfed7823 Panagiotis Kanavos
            var fileInfo = client.GetObjectInfo(null, "Pithos", "RootFolder/Folder1/test.txt");
108 10523ad9 Panagiotis Kanavos
            Assert.AreEqual(@"application/octet-stream", fileInfo.Content_Type);
109 10523ad9 Panagiotis Kanavos
            
110 10523ad9 Panagiotis Kanavos
        } 
111 637bc368 Panagiotis Kanavos
112 637bc368 Panagiotis Kanavos
        [Test]
113 637bc368 Panagiotis Kanavos
        public void ListFolderContents([Values(true, false)]bool usePithos)
114 637bc368 Panagiotis Kanavos
        {
115 c53aa229 Panagiotis Kanavos
            var account = "890329@vho.grnet.gr";
116 c53aa229 Panagiotis Kanavos
            var apiKey = "24989dce4e0fcb072f8cb60c8922be19";
117 c53aa229 Panagiotis Kanavos
            var client = new CloudFilesClient(account, apiKey) { UsePithos = usePithos };
118 c53aa229 Panagiotis Kanavos
            client.Authenticate();
119 637bc368 Panagiotis Kanavos
120 cfed7823 Panagiotis Kanavos
            client.CreateContainer(null, "Pithos");
121 cfed7823 Panagiotis Kanavos
            client.CreateFolder(null, "Pithos", "RootFolder3");
122 cfed7823 Panagiotis Kanavos
            client.CreateFolder(null, "Pithos", "RootFolder3/Folder1");
123 637bc368 Panagiotis Kanavos
124 637bc368 Panagiotis Kanavos
            
125 cfed7823 Panagiotis Kanavos
            client.PutObject(null, "Pithos", "RootFolder3/test1.txt", "test.txt");
126 cfed7823 Panagiotis Kanavos
            client.PutObject(null, "Pithos", "RootFolder3/test2.txt", "test.txt");
127 cfed7823 Panagiotis Kanavos
            client.PutObject(null, "Pithos", "RootFolder3/Folder1/test2.txt", "test.txt");
128 637bc368 Panagiotis Kanavos
129 637bc368 Panagiotis Kanavos
            var files=client.ListObjects("Pithos", "RootFolder3");
130 637bc368 Panagiotis Kanavos
            Assert.AreEqual(3,files.Count,"Unexpected number of root items");
131 637bc368 Panagiotis Kanavos
132 637bc368 Panagiotis Kanavos
            files = client.ListObjects("Pithos", "RootFolder3/Folder1");
133 637bc368 Panagiotis Kanavos
            Assert.AreEqual(1, files.Count, "Unexpected number of subfolder items");
134 637bc368 Panagiotis Kanavos
135 637bc368 Panagiotis Kanavos
136 637bc368 Panagiotis Kanavos
137 637bc368 Panagiotis Kanavos
        }
138 10523ad9 Panagiotis Kanavos
        
139 10523ad9 Panagiotis Kanavos
        [Test]
140 10523ad9 Panagiotis Kanavos
        public void TestCreateSubFoldersInOneStep([Values(true, false)]bool usePithos)
141 10523ad9 Panagiotis Kanavos
        {
142 c53aa229 Panagiotis Kanavos
            var account = "890329@vho.grnet.gr";
143 c53aa229 Panagiotis Kanavos
            var apiKey = "24989dce4e0fcb072f8cb60c8922be19";
144 c53aa229 Panagiotis Kanavos
            var client = new CloudFilesClient(account, apiKey) { UsePithos = usePithos };
145 c53aa229 Panagiotis Kanavos
            client.Authenticate();
146 10523ad9 Panagiotis Kanavos
147 cfed7823 Panagiotis Kanavos
            client.CreateContainer(null, "Pithos");
148 10523ad9 Panagiotis Kanavos
            
149 cfed7823 Panagiotis Kanavos
            client.CreateFolder(null, "Pithos", "RootFolder2/Folder1");
150 10523ad9 Panagiotis Kanavos
151 cfed7823 Panagiotis Kanavos
            Assert.IsTrue(client.ObjectExists(null, "Pithos", "RootFolder2/Folder1"));
152 cfed7823 Panagiotis Kanavos
            var folderInfo = client.GetObjectInfo(null, "Pithos", "RootFolder2/Folder1");
153 10523ad9 Panagiotis Kanavos
            Assert.AreEqual(@"application/directory",folderInfo.Content_Type);
154 10523ad9 Panagiotis Kanavos
155 cfed7823 Panagiotis Kanavos
            Assert.IsTrue(client.ObjectExists(null, "Pithos", "RootFolder2"));
156 cfed7823 Panagiotis Kanavos
            folderInfo = client.GetObjectInfo(null, "Pithos", "RootFolder2");
157 10523ad9 Panagiotis Kanavos
            Assert.AreEqual(@"application/directory", folderInfo.Content_Type);
158 10523ad9 Panagiotis Kanavos
159 10523ad9 Panagiotis Kanavos
160 cfed7823 Panagiotis Kanavos
            Assert.IsTrue(client.ObjectExists(null, "Pithos", "RootFolder2/Folder1/test.txt"));
161 cfed7823 Panagiotis Kanavos
            var fileInfo = client.GetObjectInfo(null, "Pithos", "RootFolder2/Folder1/test.txt");
162 10523ad9 Panagiotis Kanavos
            Assert.AreEqual(@"application/octet-stream", fileInfo.Content_Type);
163 10523ad9 Panagiotis Kanavos
            
164 10523ad9 Panagiotis Kanavos
        }
165 10523ad9 Panagiotis Kanavos
    }
166 10523ad9 Panagiotis Kanavos
}