utils_test.go 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. package oss
  2. import (
  3. "fmt"
  4. . "gopkg.in/check.v1"
  5. )
  6. type OssUtilsSuite struct{}
  7. var _ = Suite(&OssUtilsSuite{})
  8. func (s *OssUtilsSuite) TestUtilsTime(c *C) {
  9. c.Assert(GetNowSec() > 1448597674, Equals, true)
  10. c.Assert(GetNowNanoSec() > 1448597674000000000, Equals, true)
  11. c.Assert(len(GetNowGMT()), Equals, len("Fri, 27 Nov 2015 04:14:34 GMT"))
  12. }
  13. func (s *OssUtilsSuite) TestUtilsSplitFile(c *C) {
  14. localFile := "../sample/BingWallpaper-2015-11-07.jpg"
  15. // Num
  16. parts, err := SplitFileByPartNum(localFile, 4)
  17. c.Assert(err, IsNil)
  18. c.Assert(len(parts), Equals, 4)
  19. fmt.Println("parts 4:", parts)
  20. for i, part := range parts {
  21. c.Assert(part.Number, Equals, i+1)
  22. c.Assert(part.Offset, Equals, int64(i*120512))
  23. c.Assert(part.Size, Equals, int64(120512))
  24. }
  25. parts, err = SplitFileByPartNum(localFile, 5)
  26. c.Assert(err, IsNil)
  27. c.Assert(len(parts), Equals, 5)
  28. fmt.Println("parts 5:", parts)
  29. for i, part := range parts {
  30. c.Assert(part.Number, Equals, i+1)
  31. c.Assert(part.Offset, Equals, int64(i*96409))
  32. }
  33. _, err = SplitFileByPartNum(localFile, 10001)
  34. c.Assert(err, NotNil)
  35. _, err = SplitFileByPartNum(localFile, 0)
  36. c.Assert(err, NotNil)
  37. _, err = SplitFileByPartNum(localFile, -1)
  38. c.Assert(err, NotNil)
  39. _, err = SplitFileByPartNum("notexist", 1024)
  40. c.Assert(err, NotNil)
  41. // Size
  42. parts, err = SplitFileByPartSize(localFile, 120512)
  43. c.Assert(err, IsNil)
  44. c.Assert(len(parts), Equals, 4)
  45. fmt.Println("parts 4:", parts)
  46. for i, part := range parts {
  47. c.Assert(part.Number, Equals, i+1)
  48. c.Assert(part.Offset, Equals, int64(i*120512))
  49. c.Assert(part.Size, Equals, int64(120512))
  50. }
  51. parts, err = SplitFileByPartSize(localFile, 96409)
  52. c.Assert(err, IsNil)
  53. c.Assert(len(parts), Equals, 6)
  54. fmt.Println("parts 6:", parts)
  55. for i, part := range parts {
  56. c.Assert(part.Number, Equals, i+1)
  57. c.Assert(part.Offset, Equals, int64(i*96409))
  58. }
  59. _, err = SplitFileByPartSize(localFile, 0)
  60. c.Assert(err, NotNil)
  61. _, err = SplitFileByPartSize(localFile, -1)
  62. c.Assert(err, NotNil)
  63. _, err = SplitFileByPartSize(localFile, 10)
  64. c.Assert(err, NotNil)
  65. _, err = SplitFileByPartSize("noexist", 120512)
  66. c.Assert(err, NotNil)
  67. }
  68. func (s *OssUtilsSuite) TestUtilsFileExt(c *C) {
  69. c.Assert(TypeByExtension("test.txt"), Equals, "text/plain; charset=utf-8")
  70. c.Assert(TypeByExtension("test.jpg"), Equals, "image/jpeg")
  71. c.Assert(TypeByExtension("test.pdf"), Equals, "application/pdf")
  72. c.Assert(TypeByExtension("test"), Equals, "")
  73. c.Assert(TypeByExtension("/root/dir/test.txt"), Equals, "text/plain; charset=utf-8")
  74. c.Assert(TypeByExtension("root/dir/test.txt"), Equals, "text/plain; charset=utf-8")
  75. c.Assert(TypeByExtension("root\\dir\\test.txt"), Equals, "text/plain; charset=utf-8")
  76. c.Assert(TypeByExtension("D:\\work\\dir\\test.txt"), Equals, "text/plain; charset=utf-8")
  77. }
  78. func (s *OssUtilsSuite) TestGetPartEnd(c *C) {
  79. end := GetPartEnd(3, 10, 3)
  80. c.Assert(end, Equals, int64(5))
  81. end = GetPartEnd(9, 10, 3)
  82. c.Assert(end, Equals, int64(9))
  83. end = GetPartEnd(7, 10, 3)
  84. c.Assert(end, Equals, int64(9))
  85. }