Statistics
| Branch: | Revision:

root / trunk / Pithos.Network.Test / FolderTests.cs @ 1b4a7550

History | View | Annotate | Download (6.6 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
        [SetUp]
18
        public void Setup()
19
        {
20
            Directory.CreateDirectory("RootFolder");
21
            File.WriteAllText(@"RootFolder\TestFile1.txt", "This is a test file");
22
            Directory.CreateDirectory(@"RootFolder\Folder1");
23
            File.WriteAllText(@"RootFolder\Folder1\TestFile1.txt", "This is a test file");
24
            Directory.CreateDirectory(@"RootFolder\Folder1\Subfolder1");
25
            File.WriteAllText(@"RootFolder\Folder1\Subfolder1\TestFile1.txt", "This is a test file");
26
            Directory.CreateDirectory(@"RootFolder\Folder2");
27
            File.WriteAllText(@"RootFolder\Folder2\TestFile1.txt", "This is a test file");
28

    
29
        }
30

    
31
        [TearDown]
32
        public void TearDown()
33
        {
34
            Directory.Delete("RootFolder",true);
35
        }
36
        
37
        [Test]
38
        public void TestCreateSingleFolder([Values(true, false)]bool usePithos)
39
        {
40
            var account = "890329@vho.grnet.gr";
41
            var apiKey = "24989dce4e0fcb072f8cb60c8922be19";
42
            var client = new CloudFilesClient(account, apiKey){ UsePithos = usePithos };
43
            client.Authenticate();
44

    
45
            client.CreateContainer(null, "Pithos");
46

    
47
            client.CreateFolder(null, "Pithos", "RootFolder");
48

    
49
            Assert.IsTrue(client.ObjectExists(null, "Pithos","RootFolder"));
50
            var info = client.GetObjectInfo(null, "Pithos", "RootFolder");
51
            Assert.AreEqual(@"application/directory",info.Content_Type);
52
            
53
        } 
54
        
55
        [Test]
56
        public void TestCreateSubFolders([Values(true, false)]bool usePithos)
57
        {
58
            var account = "890329@vho.grnet.gr";
59
            var apiKey = "24989dce4e0fcb072f8cb60c8922be19";
60
            var client = new CloudFilesClient(account, apiKey) { UsePithos = usePithos };
61
            client.Authenticate();
62

    
63
            client.CreateContainer(null, "Pithos");
64

    
65
            client.CreateFolder(null, "Pithos", "RootFolder");
66
            client.CreateFolder(null, "Pithos", "RootFolder/Folder1");            
67
            client.PutObject(null, "Pithos","RootFolder/Folder1/test.txt","test.txt");
68

    
69

    
70
            Assert.IsTrue(client.ObjectExists(null, "Pithos", "RootFolder/Folder1"));
71
            var folderInfo = client.GetObjectInfo(null, "Pithos", "RootFolder/Folder1");
72
            Assert.AreEqual(@"application/directory",folderInfo.Content_Type);
73

    
74

    
75
            Assert.IsTrue(client.ObjectExists(null, "Pithos", "RootFolder/Folder1/test.txt"));
76
            var fileInfo = client.GetObjectInfo(null, "Pithos", "RootFolder/Folder1/test.txt");
77
            Assert.AreEqual(@"application/octet-stream", fileInfo.Content_Type);
78
            
79
        }
80
        
81
        [Test]
82
        public void TestDeleteSubFolders([Values(true, false)]bool usePithos)
83
        {
84
            var account = "890329@vho.grnet.gr";
85
            var apiKey = "24989dce4e0fcb072f8cb60c8922be19";
86
            var client = new CloudFilesClient(account, apiKey) { UsePithos = usePithos };
87
            client.Authenticate();
88

    
89
            client.CreateContainer(null, "Pithos");
90

    
91
            client.CreateFolder(null, "Pithos", "RootFolder");
92
            client.CreateFolder(null, "Pithos", "RootFolder/Folder1");
93
            var localInfo = new FileInfo("test.txt");
94
            client.PutObject(null, "Pithos","RootFolder/Folder1/test.txt","test.txt");
95

    
96
            client.DeleteObject(null, "pithos", "RootFolder/Folder1");
97

    
98
            Assert.IsTrue(client.ObjectExists(null, "Pithos", "RootFolder/Folder1"));
99
            var folderInfo = client.GetObjectInfo(null, "Pithos", "RootFolder/Folder1");
100
            Assert.AreEqual(@"application/directory",folderInfo.Content_Type);
101

    
102

    
103
            Assert.IsTrue(client.ObjectExists(null, "Pithos", "RootFolder/Folder1/test.txt"));
104
            var fileInfo = client.GetObjectInfo(null, "Pithos", "RootFolder/Folder1/test.txt");
105
            Assert.AreEqual(@"application/octet-stream", fileInfo.Content_Type);
106
            
107
        } 
108

    
109
        [Test]
110
        public void ListFolderContents([Values(true, false)]bool usePithos)
111
        {
112
            var account = "890329@vho.grnet.gr";
113
            var apiKey = "24989dce4e0fcb072f8cb60c8922be19";
114
            var client = new CloudFilesClient(account, apiKey) { UsePithos = usePithos };
115
            client.Authenticate();
116

    
117
            client.CreateContainer(null, "Pithos");
118
            client.CreateFolder(null, "Pithos", "RootFolder3");
119
            client.CreateFolder(null, "Pithos", "RootFolder3/Folder1");
120

    
121
            
122
            client.PutObject(null, "Pithos", "RootFolder3/test1.txt", "test.txt");
123
            client.PutObject(null, "Pithos", "RootFolder3/test2.txt", "test.txt");
124
            client.PutObject(null, "Pithos", "RootFolder3/Folder1/test2.txt", "test.txt");
125

    
126
            var files=client.ListObjects("Pithos", "RootFolder3");
127
            Assert.AreEqual(3,files.Count,"Unexpected number of root items");
128

    
129
            files = client.ListObjects("Pithos", "RootFolder3/Folder1");
130
            Assert.AreEqual(1, files.Count, "Unexpected number of subfolder items");
131

    
132

    
133

    
134
        }
135
        
136
        [Test]
137
        public void TestCreateSubFoldersInOneStep([Values(true, false)]bool usePithos)
138
        {
139
            var account = "890329@vho.grnet.gr";
140
            var apiKey = "24989dce4e0fcb072f8cb60c8922be19";
141
            var client = new CloudFilesClient(account, apiKey) { UsePithos = usePithos };
142
            client.Authenticate();
143

    
144
            client.CreateContainer(null, "Pithos");
145
            
146
            client.CreateFolder(null, "Pithos", "RootFolder2/Folder1");
147

    
148
            Assert.IsTrue(client.ObjectExists(null, "Pithos", "RootFolder2/Folder1"));
149
            var folderInfo = client.GetObjectInfo(null, "Pithos", "RootFolder2/Folder1");
150
            Assert.AreEqual(@"application/directory",folderInfo.Content_Type);
151

    
152
            Assert.IsTrue(client.ObjectExists(null, "Pithos", "RootFolder2"));
153
            folderInfo = client.GetObjectInfo(null, "Pithos", "RootFolder2");
154
            Assert.AreEqual(@"application/directory", folderInfo.Content_Type);
155

    
156

    
157
            Assert.IsTrue(client.ObjectExists(null, "Pithos", "RootFolder2/Folder1/test.txt"));
158
            var fileInfo = client.GetObjectInfo(null, "Pithos", "RootFolder2/Folder1/test.txt");
159
            Assert.AreEqual(@"application/octet-stream", fileInfo.Content_Type);
160
            
161
        }
162
    }
163
}