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