You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

storage_test.go 4.0 kB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. package storage
  2. import (
  3. "bytes"
  4. "fmt"
  5. "io"
  6. "testing"
  7. "github.com/google/uuid"
  8. . "github.com/smartystreets/goconvey/convey"
  9. "gitlink.org.cn/cloudream/common/models"
  10. "gitlink.org.cn/cloudream/common/pkgs/iterator"
  11. )
  12. func Test_Object(t *testing.T) {
  13. Convey("上传,下载,删除", t, func() {
  14. cli := NewClient(&Config{
  15. URL: "http://localhost:7890",
  16. })
  17. fileData := make([]byte, 4096)
  18. for i := 0; i < len(fileData); i++ {
  19. fileData[i] = byte(i)
  20. }
  21. nodeAff := int64(2)
  22. upResp, err := cli.PackageUpload(PackageUploadReq{
  23. UserID: 0,
  24. BucketID: 1,
  25. Name: uuid.NewString(),
  26. Redundancy: models.TypedRedundancyInfo{
  27. Type: models.RedundancyRep,
  28. Info: models.NewRepRedundancyInfo(1),
  29. },
  30. NodeAffinity: &nodeAff,
  31. Files: iterator.Array(
  32. &IterPackageUploadFile{
  33. Path: "test",
  34. File: io.NopCloser(bytes.NewBuffer(fileData)),
  35. },
  36. &IterPackageUploadFile{
  37. Path: "test2",
  38. File: io.NopCloser(bytes.NewBuffer(fileData)),
  39. },
  40. ),
  41. })
  42. So(err, ShouldBeNil)
  43. // downFs, err := cli.ObjectDownload(ObjectDownloadReq{
  44. // UserID: 0,
  45. // ObjectID: upResp.ObjectID,
  46. // })
  47. // So(err, ShouldBeNil)
  48. //
  49. // downFileData, err := io.ReadAll(downFs)
  50. // So(err, ShouldBeNil)
  51. // So(downFileData, ShouldResemble, fileData)
  52. // downFs.Close()
  53. err = cli.PackageDelete(PackageDeleteReq{
  54. UserID: 0,
  55. PackageID: upResp.PackageID,
  56. })
  57. So(err, ShouldBeNil)
  58. })
  59. }
  60. func Test_Storage(t *testing.T) {
  61. Convey("上传后调度文件", t, func() {
  62. cli := NewClient(&Config{
  63. URL: "http://localhost:7890",
  64. })
  65. fileData := make([]byte, 4096)
  66. for i := 0; i < len(fileData); i++ {
  67. fileData[i] = byte(i)
  68. }
  69. upResp, err := cli.PackageUpload(PackageUploadReq{
  70. UserID: 0,
  71. BucketID: 1,
  72. Name: uuid.NewString(),
  73. Redundancy: models.TypedRedundancyInfo{
  74. Type: models.RedundancyRep,
  75. Info: models.NewRepRedundancyInfo(1),
  76. },
  77. Files: iterator.Array(
  78. &IterPackageUploadFile{
  79. Path: "test",
  80. File: io.NopCloser(bytes.NewBuffer(fileData)),
  81. },
  82. &IterPackageUploadFile{
  83. Path: "test2",
  84. File: io.NopCloser(bytes.NewBuffer(fileData)),
  85. },
  86. ),
  87. })
  88. So(err, ShouldBeNil)
  89. err = cli.StorageLoadPackage(StorageLoadPackageReq{
  90. UserID: 0,
  91. PackageID: upResp.PackageID,
  92. StorageID: 1,
  93. })
  94. So(err, ShouldBeNil)
  95. err = cli.PackageDelete(PackageDeleteReq{
  96. UserID: 0,
  97. PackageID: upResp.PackageID,
  98. })
  99. So(err, ShouldBeNil)
  100. })
  101. }
  102. func Test_Cache(t *testing.T) {
  103. Convey("上传后移动文件", t, func() {
  104. cli := NewClient(&Config{
  105. URL: "http://localhost:7890",
  106. })
  107. fileData := make([]byte, 4096)
  108. for i := 0; i < len(fileData); i++ {
  109. fileData[i] = byte(i)
  110. }
  111. upResp, err := cli.PackageUpload(PackageUploadReq{
  112. UserID: 0,
  113. BucketID: 1,
  114. Name: uuid.NewString(),
  115. Redundancy: models.TypedRedundancyInfo{
  116. Type: models.RedundancyRep,
  117. Info: models.NewRepRedundancyInfo(1),
  118. },
  119. Files: iterator.Array(
  120. &IterPackageUploadFile{
  121. Path: "test.txt",
  122. File: io.NopCloser(bytes.NewBuffer(fileData)),
  123. },
  124. &IterPackageUploadFile{
  125. Path: "test2.txt",
  126. File: io.NopCloser(bytes.NewBuffer(fileData)),
  127. },
  128. ),
  129. })
  130. So(err, ShouldBeNil)
  131. err = cli.CacheMovePackage(CacheMovePackageReq{
  132. UserID: 0,
  133. PackageID: upResp.PackageID,
  134. NodeID: 1,
  135. })
  136. So(err, ShouldBeNil)
  137. err = cli.PackageDelete(PackageDeleteReq{
  138. UserID: 0,
  139. PackageID: upResp.PackageID,
  140. })
  141. So(err, ShouldBeNil)
  142. })
  143. }
  144. func Test_GetNodeInfos(t *testing.T) {
  145. Convey("测试获取node信息", t, func() {
  146. cli := NewClient(&Config{
  147. URL: "http://localhost:7890",
  148. })
  149. resp1, err := cli.PackageGetCachedNodes(PackageGetCachedNodesReq{
  150. PackageID: 11,
  151. UserID: 0,
  152. })
  153. So(err, ShouldBeNil)
  154. fmt.Printf("resp1: %v\n", resp1)
  155. resp2, err := cli.PackageGetLoadedNodes(PackageGetLoadedNodesReq{
  156. PackageID: 11,
  157. UserID: 0,
  158. })
  159. So(err, ShouldBeNil)
  160. fmt.Printf("resp2: %v\n", resp2)
  161. })
  162. }