package stgsdk import ( "bytes" "fmt" "io" "testing" "github.com/google/uuid" . "github.com/smartystreets/goconvey/convey" "gitlink.org.cn/cloudream/common/pkgs/iterator" ) func Test_Object(t *testing.T) { Convey("上传,下载,删除", t, func() { cli := NewClient(&Config{ URL: "http://localhost:7890", }) fileData := make([]byte, 4096) for i := 0; i < len(fileData); i++ { fileData[i] = byte(i) } nodeAff := int64(2) upResp, err := cli.PackageUpload(PackageUploadReq{ UserID: 0, BucketID: 1, Name: uuid.NewString(), Redundancy: TypedRedundancyInfo{ Type: RedundancyRep, Info: NewRepRedundancyInfo(1), }, NodeAffinity: &nodeAff, Files: iterator.Array( &IterPackageUploadFile{ Path: "test", File: io.NopCloser(bytes.NewBuffer(fileData)), }, &IterPackageUploadFile{ Path: "test2", File: io.NopCloser(bytes.NewBuffer(fileData)), }, ), }) So(err, ShouldBeNil) // downFs, err := cli.ObjectDownload(ObjectDownloadReq{ // UserID: 0, // ObjectID: upResp.ObjectID, // }) // So(err, ShouldBeNil) // // downFileData, err := io.ReadAll(downFs) // So(err, ShouldBeNil) // So(downFileData, ShouldResemble, fileData) // downFs.Close() err = cli.PackageDelete(PackageDeleteReq{ UserID: 0, PackageID: upResp.PackageID, }) So(err, ShouldBeNil) }) } func Test_Storage(t *testing.T) { Convey("上传后调度文件", t, func() { cli := NewClient(&Config{ URL: "http://localhost:7890", }) fileData := make([]byte, 4096) for i := 0; i < len(fileData); i++ { fileData[i] = byte(i) } upResp, err := cli.PackageUpload(PackageUploadReq{ UserID: 0, BucketID: 1, Name: uuid.NewString(), Redundancy: TypedRedundancyInfo{ Type: RedundancyRep, Info: NewRepRedundancyInfo(1), }, Files: iterator.Array( &IterPackageUploadFile{ Path: "test", File: io.NopCloser(bytes.NewBuffer(fileData)), }, &IterPackageUploadFile{ Path: "test2", File: io.NopCloser(bytes.NewBuffer(fileData)), }, ), }) So(err, ShouldBeNil) err = cli.StorageLoadPackage(StorageLoadPackageReq{ UserID: 0, PackageID: upResp.PackageID, StorageID: 1, }) So(err, ShouldBeNil) err = cli.PackageDelete(PackageDeleteReq{ UserID: 0, PackageID: upResp.PackageID, }) So(err, ShouldBeNil) }) } func Test_Cache(t *testing.T) { Convey("上传后移动文件", t, func() { cli := NewClient(&Config{ URL: "http://localhost:7890", }) fileData := make([]byte, 4096) for i := 0; i < len(fileData); i++ { fileData[i] = byte(i) } upResp, err := cli.PackageUpload(PackageUploadReq{ UserID: 0, BucketID: 1, Name: uuid.NewString(), Redundancy: TypedRedundancyInfo{ Type: RedundancyRep, Info: NewRepRedundancyInfo(1), }, Files: iterator.Array( &IterPackageUploadFile{ Path: "test.txt", File: io.NopCloser(bytes.NewBuffer(fileData)), }, &IterPackageUploadFile{ Path: "test2.txt", File: io.NopCloser(bytes.NewBuffer(fileData)), }, ), }) So(err, ShouldBeNil) _, err = cli.CacheMovePackage(CacheMovePackageReq{ UserID: 0, PackageID: upResp.PackageID, NodeID: 1, }) So(err, ShouldBeNil) err = cli.PackageDelete(PackageDeleteReq{ UserID: 0, PackageID: upResp.PackageID, }) So(err, ShouldBeNil) }) } func Test_GetNodeInfos(t *testing.T) { Convey("测试获取node信息", t, func() { cli := NewClient(&Config{ URL: "http://localhost:7890", }) resp1, err := cli.PackageGetCachedNodes(PackageGetCachedNodesReq{ PackageID: 11, UserID: 0, }) So(err, ShouldBeNil) fmt.Printf("resp1: %v\n", resp1) resp2, err := cli.PackageGetLoadedNodes(PackageGetLoadedNodesReq{ PackageID: 11, UserID: 0, }) So(err, ShouldBeNil) fmt.Printf("resp2: %v\n", resp2) }) }