From 07b1a41d36388187979f45d6e8a09ae9367ae520 Mon Sep 17 00:00:00 2001 From: dostayesky Date: Fri, 28 Jun 2024 20:11:20 +0700 Subject: [PATCH 1/6] upload and delete tested --- .../object/test/object.repository_test.go | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/internal/object/test/object.repository_test.go b/internal/object/test/object.repository_test.go index f10d94a..703ff3f 100644 --- a/internal/object/test/object.repository_test.go +++ b/internal/object/test/object.repository_test.go @@ -1,6 +1,7 @@ package test import ( + "errors" "testing" "github.com/golang/mock/gomock" @@ -43,3 +44,54 @@ func (t *ObjectRepositoryTest) TestCreateObjectSuccess() { t.Equal("mock-key", key) t.Equal(repo.GetURL("mock-bucket", "mock-key"), url) } + +func (t *ObjectRepositoryTest) TestUploadSuccess() { + storeClient := storeClient.NewMockClient(t.controller) + storeClient.EXPECT().PutObject(gomock.Any(), "bucket", "object", gomock.Any(), int64(0), gomock.Any()).Return(minio.UploadInfo{Key: "object"}, nil) + + repo := object.NewRepository(t.conf, storeClient, nil) + + url, key, err := repo.Upload([]byte{}, "bucket", "object") + t.Nil(err) + t.Equal("object", key) + t.Equal(repo.GetURL("bucket", "object"), url) +} + +func (t *ObjectRepositoryTest) TestUploadError() { + storeClient := storeClient.NewMockClient(t.controller) + storeClient.EXPECT().PutObject(gomock.Any(), "bucket", "object", gomock.Any(), int64(0), gomock.Any()).Return(minio.UploadInfo{}, errors.New("error")) + + repo := object.NewRepository(t.conf, storeClient, nil) + + url, key, err := repo.Upload([]byte{}, "bucket", "object") + t.NotNil(err) + t.Empty(url) + t.Empty(key) +} + +func (t *ObjectRepositoryTest) TestDeleteSuccess() { + storeClient := storeClient.NewMockClient(t.controller) + storeClient.EXPECT().RemoveObject(gomock.Any(), "bucket", "object", gomock.Any()).Return(nil) + + repo := object.NewRepository(t.conf, storeClient, nil) + + err:= repo.Delete("bucket", "object") + t.Nil(err) +} + +func (t *ObjectRepositoryTest) TestDeleteFail() { + storeClient := storeClient.NewMockClient(t.controller) + storeClient.EXPECT().RemoveObject(gomock.Any(), "bucket", "object", gomock.Any()).Return(errors.New("error")) + + repo := object.NewRepository(t.conf, storeClient, nil) + + err:= repo.Delete("bucket", "object") + t.NotNil(err) +} + + + + + + + From 136d6448a93f7f2041accaa554a7ac1ab0f34f43 Mon Sep 17 00:00:00 2001 From: dostayesky Date: Fri, 28 Jun 2024 20:48:06 +0700 Subject: [PATCH 2/6] Get unittest done ,edit name func name --- .../object/test/object.repository_test.go | 40 ++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/internal/object/test/object.repository_test.go b/internal/object/test/object.repository_test.go index 703ff3f..ca70d59 100644 --- a/internal/object/test/object.repository_test.go +++ b/internal/object/test/object.repository_test.go @@ -2,11 +2,13 @@ package test import ( "errors" + "net/http" "testing" "github.com/golang/mock/gomock" "github.com/isd-sgcu/rpkm67-store/config" "github.com/isd-sgcu/rpkm67-store/internal/object" + httpClient "github.com/isd-sgcu/rpkm67-store/mocks/client/http" storeClient "github.com/isd-sgcu/rpkm67-store/mocks/client/store" "github.com/minio/minio-go/v7" "github.com/stretchr/testify/suite" @@ -79,7 +81,7 @@ func (t *ObjectRepositoryTest) TestDeleteSuccess() { t.Nil(err) } -func (t *ObjectRepositoryTest) TestDeleteFail() { +func (t *ObjectRepositoryTest) TestDeleteError() { storeClient := storeClient.NewMockClient(t.controller) storeClient.EXPECT().RemoveObject(gomock.Any(), "bucket", "object", gomock.Any()).Return(errors.New("error")) @@ -89,6 +91,42 @@ func (t *ObjectRepositoryTest) TestDeleteFail() { t.NotNil(err) } +func (t *ObjectRepositoryTest) TestGetSuccess() { + httpClient := httpClient.NewMockClient(t.controller) + httpClient.EXPECT().Get("https://mock-endpoint/bucket/object").Return(&http.Response{ + StatusCode: http.StatusOK},nil) + + repo := object.NewRepository(t.conf, nil, httpClient) + + url,err:= repo.Get("bucket", "object") + t.Nil(err) + t.Assert().Equal(repo.GetURL("bucket","object"),url) +} + +func (t *ObjectRepositoryTest) TestGetError() { + httpClient := httpClient.NewMockClient(t.controller) + httpClient.EXPECT().Get("https://mock-endpoint/bucket/object").Return(&http.Response{ + StatusCode: http.StatusOK},errors.New("error")) + + repo := object.NewRepository(t.conf, nil, httpClient) + + url,err:= repo.Get("bucket", "object") + t.NotNil(err) + t.Empty(url) +} + +func (t *ObjectRepositoryTest) TestGetStatusNotOK() { + httpClient := httpClient.NewMockClient(t.controller) + httpClient.EXPECT().Get("https://mock-endpoint/bucket/object").Return(&http.Response{ + StatusCode: http.StatusNotFound},nil) + + repo := object.NewRepository(t.conf, nil, httpClient) + + url,err:= repo.Get("bucket", "object") + t.Nil(err) + t.Empty(url) +} + From a94c8535664bea9528c7d1f2324cde4fa4d5fde2 Mon Sep 17 00:00:00 2001 From: dostayesky Date: Fri, 28 Jun 2024 20:51:36 +0700 Subject: [PATCH 3/6] test getURL done --- internal/object/test/object.repository_test.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/internal/object/test/object.repository_test.go b/internal/object/test/object.repository_test.go index ca70d59..78d3eb1 100644 --- a/internal/object/test/object.repository_test.go +++ b/internal/object/test/object.repository_test.go @@ -127,6 +127,11 @@ func (t *ObjectRepositoryTest) TestGetStatusNotOK() { t.Empty(url) } +func (t *ObjectRepositoryTest) TestGetURL() { + repo := object.NewRepository(t.conf, nil, nil) + url := repo.GetURL("bucket","object") + t.Assert().Equal("https://mock-endpoint/bucket/object",url) +} From 38e5a63afe1dcf71116fb22f603392a38c8ec242 Mon Sep 17 00:00:00 2001 From: dostayesky Date: Fri, 28 Jun 2024 20:54:41 +0700 Subject: [PATCH 4/6] delete un used line --- internal/object/test/object.repository_test.go | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/internal/object/test/object.repository_test.go b/internal/object/test/object.repository_test.go index 78d3eb1..e310156 100644 --- a/internal/object/test/object.repository_test.go +++ b/internal/object/test/object.repository_test.go @@ -131,10 +131,4 @@ func (t *ObjectRepositoryTest) TestGetURL() { repo := object.NewRepository(t.conf, nil, nil) url := repo.GetURL("bucket","object") t.Assert().Equal("https://mock-endpoint/bucket/object",url) -} - - - - - - +} \ No newline at end of file From fc0fd165f2d2f3b13b790e81462f647c41837d44 Mon Sep 17 00:00:00 2001 From: dostayesky Date: Sat, 29 Jun 2024 01:49:43 +0700 Subject: [PATCH 5/6] include mock-endpoint in test setup --- internal/object/test/object.repository_test.go | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/internal/object/test/object.repository_test.go b/internal/object/test/object.repository_test.go index e310156..f54c82a 100644 --- a/internal/object/test/object.repository_test.go +++ b/internal/object/test/object.repository_test.go @@ -18,6 +18,7 @@ type ObjectRepositoryTest struct { suite.Suite conf *config.Store controller *gomock.Controller + mockEndpoint string } func TestObjectRepository(t *testing.T) { @@ -29,6 +30,7 @@ func (t *ObjectRepositoryTest) SetupTest() { Endpoint: "mock-endpoint", } t.controller = gomock.NewController(t.T()) + t.mockEndpoint = "https://mock-endpoint/bucket/object" } func (t *ObjectRepositoryTest) TestCreateObjectSuccess() { @@ -93,7 +95,7 @@ func (t *ObjectRepositoryTest) TestDeleteError() { func (t *ObjectRepositoryTest) TestGetSuccess() { httpClient := httpClient.NewMockClient(t.controller) - httpClient.EXPECT().Get("https://mock-endpoint/bucket/object").Return(&http.Response{ + httpClient.EXPECT().Get(t.mockEndpoint).Return(&http.Response{ StatusCode: http.StatusOK},nil) repo := object.NewRepository(t.conf, nil, httpClient) @@ -105,7 +107,7 @@ func (t *ObjectRepositoryTest) TestGetSuccess() { func (t *ObjectRepositoryTest) TestGetError() { httpClient := httpClient.NewMockClient(t.controller) - httpClient.EXPECT().Get("https://mock-endpoint/bucket/object").Return(&http.Response{ + httpClient.EXPECT().Get(t.mockEndpoint).Return(&http.Response{ StatusCode: http.StatusOK},errors.New("error")) repo := object.NewRepository(t.conf, nil, httpClient) @@ -117,7 +119,7 @@ func (t *ObjectRepositoryTest) TestGetError() { func (t *ObjectRepositoryTest) TestGetStatusNotOK() { httpClient := httpClient.NewMockClient(t.controller) - httpClient.EXPECT().Get("https://mock-endpoint/bucket/object").Return(&http.Response{ + httpClient.EXPECT().Get(t.mockEndpoint).Return(&http.Response{ StatusCode: http.StatusNotFound},nil) repo := object.NewRepository(t.conf, nil, httpClient) @@ -130,5 +132,5 @@ func (t *ObjectRepositoryTest) TestGetStatusNotOK() { func (t *ObjectRepositoryTest) TestGetURL() { repo := object.NewRepository(t.conf, nil, nil) url := repo.GetURL("bucket","object") - t.Assert().Equal("https://mock-endpoint/bucket/object",url) + t.Assert().Equal(t.mockEndpoint,url) } \ No newline at end of file From d6fdaabf875b5f81afc36ae57120bd09c8519cc7 Mon Sep 17 00:00:00 2001 From: dostayesky Date: Sat, 29 Jun 2024 02:32:43 +0700 Subject: [PATCH 6/6] replace t.Assert().Equal => t.Equal --- internal/object/test/object.repository_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/object/test/object.repository_test.go b/internal/object/test/object.repository_test.go index f54c82a..f12f8df 100644 --- a/internal/object/test/object.repository_test.go +++ b/internal/object/test/object.repository_test.go @@ -102,7 +102,7 @@ func (t *ObjectRepositoryTest) TestGetSuccess() { url,err:= repo.Get("bucket", "object") t.Nil(err) - t.Assert().Equal(repo.GetURL("bucket","object"),url) + t.Equal(repo.GetURL("bucket","object"),url) } func (t *ObjectRepositoryTest) TestGetError() { @@ -132,5 +132,5 @@ func (t *ObjectRepositoryTest) TestGetStatusNotOK() { func (t *ObjectRepositoryTest) TestGetURL() { repo := object.NewRepository(t.conf, nil, nil) url := repo.GetURL("bucket","object") - t.Assert().Equal(t.mockEndpoint,url) + t.Equal(t.mockEndpoint,url) } \ No newline at end of file