type_test.go 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. package oss
  2. import (
  3. "net/url"
  4. "sort"
  5. . "gopkg.in/check.v1"
  6. )
  7. type OssTypeSuite struct{}
  8. var _ = Suite(&OssTypeSuite{})
  9. var (
  10. goStr = "go go + go <> go"
  11. chnStr = "试问闲情几许"
  12. goURLStr = url.QueryEscape(goStr)
  13. chnURLStr = url.QueryEscape(chnStr)
  14. )
  15. /*
  16. func (s *OssTypeSuite) TestConvLifecycleRule(c *C) {
  17. r1 := BuildLifecycleRuleByDate("id1", "one", true, 2015, 11, 11)
  18. r2 := BuildLifecycleRuleByDays("id2", "two", false, 3)
  19. rs := convLifecycleRule([]LifecycleRule{r1})
  20. c.Assert(rs[0].ID, Equals, "id1")
  21. c.Assert(rs[0].Prefix, Equals, "one")
  22. c.Assert(rs[0].Status, Equals, "Enabled")
  23. c.Assert(rs[0].Expiration.Date, Equals, "2015-11-11T00:00:00.000Z")
  24. c.Assert(rs[0].Expiration.Days, Equals, 0)
  25. rs = convLifecycleRule([]LifecycleRule{r2})
  26. c.Assert(rs[0].ID, Equals, "id2")
  27. c.Assert(rs[0].Prefix, Equals, "two")
  28. c.Assert(rs[0].Status, Equals, "Disabled")
  29. c.Assert(rs[0].Expiration.Date, Equals, "")
  30. c.Assert(rs[0].Expiration.Days, Equals, 3)
  31. }
  32. */
  33. func (s *OssTypeSuite) TestDecodeDeleteObjectsResult(c *C) {
  34. var res DeleteObjectsResult
  35. err := decodeDeleteObjectsResult(&res)
  36. c.Assert(err, IsNil)
  37. res.DeletedObjects = []string{""}
  38. err = decodeDeleteObjectsResult(&res)
  39. c.Assert(err, IsNil)
  40. c.Assert(res.DeletedObjects[0], Equals, "")
  41. res.DeletedObjects = []string{goURLStr, chnURLStr}
  42. err = decodeDeleteObjectsResult(&res)
  43. c.Assert(err, IsNil)
  44. c.Assert(res.DeletedObjects[0], Equals, goStr)
  45. c.Assert(res.DeletedObjects[1], Equals, chnStr)
  46. }
  47. func (s *OssTypeSuite) TestDecodeListObjectsResult(c *C) {
  48. var res ListObjectsResult
  49. err := decodeListObjectsResult(&res)
  50. c.Assert(err, IsNil)
  51. res = ListObjectsResult{}
  52. err = decodeListObjectsResult(&res)
  53. c.Assert(err, IsNil)
  54. res = ListObjectsResult{Prefix: goURLStr, Marker: goURLStr,
  55. Delimiter: goURLStr, NextMarker: goURLStr,
  56. Objects: []ObjectProperties{{Key: chnURLStr}},
  57. CommonPrefixes: []string{chnURLStr}}
  58. err = decodeListObjectsResult(&res)
  59. c.Assert(err, IsNil)
  60. c.Assert(res.Prefix, Equals, goStr)
  61. c.Assert(res.Marker, Equals, goStr)
  62. c.Assert(res.Delimiter, Equals, goStr)
  63. c.Assert(res.NextMarker, Equals, goStr)
  64. c.Assert(res.Objects[0].Key, Equals, chnStr)
  65. c.Assert(res.CommonPrefixes[0], Equals, chnStr)
  66. }
  67. func (s *OssTypeSuite) TestDecodeListMultipartUploadResult(c *C) {
  68. res := ListMultipartUploadResult{}
  69. err := decodeListMultipartUploadResult(&res)
  70. c.Assert(err, IsNil)
  71. res = ListMultipartUploadResult{Prefix: goURLStr, KeyMarker: goURLStr,
  72. Delimiter: goURLStr, NextKeyMarker: goURLStr,
  73. Uploads: []UncompletedUpload{{Key: chnURLStr}}}
  74. err = decodeListMultipartUploadResult(&res)
  75. c.Assert(err, IsNil)
  76. c.Assert(res.Prefix, Equals, goStr)
  77. c.Assert(res.KeyMarker, Equals, goStr)
  78. c.Assert(res.Delimiter, Equals, goStr)
  79. c.Assert(res.NextKeyMarker, Equals, goStr)
  80. c.Assert(res.Uploads[0].Key, Equals, chnStr)
  81. }
  82. func (s *OssTypeSuite) TestSortUploadPart(c *C) {
  83. parts := []UploadPart{}
  84. sort.Sort(uploadParts(parts))
  85. c.Assert(len(parts), Equals, 0)
  86. parts = []UploadPart{
  87. {PartNumber: 5, ETag: "E5"},
  88. {PartNumber: 1, ETag: "E1"},
  89. {PartNumber: 4, ETag: "E4"},
  90. {PartNumber: 2, ETag: "E2"},
  91. {PartNumber: 3, ETag: "E3"},
  92. }
  93. sort.Sort(uploadParts(parts))
  94. c.Assert(parts[0].PartNumber, Equals, 1)
  95. c.Assert(parts[0].ETag, Equals, "E1")
  96. c.Assert(parts[1].PartNumber, Equals, 2)
  97. c.Assert(parts[1].ETag, Equals, "E2")
  98. c.Assert(parts[2].PartNumber, Equals, 3)
  99. c.Assert(parts[2].ETag, Equals, "E3")
  100. c.Assert(parts[3].PartNumber, Equals, 4)
  101. c.Assert(parts[3].ETag, Equals, "E4")
  102. c.Assert(parts[4].PartNumber, Equals, 5)
  103. c.Assert(parts[4].ETag, Equals, "E5")
  104. }