Statistics
| Branch: | Revision:

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
}