diff options
author | feistel <6742251-feistel@users.noreply.gitlab.com> | 2021-07-25 16:24:03 +0300 |
---|---|---|
committer | feistel <6742251-feistel@users.noreply.gitlab.com> | 2021-09-09 14:06:29 +0300 |
commit | d08da349a24cb0ec322eae287fcc27ce8730bba9 (patch) | |
tree | 0b64732f5c98725a9ab60e8e7e118d455877c788 | |
parent | 6b9b03db88911c9939d5fc1d92d4b15912cc7665 (diff) |
test: update source mock to use mockgen
-rw-r--r-- | Makefile.build.mk | 1 | ||||
-rw-r--r-- | internal/auth/auth_test.go | 40 | ||||
-rw-r--r-- | internal/mocks/mocks.go | 3 | ||||
-rw-r--r-- | internal/mocks/source.go | 50 | ||||
-rw-r--r-- | internal/source/source_mock.go | 38 |
5 files changed, 85 insertions, 47 deletions
diff --git a/Makefile.build.mk b/Makefile.build.mk index 3d13f47a..c3294ffe 100644 --- a/Makefile.build.mk +++ b/Makefile.build.mk @@ -11,6 +11,7 @@ setup: .GOPATH/.ok generate-mocks: .GOPATH/.ok $Q bin/mockgen -source=internal/interface.go -destination=internal/mocks/mocks.go -package=mocks + $Q bin/mockgen -source=internal/source/source.go -destination=internal/mocks/source.go -package=mocks build: .GOPATH/.ok $Q GOBIN=$(CURDIR)/bin go install $(if $V,-v) $(VERSION_FLAGS) -tags "${GO_BUILD_TAGS}" -buildmode exe $(IMPORT_PATH) diff --git a/internal/auth/auth_test.go b/internal/auth/auth_test.go index 77ea0b7a..ff95183c 100644 --- a/internal/auth/auth_test.go +++ b/internal/auth/auth_test.go @@ -10,11 +10,12 @@ import ( "strings" "testing" + "github.com/golang/mock/gomock" "github.com/gorilla/sessions" "github.com/stretchr/testify/require" + "gitlab.com/gitlab-org/gitlab-pages/internal/mocks" "gitlab.com/gitlab-org/gitlab-pages/internal/request" - "gitlab.com/gitlab-org/gitlab-pages/internal/source" ) func createTestAuth(t *testing.T, internalServer string, publicServer string) *Auth { @@ -82,7 +83,11 @@ func TestTryAuthenticate(t *testing.T) { reqURL.Scheme = request.SchemeHTTPS r := &http.Request{URL: reqURL} - require.Equal(t, false, auth.TryAuthenticate(result, r, source.NewMockSource())) + mockCtrl := gomock.NewController(t) + defer mockCtrl.Finish() + + mockSource := mocks.NewMockSource(mockCtrl) + require.Equal(t, false, auth.TryAuthenticate(result, r, mockSource)) } func TestTryAuthenticateWithError(t *testing.T) { @@ -95,7 +100,11 @@ func TestTryAuthenticateWithError(t *testing.T) { reqURL.Scheme = request.SchemeHTTPS r := &http.Request{URL: reqURL} - require.Equal(t, true, auth.TryAuthenticate(result, r, source.NewMockSource())) + mockCtrl := gomock.NewController(t) + defer mockCtrl.Finish() + + mockSource := mocks.NewMockSource(mockCtrl) + require.Equal(t, true, auth.TryAuthenticate(result, r, mockSource)) require.Equal(t, http.StatusUnauthorized, result.Code) } @@ -114,7 +123,11 @@ func TestTryAuthenticateWithCodeButInvalidState(t *testing.T) { session.Values["state"] = "state" session.Save(r, result) - require.Equal(t, true, auth.TryAuthenticate(result, r, source.NewMockSource())) + mockCtrl := gomock.NewController(t) + defer mockCtrl.Finish() + + mockSource := mocks.NewMockSource(mockCtrl) + require.Equal(t, true, auth.TryAuthenticate(result, r, mockSource)) require.Equal(t, http.StatusUnauthorized, result.Code) } @@ -136,7 +149,11 @@ func TestTryAuthenticateRemoveTokenFromRedirect(t *testing.T) { session.Values["proxy_auth_domain"] = "https://domain.com" session.Save(r, result) - require.Equal(t, true, auth.TryAuthenticate(result, r, source.NewMockSource())) + mockCtrl := gomock.NewController(t) + defer mockCtrl.Finish() + + mockSource := mocks.NewMockSource(mockCtrl) + require.Equal(t, true, auth.TryAuthenticate(result, r, mockSource)) require.Equal(t, http.StatusFound, result.Code) redirect, err := url.Parse(result.Header().Get("Location")) @@ -152,7 +169,11 @@ func TestTryAuthenticateWithDomainAndState(t *testing.T) { require.NoError(t, err) r := &http.Request{URL: reqURL} - require.Equal(t, true, auth.TryAuthenticate(result, r, source.NewMockSource())) + mockCtrl := gomock.NewController(t) + defer mockCtrl.Finish() + + mockSource := mocks.NewMockSource(mockCtrl) + require.Equal(t, true, auth.TryAuthenticate(result, r, mockSource)) require.Equal(t, http.StatusFound, result.Code) redirect, err := url.Parse(result.Header().Get("Location")) require.NoError(t, err) @@ -208,7 +229,12 @@ func testTryAuthenticateWithCodeAndState(t *testing.T, https bool) { }) result := httptest.NewRecorder() - require.Equal(t, true, auth.TryAuthenticate(result, r, source.NewMockSource())) + + mockCtrl := gomock.NewController(t) + defer mockCtrl.Finish() + + mockSource := mocks.NewMockSource(mockCtrl) + require.Equal(t, true, auth.TryAuthenticate(result, r, mockSource)) res := result.Result() defer res.Body.Close() diff --git a/internal/mocks/mocks.go b/internal/mocks/mocks.go index e1f0f6d7..2816205d 100644 --- a/internal/mocks/mocks.go +++ b/internal/mocks/mocks.go @@ -5,10 +5,9 @@ package mocks import ( + gomock "github.com/golang/mock/gomock" http "net/http" reflect "reflect" - - gomock "github.com/golang/mock/gomock" ) // MockArtifact is a mock of Artifact interface diff --git a/internal/mocks/source.go b/internal/mocks/source.go new file mode 100644 index 00000000..c6cc6216 --- /dev/null +++ b/internal/mocks/source.go @@ -0,0 +1,50 @@ +// Code generated by MockGen. DO NOT EDIT. +// Source: internal/source/source.go + +// Package mocks is a generated GoMock package. +package mocks + +import ( + context "context" + gomock "github.com/golang/mock/gomock" + domain "gitlab.com/gitlab-org/gitlab-pages/internal/domain" + reflect "reflect" +) + +// MockSource is a mock of Source interface +type MockSource struct { + ctrl *gomock.Controller + recorder *MockSourceMockRecorder +} + +// MockSourceMockRecorder is the mock recorder for MockSource +type MockSourceMockRecorder struct { + mock *MockSource +} + +// NewMockSource creates a new mock instance +func NewMockSource(ctrl *gomock.Controller) *MockSource { + mock := &MockSource{ctrl: ctrl} + mock.recorder = &MockSourceMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use +func (m *MockSource) EXPECT() *MockSourceMockRecorder { + return m.recorder +} + +// GetDomain mocks base method +func (m *MockSource) GetDomain(arg0 context.Context, arg1 string) (*domain.Domain, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetDomain", arg0, arg1) + ret0, _ := ret[0].(*domain.Domain) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetDomain indicates an expected call of GetDomain +func (mr *MockSourceMockRecorder) GetDomain(arg0, arg1 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDomain", reflect.TypeOf((*MockSource)(nil).GetDomain), arg0, arg1) +} diff --git a/internal/source/source_mock.go b/internal/source/source_mock.go deleted file mode 100644 index 67e80833..00000000 --- a/internal/source/source_mock.go +++ /dev/null @@ -1,38 +0,0 @@ -package source - -import ( - "context" - - "github.com/stretchr/testify/mock" - - "gitlab.com/gitlab-org/gitlab-pages/internal/domain" -) - -// MockSource can be used for testing -type MockSource struct { - mock.Mock -} - -// GetDomain is a mocked function -func (m *MockSource) GetDomain(ctx context.Context, name string) (*domain.Domain, error) { - args := m.Called(name) - err := args.Error(1) - - d, ok := args.Get(0).(*domain.Domain) - if !ok { - return nil, err - } - - return d, err -} - -func (m *MockSource) IsReady() bool { - args := m.Called() - - return args.Get(0).(bool) -} - -// NewMockSource returns a new Source mock for testing -func NewMockSource() *MockSource { - return &MockSource{} -} |