1 package storage
2
3
4
5
6 import chk "gopkg.in/check.v1"
7
8 type StorageDirSuite struct{}
9
10 var _ = chk.Suite(&StorageDirSuite{})
11
12 func (s *StorageDirSuite) TestListZeroDirsAndFiles(c *chk.C) {
13
14 cli := getFileClient(c)
15 rec := cli.client.appendRecorder(c)
16 defer rec.Stop()
17
18 share := cli.GetShareReference(shareName(c))
19 c.Assert(share.Create(nil), chk.IsNil)
20 defer share.Delete(nil)
21
22
23 root := share.GetRootDirectoryReference()
24 resp, err := root.ListDirsAndFiles(ListDirsAndFilesParameters{})
25 c.Assert(err, chk.IsNil)
26 c.Assert(resp.Directories, chk.IsNil)
27 c.Assert(resp.Files, chk.IsNil)
28 }
29
30 func (s *StorageDirSuite) TestListDirsAndFiles(c *chk.C) {
31
32 cli := getFileClient(c)
33 rec := cli.client.appendRecorder(c)
34 defer rec.Stop()
35
36 share := cli.GetShareReference(shareName(c))
37 c.Assert(share.Create(nil), chk.IsNil)
38 defer share.Delete(nil)
39
40
41 root := share.GetRootDirectoryReference()
42 dir := root.GetDirectoryReference("SomeDirectory")
43 file := root.GetFileReference("lol.file")
44 c.Assert(dir.Create(nil), chk.IsNil)
45 c.Assert(file.Create(512, nil), chk.IsNil)
46
47
48 resp, err := root.ListDirsAndFiles(ListDirsAndFilesParameters{})
49 c.Assert(err, chk.IsNil)
50 c.Assert(len(resp.Directories), chk.Equals, 1)
51 c.Assert(len(resp.Files), chk.Equals, 1)
52 c.Assert(resp.Directories[0].Name, chk.Equals, dir.Name)
53 c.Assert(resp.Files[0].Name, chk.Equals, file.Name)
54
55
56 del, err := file.DeleteIfExists(nil)
57 c.Assert(err, chk.IsNil)
58 c.Assert(del, chk.Equals, true)
59
60 ok, err := file.Exists()
61 c.Assert(err, chk.IsNil)
62 c.Assert(ok, chk.Equals, false)
63 }
64
65 func (s *StorageDirSuite) TestCreateDirectory(c *chk.C) {
66 cli := getFileClient(c)
67 rec := cli.client.appendRecorder(c)
68 defer rec.Stop()
69
70 share := cli.GetShareReference(shareName(c))
71 c.Assert(share.Create(nil), chk.IsNil)
72 defer share.Delete(nil)
73
74 root := share.GetRootDirectoryReference()
75 dir := root.GetDirectoryReference("dir")
76 err := dir.Create(nil)
77 c.Assert(err, chk.IsNil)
78
79
80 c.Assert(dir.Properties.Etag, chk.Not(chk.Equals), "")
81 c.Assert(dir.Properties.LastModified, chk.Not(chk.Equals), "")
82
83
84 c.Assert(dir.Delete(nil), chk.IsNil)
85 exists, err := dir.Exists()
86 c.Assert(err, chk.IsNil)
87 c.Assert(exists, chk.Equals, false)
88 }
89
90 func (s *StorageDirSuite) TestCreateDirectoryIfNotExists(c *chk.C) {
91 cli := getFileClient(c)
92 rec := cli.client.appendRecorder(c)
93 defer rec.Stop()
94
95
96 share := cli.GetShareReference(shareName(c))
97 share.Create(nil)
98 defer share.Delete(nil)
99
100
101 root := share.GetRootDirectoryReference()
102 dir := root.GetDirectoryReference("dir")
103 exists, err := dir.CreateIfNotExists(nil)
104 c.Assert(err, chk.IsNil)
105 c.Assert(exists, chk.Equals, true)
106
107 c.Assert(dir.Properties.Etag, chk.Not(chk.Equals), "")
108 c.Assert(dir.Properties.LastModified, chk.Not(chk.Equals), "")
109
110 c.Assert(dir.Delete(nil), chk.IsNil)
111 exists, err = dir.Exists()
112 c.Assert(err, chk.IsNil)
113 c.Assert(exists, chk.Equals, false)
114 }
115
116 func (s *StorageDirSuite) TestCreateDirectoryIfExists(c *chk.C) {
117
118 cli := getFileClient(c)
119 rec := cli.client.appendRecorder(c)
120 defer rec.Stop()
121
122 share := cli.GetShareReference(shareName(c))
123 share.Create(nil)
124 defer share.Delete(nil)
125
126
127 root := share.GetRootDirectoryReference()
128 dir := root.GetDirectoryReference("dir")
129 dir.Create(nil)
130
131
132 exists, err := dir.CreateIfNotExists(nil)
133 c.Assert(err, chk.IsNil)
134 c.Assert(exists, chk.Equals, false)
135
136
137 c.Assert(dir.Properties.Etag, chk.Not(chk.Equals), "")
138 c.Assert(dir.Properties.LastModified, chk.Not(chk.Equals), "")
139
140
141 c.Assert(dir.Delete(nil), chk.IsNil)
142 }
143
144 func (s *StorageDirSuite) TestDirectoryMetadata(c *chk.C) {
145
146 cli := getFileClient(c)
147 rec := cli.client.appendRecorder(c)
148 defer rec.Stop()
149
150 share := cli.GetShareReference(shareName(c))
151 c.Assert(share.Create(nil), chk.IsNil)
152 defer share.Delete(nil)
153 root := share.GetRootDirectoryReference()
154
155 dir := root.GetDirectoryReference("testdir")
156 c.Assert(dir.Create(nil), chk.IsNil)
157
158
159 c.Assert(dir.Metadata, chk.IsNil)
160
161
162 md := map[string]string{
163 "something": "somethingvalue",
164 "another": "anothervalue",
165 }
166 dir.Metadata = md
167 c.Assert(dir.SetMetadata(nil), chk.IsNil)
168
169
170 c.Assert(dir.FetchAttributes(nil), chk.IsNil)
171 c.Assert(dir.Metadata, chk.DeepEquals, md)
172 }
173
View as plain text