From 960c8864969ee3ba8a20afe69753fff80c413469 Mon Sep 17 00:00:00 2001 From: HFO4 <912394456@qq.com> Date: Tue, 28 Apr 2020 10:16:04 +0800 Subject: [PATCH] Test: slave side list file --- pkg/filesystem/driver/remote/handler_test.go | 83 ++++++++++++++++++++ 1 file changed, 83 insertions(+) diff --git a/pkg/filesystem/driver/remote/handler_test.go b/pkg/filesystem/driver/remote/handler_test.go index 6315674..bf2790b 100644 --- a/pkg/filesystem/driver/remote/handler_test.go +++ b/pkg/filesystem/driver/remote/handler_test.go @@ -223,6 +223,89 @@ func TestHandler_Delete(t *testing.T) { } } +func TestDriver_List(t *testing.T) { + asserts := assert.New(t) + handler := Driver{ + Policy: &model.Policy{ + SecretKey: "test", + Server: "http://test.com", + }, + AuthInstance: auth.HMACAuth{}, + } + ctx := context.Background() + cache.Set("setting_slave_api_timeout", "60", 0) + + // 成功 + { + clientMock := ClientMock{} + clientMock.On( + "Request", + "POST", + "http://test.com/api/v3/slave/list", + testMock.Anything, + testMock.Anything, + ).Return(&request.Response{ + Err: nil, + Response: &http.Response{ + StatusCode: 200, + Body: ioutil.NopCloser(strings.NewReader(`{"code":0,"data":"[{}]"}`)), + }, + }) + handler.Client = clientMock + res, err := handler.List(ctx, "/", true) + clientMock.AssertExpectations(t) + asserts.NoError(err) + asserts.Len(res, 1) + + } + + // 响应解析失败 + { + clientMock := ClientMock{} + clientMock.On( + "Request", + "POST", + "http://test.com/api/v3/slave/list", + testMock.Anything, + testMock.Anything, + ).Return(&request.Response{ + Err: nil, + Response: &http.Response{ + StatusCode: 200, + Body: ioutil.NopCloser(strings.NewReader(`{"code":0,"data":"233"}`)), + }, + }) + handler.Client = clientMock + res, err := handler.List(ctx, "/", true) + clientMock.AssertExpectations(t) + asserts.Error(err) + asserts.Len(res, 0) + } + + // 从机返回错误 + { + clientMock := ClientMock{} + clientMock.On( + "Request", + "POST", + "http://test.com/api/v3/slave/list", + testMock.Anything, + testMock.Anything, + ).Return(&request.Response{ + Err: nil, + Response: &http.Response{ + StatusCode: 200, + Body: ioutil.NopCloser(strings.NewReader(`{"code":203}`)), + }, + }) + handler.Client = clientMock + res, err := handler.List(ctx, "/", true) + clientMock.AssertExpectations(t) + asserts.Error(err) + asserts.Len(res, 0) + } +} + func TestHandler_Get(t *testing.T) { asserts := assert.New(t) handler := Driver{ -- GitLab