10 type OssTypeSuite struct{}
12 var _ = Suite(&OssTypeSuite{})
15 goStr = "go go + go <> go"
17 goURLStr = url.QueryEscape(goStr)
18 chnURLStr = url.QueryEscape(chnStr)
21 func (s *OssTypeSuite) TestDecodeDeleteObjectsResult(c *C) {
22 var res DeleteObjectVersionsResult
23 err := decodeDeleteObjectsResult(&res)
26 res.DeletedObjectsDetail = []DeletedKeyInfo{DeletedKeyInfo{Key: ""}}
27 err = decodeDeleteObjectsResult(&res)
29 c.Assert(res.DeletedObjectsDetail[0].Key, Equals, "")
31 res.DeletedObjectsDetail = []DeletedKeyInfo{DeletedKeyInfo{Key: goURLStr}, DeletedKeyInfo{Key: chnURLStr}}
32 err = decodeDeleteObjectsResult(&res)
34 c.Assert(res.DeletedObjectsDetail[0].Key, Equals, goStr)
35 c.Assert(res.DeletedObjectsDetail[1].Key, Equals, chnStr)
38 func (s *OssTypeSuite) TestDecodeListObjectsResult(c *C) {
39 var res ListObjectsResult
40 err := decodeListObjectsResult(&res)
43 res = ListObjectsResult{}
44 err = decodeListObjectsResult(&res)
47 res = ListObjectsResult{Prefix: goURLStr, Marker: goURLStr,
48 Delimiter: goURLStr, NextMarker: goURLStr,
49 Objects: []ObjectProperties{{Key: chnURLStr}},
50 CommonPrefixes: []string{chnURLStr}}
52 err = decodeListObjectsResult(&res)
55 c.Assert(res.Prefix, Equals, goStr)
56 c.Assert(res.Marker, Equals, goStr)
57 c.Assert(res.Delimiter, Equals, goStr)
58 c.Assert(res.NextMarker, Equals, goStr)
59 c.Assert(res.Objects[0].Key, Equals, chnStr)
60 c.Assert(res.CommonPrefixes[0], Equals, chnStr)
63 func (s *OssTypeSuite) TestDecodeListMultipartUploadResult(c *C) {
64 res := ListMultipartUploadResult{}
65 err := decodeListMultipartUploadResult(&res)
68 res = ListMultipartUploadResult{Prefix: goURLStr, KeyMarker: goURLStr,
69 Delimiter: goURLStr, NextKeyMarker: goURLStr,
70 Uploads: []UncompletedUpload{{Key: chnURLStr}}}
72 err = decodeListMultipartUploadResult(&res)
75 c.Assert(res.Prefix, Equals, goStr)
76 c.Assert(res.KeyMarker, Equals, goStr)
77 c.Assert(res.Delimiter, Equals, goStr)
78 c.Assert(res.NextKeyMarker, Equals, goStr)
79 c.Assert(res.Uploads[0].Key, Equals, chnStr)
82 func (s *OssTypeSuite) TestSortUploadPart(c *C) {
83 parts := []UploadPart{}
85 sort.Sort(UploadParts(parts))
86 c.Assert(len(parts), Equals, 0)
89 {PartNumber: 5, ETag: "E5"},
90 {PartNumber: 1, ETag: "E1"},
91 {PartNumber: 4, ETag: "E4"},
92 {PartNumber: 2, ETag: "E2"},
93 {PartNumber: 3, ETag: "E3"},
96 sort.Sort(UploadParts(parts))
98 c.Assert(parts[0].PartNumber, Equals, 1)
99 c.Assert(parts[0].ETag, Equals, "E1")
100 c.Assert(parts[1].PartNumber, Equals, 2)
101 c.Assert(parts[1].ETag, Equals, "E2")
102 c.Assert(parts[2].PartNumber, Equals, 3)
103 c.Assert(parts[2].ETag, Equals, "E3")
104 c.Assert(parts[3].PartNumber, Equals, 4)
105 c.Assert(parts[3].ETag, Equals, "E4")
106 c.Assert(parts[4].PartNumber, Equals, 5)
107 c.Assert(parts[4].ETag, Equals, "E5")
110 func (s *OssTypeSuite) TestValidateLifecleRules(c *C) {
111 expiration := LifecycleExpiration{
113 CreatedBeforeDate: "2015-11-11T00:00:00.000Z",
115 rule := LifecycleRule{
119 Expiration: &expiration,
121 rules := []LifecycleRule{rule}
122 err := verifyLifecycleRules(rules)
125 expiration = LifecycleExpiration{
126 Date: "2015-11-11T00:00:00.000Z",
127 CreatedBeforeDate: "2015-11-11T00:00:00.000Z",
129 rule = LifecycleRule{
133 Expiration: &expiration,
135 rules = []LifecycleRule{rule}
136 err = verifyLifecycleRules(rules)
139 expiration = LifecycleExpiration{
141 CreatedBeforeDate: "",
144 rule = LifecycleRule{
148 Expiration: &expiration,
150 rules = []LifecycleRule{rule}
151 err = verifyLifecycleRules(rules)
154 abortMPU := LifecycleAbortMultipartUpload{
156 CreatedBeforeDate: "2015-11-11T00:00:00.000Z",
158 rule = LifecycleRule{
162 AbortMultipartUpload: &abortMPU,
164 rules = []LifecycleRule{rule}
165 err = verifyLifecycleRules(rules)
166 c.Assert(err, NotNil)
168 abortMPU = LifecycleAbortMultipartUpload{
170 CreatedBeforeDate: "",
172 rule = LifecycleRule{
176 AbortMultipartUpload: &abortMPU,
178 rules = []LifecycleRule{rule}
179 err = verifyLifecycleRules(rules)
180 c.Assert(err, NotNil)
182 transition := LifecycleTransition{
184 CreatedBeforeDate: "2015-11-11T00:00:00.000Z",
185 StorageClass: StorageIA,
187 rule = LifecycleRule{
191 Transitions: []LifecycleTransition{transition},
193 rules = []LifecycleRule{rule}
194 err = verifyLifecycleRules(rules)
195 c.Assert(err, NotNil)
197 transition = LifecycleTransition{
199 CreatedBeforeDate: "",
200 StorageClass: StorageIA,
202 rule = LifecycleRule{
206 Transitions: []LifecycleTransition{transition},
208 rules = []LifecycleRule{rule}
209 err = verifyLifecycleRules(rules)
210 c.Assert(err, NotNil)
212 transition = LifecycleTransition{
214 StorageClass: StorageStandard,
216 rule = LifecycleRule{
220 Transitions: []LifecycleTransition{transition},
222 rules = []LifecycleRule{rule}
223 err = verifyLifecycleRules(rules)
226 transition = LifecycleTransition{
227 CreatedBeforeDate: "2015-11-11T00:00:00.000Z",
228 StorageClass: StorageStandard,
230 rule = LifecycleRule{
234 Transitions: []LifecycleTransition{transition},
236 rules = []LifecycleRule{rule}
237 err = verifyLifecycleRules(rules)
240 transition1 := LifecycleTransition{
242 StorageClass: StorageIA,
244 transition2 := LifecycleTransition{
246 StorageClass: StorageArchive,
248 transition3 := LifecycleTransition{
250 StorageClass: StorageArchive,
252 rule = LifecycleRule{
256 Transitions: []LifecycleTransition{transition1, transition2, transition3},
258 rules = []LifecycleRule{rule}
259 err = verifyLifecycleRules(rules)
262 rule = LifecycleRule{
267 rules = []LifecycleRule{rule}
268 err = verifyLifecycleRules(rules)
271 rules = []LifecycleRule{}
272 err1 := verifyLifecycleRules(rules)
273 c.Assert(err1, NotNil)
275 expiration = LifecycleExpiration{
278 rule = LifecycleRule{
282 Expiration: &expiration,
284 rules = []LifecycleRule{rule}
285 err = verifyLifecycleRules(rules)
288 expiration = LifecycleExpiration{
289 CreatedBeforeDate: "2015-11-11T00:00:00.000Z",
291 rule = LifecycleRule{
295 Expiration: &expiration,
297 rules = []LifecycleRule{rule}
298 err = verifyLifecycleRules(rules)
301 abortMPU = LifecycleAbortMultipartUpload{
304 rule = LifecycleRule{
308 AbortMultipartUpload: &abortMPU,
310 rules = []LifecycleRule{rule}
311 err = verifyLifecycleRules(rules)
314 abortMPU = LifecycleAbortMultipartUpload{
315 CreatedBeforeDate: "2015-11-11T00:00:00.000Z",
317 rule = LifecycleRule{
321 AbortMultipartUpload: &abortMPU,
323 rules = []LifecycleRule{rule}
324 err = verifyLifecycleRules(rules)
327 expiration = LifecycleExpiration{
330 abortMPU = LifecycleAbortMultipartUpload{
333 rule = LifecycleRule{
337 Expiration: &expiration,
338 AbortMultipartUpload: &abortMPU,
340 rules = []LifecycleRule{rule}
341 err = verifyLifecycleRules(rules)
344 expiration = LifecycleExpiration{
345 CreatedBeforeDate: "2015-11-11T00:00:00.000Z",
347 abortMPU = LifecycleAbortMultipartUpload{
350 transition = LifecycleTransition{
352 StorageClass: StorageIA,
354 rule = LifecycleRule{
358 Expiration: &expiration,
359 AbortMultipartUpload: &abortMPU,
360 Transitions: []LifecycleTransition{transition},
362 rules = []LifecycleRule{rule}
363 err = verifyLifecycleRules(rules)
366 expiration = LifecycleExpiration{
367 CreatedBeforeDate: "2015-11-11T00:00:00.000Z",
369 abortMPU = LifecycleAbortMultipartUpload{
372 transition1 = LifecycleTransition{
374 StorageClass: StorageIA,
376 transition2 = LifecycleTransition{
378 StorageClass: StorageArchive,
380 rule = LifecycleRule{
384 Expiration: &expiration,
385 AbortMultipartUpload: &abortMPU,
386 Transitions: []LifecycleTransition{transition1, transition2},
388 rules = []LifecycleRule{rule}
389 err = verifyLifecycleRules(rules)