From 9056ef9171fe0f8186c7f9ad5a39a40e9751e1d0 Mon Sep 17 00:00:00 2001 From: HFO4 <912394456@qq.com> Date: Sat, 20 Nov 2021 16:59:29 +0800 Subject: [PATCH] Test: new changes in 3.4.0 --- assets | 2 +- pkg/filesystem/driver/local/handler_test.go | 2 +- pkg/request/request_test.go | 18 +++++++-- pkg/serializer/error_test.go | 42 +++++++++++++++++++++ pkg/serializer/response_test.go | 33 ++++++++++++++++ pkg/serializer/slave_test.go | 20 ++++++++++ 6 files changed, 112 insertions(+), 5 deletions(-) create mode 100644 pkg/serializer/error_test.go create mode 100644 pkg/serializer/response_test.go create mode 100644 pkg/serializer/slave_test.go diff --git a/assets b/assets index efe2981..18bb1b0 160000 --- a/assets +++ b/assets @@ -1 +1 @@ -Subproject commit efe29817615eed351f7432034d533e7e02b52197 +Subproject commit 18bb1b01b24c25ce070a2027fe362985d4866932 diff --git a/pkg/filesystem/driver/local/handler_test.go b/pkg/filesystem/driver/local/handler_test.go index 6d6f98d..dac4d54 100644 --- a/pkg/filesystem/driver/local/handler_test.go +++ b/pkg/filesystem/driver/local/handler_test.go @@ -190,7 +190,7 @@ func TestHandler_Source(t *testing.T) { // 设定了CDN,解析失败 { - handler.Policy.BaseURL = string(0x7f) + handler.Policy.BaseURL = string([]byte{0x7f}) file := model.File{ Model: gorm.Model{ ID: 1, diff --git a/pkg/request/request_test.go b/pkg/request/request_test.go index 1dac105..7b1a48d 100644 --- a/pkg/request/request_test.go +++ b/pkg/request/request_test.go @@ -3,6 +3,7 @@ package request import ( "context" "errors" + "github.com/cloudreve/Cloudreve/v3/pkg/cache" "io" "io/ioutil" "net/http" @@ -54,16 +55,19 @@ func TestWithContext(t *testing.T) { func TestHTTPClient_Request(t *testing.T) { asserts := assert.New(t) - client := HTTPClient{} + client := NewClient(WithSlaveMeta("test")) // 正常 { resp := client.Request( - "GET", - "http://cloudreveisnotexist.com", + "POST", + "/test", strings.NewReader(""), + WithContentLength(0), + WithEndpoint("http://cloudreveisnotexist.com"), WithTimeout(time.Duration(1)*time.Microsecond), WithCredential(auth.HMACAuth{SecretKey: []byte("123")}, 10), + WithoutHeader([]string{"origin", "origin"}), ) asserts.Error(resp.Err) asserts.Nil(resp.Response) @@ -224,3 +228,11 @@ func TestNopRSCloser_SetFirstFakeChunk(t *testing.T) { rsc.SetContentLength(20) asserts.EqualValues(20, rsc.status.Size) } + +func TestBlackHole(t *testing.T) { + a := assert.New(t) + cache.Set("setting_reset_after_upload_failed", "true", 0) + a.NotPanics(func() { + BlackHole(strings.NewReader("TestBlackHole")) + }) +} diff --git a/pkg/serializer/error_test.go b/pkg/serializer/error_test.go new file mode 100644 index 0000000..d02fd5d --- /dev/null +++ b/pkg/serializer/error_test.go @@ -0,0 +1,42 @@ +package serializer + +import ( + "errors" + "github.com/stretchr/testify/assert" + "testing" +) + +func TestNewError(t *testing.T) { + a := assert.New(t) + err := NewError(400, "Bad Request", errors.New("error")) + a.Error(err) + a.EqualValues(400, err.Code) + + err.WithError(errors.New("error2")) + a.Equal("error2", err.RawError.Error()) + a.Equal("Bad Request", err.Error()) + + resp := &Response{ + Code: 400, + Msg: "Bad Request", + Error: "error", + } + err = NewErrorFromResponse(resp) + a.Error(err) +} + +func TestDBErr(t *testing.T) { + a := assert.New(t) + resp := DBErr("", nil) + a.NotEmpty(resp.Msg) + + resp = ParamErr("", nil) + a.NotEmpty(resp.Msg) +} + +func TestErr(t *testing.T) { + a := assert.New(t) + err := NewError(400, "Bad Request", errors.New("error")) + resp := Err(400, "", err) + a.Equal("Bad Request", resp.Msg) +} diff --git a/pkg/serializer/response_test.go b/pkg/serializer/response_test.go new file mode 100644 index 0000000..70c8899 --- /dev/null +++ b/pkg/serializer/response_test.go @@ -0,0 +1,33 @@ +package serializer + +import ( + "encoding/json" + "github.com/stretchr/testify/assert" + "testing" +) + +func TestNewResponseWithGobData(t *testing.T) { + a := assert.New(t) + type args struct { + data interface{} + } + + res := NewResponseWithGobData(args{}) + a.Equal(CodeInternalSetting, res.Code) + + res = NewResponseWithGobData("TestNewResponseWithGobData") + a.Equal(0, res.Code) + a.NotEmpty(res.Data) +} + +func TestResponse_GobDecode(t *testing.T) { + a := assert.New(t) + res := NewResponseWithGobData("TestResponse_GobDecode") + jsonContent, err := json.Marshal(res) + a.NoError(err) + resDecoded := &Response{} + a.NoError(json.Unmarshal(jsonContent, resDecoded)) + var target string + resDecoded.GobDecode(&target) + a.Equal("TestResponse_GobDecode", target) +} diff --git a/pkg/serializer/slave_test.go b/pkg/serializer/slave_test.go new file mode 100644 index 0000000..6471542 --- /dev/null +++ b/pkg/serializer/slave_test.go @@ -0,0 +1,20 @@ +package serializer + +import ( + model "github.com/cloudreve/Cloudreve/v3/models" + "github.com/stretchr/testify/assert" + "testing" +) + +func TestSlaveTransferReq_Hash(t *testing.T) { + a := assert.New(t) + s1 := &SlaveTransferReq{ + Src: "1", + Policy: &model.Policy{}, + } + s2 := &SlaveTransferReq{ + Src: "2", + Policy: &model.Policy{}, + } + a.NotEqual(s1.Hash("1"), s2.Hash("1")) +}