utils_test.go 3.0 KB

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