From b34f77e14bea406214007176be4c6d5f0cc5af92 Mon Sep 17 00:00:00 2001 From: Ciaran Roche Date: Wed, 3 Dec 2025 12:15:05 +0000 Subject: [PATCH 1/3] feat: add gomock/mockgen infrastructure for service mocks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add go.uber.org/mock v0.6.0 dependency - Add go:generate directives to service interfaces: - pkg/services/cluster.go - pkg/services/node_pool.go - pkg/services/adapter_status.go - pkg/services/generic.go - Generate mock implementations for all service interfaces - Add 'make generate-mocks' target to Makefile - Update pkg/handlers/cluster_nodepools_test.go to use generated gomock mocks with EXPECT() pattern instead of hand-written mocks Closes: HYPERFLEET-290 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- Makefile | 6 + go.mod | 3 + go.sum | 6 + pkg/handlers/cluster_nodepools_test.go | 194 +++++++------------------ pkg/services/adapter_status.go | 2 + pkg/services/adapter_status_mock.go | 178 +++++++++++++++++++++++ pkg/services/cluster.go | 2 + pkg/services/cluster_mock.go | 175 ++++++++++++++++++++++ pkg/services/generic.go | 2 + pkg/services/generic_mock.go | 58 ++++++++ pkg/services/node_pool.go | 2 + pkg/services/node_pool_mock.go | 175 ++++++++++++++++++++++ 12 files changed, 660 insertions(+), 143 deletions(-) create mode 100644 pkg/services/adapter_status_mock.go create mode 100644 pkg/services/cluster_mock.go create mode 100644 pkg/services/generic_mock.go create mode 100644 pkg/services/node_pool_mock.go diff --git a/Makefile b/Makefile index 40c22c9..5395d5f 100755 --- a/Makefile +++ b/Makefile @@ -50,6 +50,7 @@ help: @echo "make test run unit tests" @echo "make test-integration run integration tests" @echo "make generate generate openapi modules" + @echo "make generate-mocks generate mock implementations for services" @echo "make clean delete temporary generated files" @echo "$(fake)" .PHONY: help @@ -219,6 +220,11 @@ generate: $(container_tool) cp $(OPENAPI_IMAGE_ID):/local/data/generated/openapi/openapi.go ./data/generated/openapi/openapi.go .PHONY: generate +# Generate mock implementations for service interfaces +generate-mocks: + ${GO} generate ./pkg/services/... +.PHONY: generate-mocks + # Regenerate openapi client and models using vendor (avoids downloading dependencies) generate-vendor: rm -rf pkg/api/openapi diff --git a/go.mod b/go.mod index 63b5136..5ff3800 100755 --- a/go.mod +++ b/go.mod @@ -112,12 +112,15 @@ require ( go.opentelemetry.io/otel/metric v1.38.0 // indirect go.opentelemetry.io/otel/sdk v1.38.0 // indirect go.opentelemetry.io/otel/trace v1.38.0 // indirect + go.uber.org/mock v0.6.0 // indirect golang.org/x/crypto v0.41.0 // indirect + golang.org/x/mod v0.27.0 // indirect golang.org/x/net v0.43.0 // indirect golang.org/x/sync v0.17.0 // indirect golang.org/x/sys v0.36.0 // indirect golang.org/x/text v0.29.0 // indirect golang.org/x/time v0.3.0 // indirect + golang.org/x/tools v0.36.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20251014184007-4626949a642f // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20251014184007-4626949a642f // indirect google.golang.org/grpc v1.75.1 // indirect diff --git a/go.sum b/go.sum index dc5689a..6276544 100755 --- a/go.sum +++ b/go.sum @@ -632,6 +632,8 @@ go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= +go.uber.org/mock v0.6.0 h1:hyF9dfmbgIX5EfOdasqLsWD6xqpNZlXblLB/Dbnwv3Y= +go.uber.org/mock v0.6.0/go.mod h1:KiVJ4BqZJaMj4svdfmHM0AUx4NJYO8ZNpPnZn1Z+BBU= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= @@ -692,6 +694,8 @@ golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzB golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= +golang.org/x/mod v0.27.0 h1:kb+q2PyFnEADO2IEF935ehFUXlWiNjJWtRNgBLSfbxQ= +golang.org/x/mod v0.27.0/go.mod h1:rWI627Fq0DEoudcK+MBkNkCe0EetEaDSwJJkCcjpazc= golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -894,6 +898,8 @@ golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= +golang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg= +golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s= golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= diff --git a/pkg/handlers/cluster_nodepools_test.go b/pkg/handlers/cluster_nodepools_test.go index 84a4c75..170fa36 100644 --- a/pkg/handlers/cluster_nodepools_test.go +++ b/pkg/handlers/cluster_nodepools_test.go @@ -1,7 +1,6 @@ package handlers import ( - "context" "encoding/json" "net/http" "net/http/httptest" @@ -10,6 +9,7 @@ import ( "github.com/gorilla/mux" . "github.com/onsi/gomega" + "go.uber.org/mock/gomock" "github.com/openshift-hyperfleet/hyperfleet-api/pkg/api" "github.com/openshift-hyperfleet/hyperfleet-api/pkg/api/openapi" @@ -17,117 +17,6 @@ import ( "github.com/openshift-hyperfleet/hyperfleet-api/pkg/services" ) -// Mock ClusterService -type mockClusterService struct { - getFunc func(ctx context.Context, id string) (*api.Cluster, *errors.ServiceError) -} - -func (m *mockClusterService) Get(ctx context.Context, id string) (*api.Cluster, *errors.ServiceError) { - if m.getFunc != nil { - return m.getFunc(ctx, id) - } - return nil, nil -} - -func (m *mockClusterService) Create(ctx context.Context, cluster *api.Cluster) (*api.Cluster, *errors.ServiceError) { - return nil, nil -} - -func (m *mockClusterService) Replace(ctx context.Context, cluster *api.Cluster) (*api.Cluster, *errors.ServiceError) { - return nil, nil -} - -func (m *mockClusterService) Delete(ctx context.Context, id string) *errors.ServiceError { - return nil -} - -func (m *mockClusterService) All(ctx context.Context) (api.ClusterList, *errors.ServiceError) { - return nil, nil -} - -func (m *mockClusterService) FindByIDs(ctx context.Context, ids []string) (api.ClusterList, *errors.ServiceError) { - return nil, nil -} - -func (m *mockClusterService) UpdateClusterStatusFromAdapters(ctx context.Context, clusterID string) (*api.Cluster, *errors.ServiceError) { - return nil, nil -} - -func (m *mockClusterService) OnUpsert(ctx context.Context, id string) error { - return nil -} - -func (m *mockClusterService) OnDelete(ctx context.Context, id string) error { - return nil -} - -// Mock NodePoolService -type mockNodePoolService struct { - getFunc func(ctx context.Context, id string) (*api.NodePool, *errors.ServiceError) -} - -func (m *mockNodePoolService) Get(ctx context.Context, id string) (*api.NodePool, *errors.ServiceError) { - if m.getFunc != nil { - return m.getFunc(ctx, id) - } - return nil, nil -} - -func (m *mockNodePoolService) Create(ctx context.Context, nodePool *api.NodePool) (*api.NodePool, *errors.ServiceError) { - return nil, nil -} - -func (m *mockNodePoolService) Replace(ctx context.Context, nodePool *api.NodePool) (*api.NodePool, *errors.ServiceError) { - return nil, nil -} - -func (m *mockNodePoolService) Delete(ctx context.Context, id string) *errors.ServiceError { - return nil -} - -func (m *mockNodePoolService) All(ctx context.Context) (api.NodePoolList, *errors.ServiceError) { - return nil, nil -} - -func (m *mockNodePoolService) FindByIDs(ctx context.Context, ids []string) (api.NodePoolList, *errors.ServiceError) { - return nil, nil -} - -func (m *mockNodePoolService) UpdateNodePoolStatusFromAdapters(ctx context.Context, nodePoolID string) (*api.NodePool, *errors.ServiceError) { - return nil, nil -} - -func (m *mockNodePoolService) OnUpsert(ctx context.Context, id string) error { - return nil -} - -func (m *mockNodePoolService) OnDelete(ctx context.Context, id string) error { - return nil -} - -// Mock GenericService -type mockGenericService struct{} - -func (m *mockGenericService) Get(ctx context.Context, username string, id string, resource interface{}) *errors.ServiceError { - return nil -} - -func (m *mockGenericService) Create(ctx context.Context, username string, resource interface{}) *errors.ServiceError { - return nil -} - -func (m *mockGenericService) List(ctx context.Context, username string, listArgs *services.ListArguments, resources interface{}) (*api.PagingMeta, *errors.ServiceError) { - return nil, nil -} - -func (m *mockGenericService) Update(ctx context.Context, username string, resource interface{}) *errors.ServiceError { - return nil -} - -func (m *mockGenericService) Delete(ctx context.Context, username string, resource interface{}) *errors.ServiceError { - return nil -} - func TestClusterNodePoolsHandler_Get(t *testing.T) { RegisterTestingT(t) @@ -139,8 +28,7 @@ func TestClusterNodePoolsHandler_Get(t *testing.T) { name string clusterID string nodePoolID string - mockClusterFunc func(ctx context.Context, id string) (*api.Cluster, *errors.ServiceError) - mockNodePoolFunc func(ctx context.Context, id string) (*api.NodePool, *errors.ServiceError) + setupMocks func(ctrl *gomock.Controller) (*services.MockClusterService, *services.MockNodePoolService, *services.MockGenericService) expectedStatusCode int expectedError bool }{ @@ -148,18 +36,21 @@ func TestClusterNodePoolsHandler_Get(t *testing.T) { name: "Success - Get nodepool by cluster and nodepool ID", clusterID: clusterID, nodePoolID: nodePoolID, - mockClusterFunc: func(ctx context.Context, id string) (*api.Cluster, *errors.ServiceError) { - return &api.Cluster{ + setupMocks: func(ctrl *gomock.Controller) (*services.MockClusterService, *services.MockNodePoolService, *services.MockGenericService) { + mockClusterSvc := services.NewMockClusterService(ctrl) + mockNodePoolSvc := services.NewMockNodePoolService(ctrl) + mockGenericSvc := services.NewMockGenericService(ctrl) + + mockClusterSvc.EXPECT().Get(gomock.Any(), clusterID).Return(&api.Cluster{ Meta: api.Meta{ ID: clusterID, CreatedTime: now, UpdatedTime: now, }, Name: "test-cluster", - }, nil - }, - mockNodePoolFunc: func(ctx context.Context, id string) (*api.NodePool, *errors.ServiceError) { - return &api.NodePool{ + }, nil) + + mockNodePoolSvc.EXPECT().Get(gomock.Any(), nodePoolID).Return(&api.NodePool{ Meta: api.Meta{ ID: nodePoolID, CreatedTime: now, @@ -168,7 +59,9 @@ func TestClusterNodePoolsHandler_Get(t *testing.T) { Kind: "NodePool", Name: "test-nodepool", OwnerID: clusterID, - }, nil + }, nil) + + return mockClusterSvc, mockNodePoolSvc, mockGenericSvc }, expectedStatusCode: http.StatusOK, expectedError: false, @@ -177,11 +70,14 @@ func TestClusterNodePoolsHandler_Get(t *testing.T) { name: "Error - Cluster not found", clusterID: "non-existent", nodePoolID: nodePoolID, - mockClusterFunc: func(ctx context.Context, id string) (*api.Cluster, *errors.ServiceError) { - return nil, errors.NotFound("Cluster not found") - }, - mockNodePoolFunc: func(ctx context.Context, id string) (*api.NodePool, *errors.ServiceError) { - return nil, nil + setupMocks: func(ctrl *gomock.Controller) (*services.MockClusterService, *services.MockNodePoolService, *services.MockGenericService) { + mockClusterSvc := services.NewMockClusterService(ctrl) + mockNodePoolSvc := services.NewMockNodePoolService(ctrl) + mockGenericSvc := services.NewMockGenericService(ctrl) + + mockClusterSvc.EXPECT().Get(gomock.Any(), "non-existent").Return(nil, errors.NotFound("Cluster not found")) + + return mockClusterSvc, mockNodePoolSvc, mockGenericSvc }, expectedStatusCode: http.StatusNotFound, expectedError: true, @@ -190,18 +86,23 @@ func TestClusterNodePoolsHandler_Get(t *testing.T) { name: "Error - NodePool not found", clusterID: clusterID, nodePoolID: "non-existent", - mockClusterFunc: func(ctx context.Context, id string) (*api.Cluster, *errors.ServiceError) { - return &api.Cluster{ + setupMocks: func(ctrl *gomock.Controller) (*services.MockClusterService, *services.MockNodePoolService, *services.MockGenericService) { + mockClusterSvc := services.NewMockClusterService(ctrl) + mockNodePoolSvc := services.NewMockNodePoolService(ctrl) + mockGenericSvc := services.NewMockGenericService(ctrl) + + mockClusterSvc.EXPECT().Get(gomock.Any(), clusterID).Return(&api.Cluster{ Meta: api.Meta{ ID: clusterID, CreatedTime: now, UpdatedTime: now, }, Name: "test-cluster", - }, nil - }, - mockNodePoolFunc: func(ctx context.Context, id string) (*api.NodePool, *errors.ServiceError) { - return nil, errors.NotFound("NodePool not found") + }, nil) + + mockNodePoolSvc.EXPECT().Get(gomock.Any(), "non-existent").Return(nil, errors.NotFound("NodePool not found")) + + return mockClusterSvc, mockNodePoolSvc, mockGenericSvc }, expectedStatusCode: http.StatusNotFound, expectedError: true, @@ -210,18 +111,21 @@ func TestClusterNodePoolsHandler_Get(t *testing.T) { name: "Error - NodePool belongs to different cluster", clusterID: clusterID, nodePoolID: nodePoolID, - mockClusterFunc: func(ctx context.Context, id string) (*api.Cluster, *errors.ServiceError) { - return &api.Cluster{ + setupMocks: func(ctrl *gomock.Controller) (*services.MockClusterService, *services.MockNodePoolService, *services.MockGenericService) { + mockClusterSvc := services.NewMockClusterService(ctrl) + mockNodePoolSvc := services.NewMockNodePoolService(ctrl) + mockGenericSvc := services.NewMockGenericService(ctrl) + + mockClusterSvc.EXPECT().Get(gomock.Any(), clusterID).Return(&api.Cluster{ Meta: api.Meta{ ID: clusterID, CreatedTime: now, UpdatedTime: now, }, Name: "test-cluster", - }, nil - }, - mockNodePoolFunc: func(ctx context.Context, id string) (*api.NodePool, *errors.ServiceError) { - return &api.NodePool{ + }, nil) + + mockNodePoolSvc.EXPECT().Get(gomock.Any(), nodePoolID).Return(&api.NodePool{ Meta: api.Meta{ ID: nodePoolID, CreatedTime: now, @@ -230,7 +134,9 @@ func TestClusterNodePoolsHandler_Get(t *testing.T) { Kind: "NodePool", Name: "test-nodepool", OwnerID: "different-cluster-789", // Different cluster - }, nil + }, nil) + + return mockClusterSvc, mockNodePoolSvc, mockGenericSvc }, expectedStatusCode: http.StatusNotFound, expectedError: true, @@ -241,10 +147,12 @@ func TestClusterNodePoolsHandler_Get(t *testing.T) { t.Run(tt.name, func(t *testing.T) { RegisterTestingT(t) - // Create mock services - mockClusterSvc := &mockClusterService{getFunc: tt.mockClusterFunc} - mockNodePoolSvc := &mockNodePoolService{getFunc: tt.mockNodePoolFunc} - mockGenericSvc := &mockGenericService{} + // Create gomock controller + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + // Setup mocks + mockClusterSvc, mockNodePoolSvc, mockGenericSvc := tt.setupMocks(ctrl) // Create handler handler := NewClusterNodePoolsHandler(mockClusterSvc, mockNodePoolSvc, mockGenericSvc) diff --git a/pkg/services/adapter_status.go b/pkg/services/adapter_status.go index 7b56446..98d1174 100644 --- a/pkg/services/adapter_status.go +++ b/pkg/services/adapter_status.go @@ -8,6 +8,8 @@ import ( "github.com/openshift-hyperfleet/hyperfleet-api/pkg/errors" ) +//go:generate mockgen -source=adapter_status.go -package=services -destination=adapter_status_mock.go + type AdapterStatusService interface { Get(ctx context.Context, id string) (*api.AdapterStatus, *errors.ServiceError) Create(ctx context.Context, adapterStatus *api.AdapterStatus) (*api.AdapterStatus, *errors.ServiceError) diff --git a/pkg/services/adapter_status_mock.go b/pkg/services/adapter_status_mock.go new file mode 100644 index 0000000..c818972 --- /dev/null +++ b/pkg/services/adapter_status_mock.go @@ -0,0 +1,178 @@ +// Code generated by MockGen. DO NOT EDIT. +// Source: adapter_status.go +// +// Generated by this command: +// +// mockgen -source=adapter_status.go -package=services -destination=adapter_status_mock.go +// + +// Package services is a generated GoMock package. +package services + +import ( + context "context" + reflect "reflect" + + api "github.com/openshift-hyperfleet/hyperfleet-api/pkg/api" + errors "github.com/openshift-hyperfleet/hyperfleet-api/pkg/errors" + gomock "go.uber.org/mock/gomock" +) + +// MockAdapterStatusService is a mock of AdapterStatusService interface. +type MockAdapterStatusService struct { + ctrl *gomock.Controller + recorder *MockAdapterStatusServiceMockRecorder + isgomock struct{} +} + +// MockAdapterStatusServiceMockRecorder is the mock recorder for MockAdapterStatusService. +type MockAdapterStatusServiceMockRecorder struct { + mock *MockAdapterStatusService +} + +// NewMockAdapterStatusService creates a new mock instance. +func NewMockAdapterStatusService(ctrl *gomock.Controller) *MockAdapterStatusService { + mock := &MockAdapterStatusService{ctrl: ctrl} + mock.recorder = &MockAdapterStatusServiceMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockAdapterStatusService) EXPECT() *MockAdapterStatusServiceMockRecorder { + return m.recorder +} + +// All mocks base method. +func (m *MockAdapterStatusService) All(ctx context.Context) (api.AdapterStatusList, *errors.ServiceError) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "All", ctx) + ret0, _ := ret[0].(api.AdapterStatusList) + ret1, _ := ret[1].(*errors.ServiceError) + return ret0, ret1 +} + +// All indicates an expected call of All. +func (mr *MockAdapterStatusServiceMockRecorder) All(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "All", reflect.TypeOf((*MockAdapterStatusService)(nil).All), ctx) +} + +// Create mocks base method. +func (m *MockAdapterStatusService) Create(ctx context.Context, adapterStatus *api.AdapterStatus) (*api.AdapterStatus, *errors.ServiceError) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Create", ctx, adapterStatus) + ret0, _ := ret[0].(*api.AdapterStatus) + ret1, _ := ret[1].(*errors.ServiceError) + return ret0, ret1 +} + +// Create indicates an expected call of Create. +func (mr *MockAdapterStatusServiceMockRecorder) Create(ctx, adapterStatus any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Create", reflect.TypeOf((*MockAdapterStatusService)(nil).Create), ctx, adapterStatus) +} + +// Delete mocks base method. +func (m *MockAdapterStatusService) Delete(ctx context.Context, id string) *errors.ServiceError { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Delete", ctx, id) + ret0, _ := ret[0].(*errors.ServiceError) + return ret0 +} + +// Delete indicates an expected call of Delete. +func (mr *MockAdapterStatusServiceMockRecorder) Delete(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Delete", reflect.TypeOf((*MockAdapterStatusService)(nil).Delete), ctx, id) +} + +// FindByResource mocks base method. +func (m *MockAdapterStatusService) FindByResource(ctx context.Context, resourceType, resourceID string) (api.AdapterStatusList, *errors.ServiceError) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "FindByResource", ctx, resourceType, resourceID) + ret0, _ := ret[0].(api.AdapterStatusList) + ret1, _ := ret[1].(*errors.ServiceError) + return ret0, ret1 +} + +// FindByResource indicates an expected call of FindByResource. +func (mr *MockAdapterStatusServiceMockRecorder) FindByResource(ctx, resourceType, resourceID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FindByResource", reflect.TypeOf((*MockAdapterStatusService)(nil).FindByResource), ctx, resourceType, resourceID) +} + +// FindByResourceAndAdapter mocks base method. +func (m *MockAdapterStatusService) FindByResourceAndAdapter(ctx context.Context, resourceType, resourceID, adapter string) (*api.AdapterStatus, *errors.ServiceError) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "FindByResourceAndAdapter", ctx, resourceType, resourceID, adapter) + ret0, _ := ret[0].(*api.AdapterStatus) + ret1, _ := ret[1].(*errors.ServiceError) + return ret0, ret1 +} + +// FindByResourceAndAdapter indicates an expected call of FindByResourceAndAdapter. +func (mr *MockAdapterStatusServiceMockRecorder) FindByResourceAndAdapter(ctx, resourceType, resourceID, adapter any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FindByResourceAndAdapter", reflect.TypeOf((*MockAdapterStatusService)(nil).FindByResourceAndAdapter), ctx, resourceType, resourceID, adapter) +} + +// FindByResourcePaginated mocks base method. +func (m *MockAdapterStatusService) FindByResourcePaginated(ctx context.Context, resourceType, resourceID string, listArgs *ListArguments) (api.AdapterStatusList, int64, *errors.ServiceError) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "FindByResourcePaginated", ctx, resourceType, resourceID, listArgs) + ret0, _ := ret[0].(api.AdapterStatusList) + ret1, _ := ret[1].(int64) + ret2, _ := ret[2].(*errors.ServiceError) + return ret0, ret1, ret2 +} + +// FindByResourcePaginated indicates an expected call of FindByResourcePaginated. +func (mr *MockAdapterStatusServiceMockRecorder) FindByResourcePaginated(ctx, resourceType, resourceID, listArgs any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FindByResourcePaginated", reflect.TypeOf((*MockAdapterStatusService)(nil).FindByResourcePaginated), ctx, resourceType, resourceID, listArgs) +} + +// Get mocks base method. +func (m *MockAdapterStatusService) Get(ctx context.Context, id string) (*api.AdapterStatus, *errors.ServiceError) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Get", ctx, id) + ret0, _ := ret[0].(*api.AdapterStatus) + ret1, _ := ret[1].(*errors.ServiceError) + return ret0, ret1 +} + +// Get indicates an expected call of Get. +func (mr *MockAdapterStatusServiceMockRecorder) Get(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Get", reflect.TypeOf((*MockAdapterStatusService)(nil).Get), ctx, id) +} + +// Replace mocks base method. +func (m *MockAdapterStatusService) Replace(ctx context.Context, adapterStatus *api.AdapterStatus) (*api.AdapterStatus, *errors.ServiceError) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Replace", ctx, adapterStatus) + ret0, _ := ret[0].(*api.AdapterStatus) + ret1, _ := ret[1].(*errors.ServiceError) + return ret0, ret1 +} + +// Replace indicates an expected call of Replace. +func (mr *MockAdapterStatusServiceMockRecorder) Replace(ctx, adapterStatus any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Replace", reflect.TypeOf((*MockAdapterStatusService)(nil).Replace), ctx, adapterStatus) +} + +// Upsert mocks base method. +func (m *MockAdapterStatusService) Upsert(ctx context.Context, adapterStatus *api.AdapterStatus) (*api.AdapterStatus, *errors.ServiceError) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Upsert", ctx, adapterStatus) + ret0, _ := ret[0].(*api.AdapterStatus) + ret1, _ := ret[1].(*errors.ServiceError) + return ret0, ret1 +} + +// Upsert indicates an expected call of Upsert. +func (mr *MockAdapterStatusServiceMockRecorder) Upsert(ctx, adapterStatus any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Upsert", reflect.TypeOf((*MockAdapterStatusService)(nil).Upsert), ctx, adapterStatus) +} diff --git a/pkg/services/cluster.go b/pkg/services/cluster.go index 4a8371f..ed943f1 100644 --- a/pkg/services/cluster.go +++ b/pkg/services/cluster.go @@ -12,6 +12,8 @@ import ( "github.com/openshift-hyperfleet/hyperfleet-api/pkg/logger" ) +//go:generate mockgen -source=cluster.go -package=services -destination=cluster_mock.go + type ClusterService interface { Get(ctx context.Context, id string) (*api.Cluster, *errors.ServiceError) Create(ctx context.Context, cluster *api.Cluster) (*api.Cluster, *errors.ServiceError) diff --git a/pkg/services/cluster_mock.go b/pkg/services/cluster_mock.go new file mode 100644 index 0000000..4c70f63 --- /dev/null +++ b/pkg/services/cluster_mock.go @@ -0,0 +1,175 @@ +// Code generated by MockGen. DO NOT EDIT. +// Source: cluster.go +// +// Generated by this command: +// +// mockgen -source=cluster.go -package=services -destination=cluster_mock.go +// + +// Package services is a generated GoMock package. +package services + +import ( + context "context" + reflect "reflect" + + api "github.com/openshift-hyperfleet/hyperfleet-api/pkg/api" + errors "github.com/openshift-hyperfleet/hyperfleet-api/pkg/errors" + gomock "go.uber.org/mock/gomock" +) + +// MockClusterService is a mock of ClusterService interface. +type MockClusterService struct { + ctrl *gomock.Controller + recorder *MockClusterServiceMockRecorder + isgomock struct{} +} + +// MockClusterServiceMockRecorder is the mock recorder for MockClusterService. +type MockClusterServiceMockRecorder struct { + mock *MockClusterService +} + +// NewMockClusterService creates a new mock instance. +func NewMockClusterService(ctrl *gomock.Controller) *MockClusterService { + mock := &MockClusterService{ctrl: ctrl} + mock.recorder = &MockClusterServiceMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockClusterService) EXPECT() *MockClusterServiceMockRecorder { + return m.recorder +} + +// All mocks base method. +func (m *MockClusterService) All(ctx context.Context) (api.ClusterList, *errors.ServiceError) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "All", ctx) + ret0, _ := ret[0].(api.ClusterList) + ret1, _ := ret[1].(*errors.ServiceError) + return ret0, ret1 +} + +// All indicates an expected call of All. +func (mr *MockClusterServiceMockRecorder) All(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "All", reflect.TypeOf((*MockClusterService)(nil).All), ctx) +} + +// Create mocks base method. +func (m *MockClusterService) Create(ctx context.Context, cluster *api.Cluster) (*api.Cluster, *errors.ServiceError) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Create", ctx, cluster) + ret0, _ := ret[0].(*api.Cluster) + ret1, _ := ret[1].(*errors.ServiceError) + return ret0, ret1 +} + +// Create indicates an expected call of Create. +func (mr *MockClusterServiceMockRecorder) Create(ctx, cluster any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Create", reflect.TypeOf((*MockClusterService)(nil).Create), ctx, cluster) +} + +// Delete mocks base method. +func (m *MockClusterService) Delete(ctx context.Context, id string) *errors.ServiceError { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Delete", ctx, id) + ret0, _ := ret[0].(*errors.ServiceError) + return ret0 +} + +// Delete indicates an expected call of Delete. +func (mr *MockClusterServiceMockRecorder) Delete(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Delete", reflect.TypeOf((*MockClusterService)(nil).Delete), ctx, id) +} + +// FindByIDs mocks base method. +func (m *MockClusterService) FindByIDs(ctx context.Context, ids []string) (api.ClusterList, *errors.ServiceError) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "FindByIDs", ctx, ids) + ret0, _ := ret[0].(api.ClusterList) + ret1, _ := ret[1].(*errors.ServiceError) + return ret0, ret1 +} + +// FindByIDs indicates an expected call of FindByIDs. +func (mr *MockClusterServiceMockRecorder) FindByIDs(ctx, ids any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FindByIDs", reflect.TypeOf((*MockClusterService)(nil).FindByIDs), ctx, ids) +} + +// Get mocks base method. +func (m *MockClusterService) Get(ctx context.Context, id string) (*api.Cluster, *errors.ServiceError) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Get", ctx, id) + ret0, _ := ret[0].(*api.Cluster) + ret1, _ := ret[1].(*errors.ServiceError) + return ret0, ret1 +} + +// Get indicates an expected call of Get. +func (mr *MockClusterServiceMockRecorder) Get(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Get", reflect.TypeOf((*MockClusterService)(nil).Get), ctx, id) +} + +// OnDelete mocks base method. +func (m *MockClusterService) OnDelete(ctx context.Context, id string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "OnDelete", ctx, id) + ret0, _ := ret[0].(error) + return ret0 +} + +// OnDelete indicates an expected call of OnDelete. +func (mr *MockClusterServiceMockRecorder) OnDelete(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "OnDelete", reflect.TypeOf((*MockClusterService)(nil).OnDelete), ctx, id) +} + +// OnUpsert mocks base method. +func (m *MockClusterService) OnUpsert(ctx context.Context, id string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "OnUpsert", ctx, id) + ret0, _ := ret[0].(error) + return ret0 +} + +// OnUpsert indicates an expected call of OnUpsert. +func (mr *MockClusterServiceMockRecorder) OnUpsert(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "OnUpsert", reflect.TypeOf((*MockClusterService)(nil).OnUpsert), ctx, id) +} + +// Replace mocks base method. +func (m *MockClusterService) Replace(ctx context.Context, cluster *api.Cluster) (*api.Cluster, *errors.ServiceError) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Replace", ctx, cluster) + ret0, _ := ret[0].(*api.Cluster) + ret1, _ := ret[1].(*errors.ServiceError) + return ret0, ret1 +} + +// Replace indicates an expected call of Replace. +func (mr *MockClusterServiceMockRecorder) Replace(ctx, cluster any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Replace", reflect.TypeOf((*MockClusterService)(nil).Replace), ctx, cluster) +} + +// UpdateClusterStatusFromAdapters mocks base method. +func (m *MockClusterService) UpdateClusterStatusFromAdapters(ctx context.Context, clusterID string) (*api.Cluster, *errors.ServiceError) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateClusterStatusFromAdapters", ctx, clusterID) + ret0, _ := ret[0].(*api.Cluster) + ret1, _ := ret[1].(*errors.ServiceError) + return ret0, ret1 +} + +// UpdateClusterStatusFromAdapters indicates an expected call of UpdateClusterStatusFromAdapters. +func (mr *MockClusterServiceMockRecorder) UpdateClusterStatusFromAdapters(ctx, clusterID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateClusterStatusFromAdapters", reflect.TypeOf((*MockClusterService)(nil).UpdateClusterStatusFromAdapters), ctx, clusterID) +} diff --git a/pkg/services/generic.go b/pkg/services/generic.go index 79917d3..9af87d3 100755 --- a/pkg/services/generic.go +++ b/pkg/services/generic.go @@ -21,6 +21,8 @@ import ( "github.com/openshift-hyperfleet/hyperfleet-api/pkg/logger" ) +//go:generate mockgen -source=generic.go -package=services -destination=generic_mock.go + type GenericService interface { List(ctx context.Context, username string, args *ListArguments, resourceList interface{}) (*api.PagingMeta, *errors.ServiceError) } diff --git a/pkg/services/generic_mock.go b/pkg/services/generic_mock.go new file mode 100644 index 0000000..bd454b5 --- /dev/null +++ b/pkg/services/generic_mock.go @@ -0,0 +1,58 @@ +// Code generated by MockGen. DO NOT EDIT. +// Source: generic.go +// +// Generated by this command: +// +// mockgen -source=generic.go -package=services -destination=generic_mock.go +// + +// Package services is a generated GoMock package. +package services + +import ( + context "context" + reflect "reflect" + + api "github.com/openshift-hyperfleet/hyperfleet-api/pkg/api" + errors "github.com/openshift-hyperfleet/hyperfleet-api/pkg/errors" + gomock "go.uber.org/mock/gomock" +) + +// MockGenericService is a mock of GenericService interface. +type MockGenericService struct { + ctrl *gomock.Controller + recorder *MockGenericServiceMockRecorder + isgomock struct{} +} + +// MockGenericServiceMockRecorder is the mock recorder for MockGenericService. +type MockGenericServiceMockRecorder struct { + mock *MockGenericService +} + +// NewMockGenericService creates a new mock instance. +func NewMockGenericService(ctrl *gomock.Controller) *MockGenericService { + mock := &MockGenericService{ctrl: ctrl} + mock.recorder = &MockGenericServiceMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockGenericService) EXPECT() *MockGenericServiceMockRecorder { + return m.recorder +} + +// List mocks base method. +func (m *MockGenericService) List(ctx context.Context, username string, args *ListArguments, resourceList any) (*api.PagingMeta, *errors.ServiceError) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "List", ctx, username, args, resourceList) + ret0, _ := ret[0].(*api.PagingMeta) + ret1, _ := ret[1].(*errors.ServiceError) + return ret0, ret1 +} + +// List indicates an expected call of List. +func (mr *MockGenericServiceMockRecorder) List(ctx, username, args, resourceList any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "List", reflect.TypeOf((*MockGenericService)(nil).List), ctx, username, args, resourceList) +} diff --git a/pkg/services/node_pool.go b/pkg/services/node_pool.go index 9fa1336..6e47e18 100644 --- a/pkg/services/node_pool.go +++ b/pkg/services/node_pool.go @@ -12,6 +12,8 @@ import ( "github.com/openshift-hyperfleet/hyperfleet-api/pkg/logger" ) +//go:generate mockgen -source=node_pool.go -package=services -destination=node_pool_mock.go + type NodePoolService interface { Get(ctx context.Context, id string) (*api.NodePool, *errors.ServiceError) Create(ctx context.Context, nodePool *api.NodePool) (*api.NodePool, *errors.ServiceError) diff --git a/pkg/services/node_pool_mock.go b/pkg/services/node_pool_mock.go new file mode 100644 index 0000000..46fb9f2 --- /dev/null +++ b/pkg/services/node_pool_mock.go @@ -0,0 +1,175 @@ +// Code generated by MockGen. DO NOT EDIT. +// Source: node_pool.go +// +// Generated by this command: +// +// mockgen -source=node_pool.go -package=services -destination=node_pool_mock.go +// + +// Package services is a generated GoMock package. +package services + +import ( + context "context" + reflect "reflect" + + api "github.com/openshift-hyperfleet/hyperfleet-api/pkg/api" + errors "github.com/openshift-hyperfleet/hyperfleet-api/pkg/errors" + gomock "go.uber.org/mock/gomock" +) + +// MockNodePoolService is a mock of NodePoolService interface. +type MockNodePoolService struct { + ctrl *gomock.Controller + recorder *MockNodePoolServiceMockRecorder + isgomock struct{} +} + +// MockNodePoolServiceMockRecorder is the mock recorder for MockNodePoolService. +type MockNodePoolServiceMockRecorder struct { + mock *MockNodePoolService +} + +// NewMockNodePoolService creates a new mock instance. +func NewMockNodePoolService(ctrl *gomock.Controller) *MockNodePoolService { + mock := &MockNodePoolService{ctrl: ctrl} + mock.recorder = &MockNodePoolServiceMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockNodePoolService) EXPECT() *MockNodePoolServiceMockRecorder { + return m.recorder +} + +// All mocks base method. +func (m *MockNodePoolService) All(ctx context.Context) (api.NodePoolList, *errors.ServiceError) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "All", ctx) + ret0, _ := ret[0].(api.NodePoolList) + ret1, _ := ret[1].(*errors.ServiceError) + return ret0, ret1 +} + +// All indicates an expected call of All. +func (mr *MockNodePoolServiceMockRecorder) All(ctx any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "All", reflect.TypeOf((*MockNodePoolService)(nil).All), ctx) +} + +// Create mocks base method. +func (m *MockNodePoolService) Create(ctx context.Context, nodePool *api.NodePool) (*api.NodePool, *errors.ServiceError) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Create", ctx, nodePool) + ret0, _ := ret[0].(*api.NodePool) + ret1, _ := ret[1].(*errors.ServiceError) + return ret0, ret1 +} + +// Create indicates an expected call of Create. +func (mr *MockNodePoolServiceMockRecorder) Create(ctx, nodePool any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Create", reflect.TypeOf((*MockNodePoolService)(nil).Create), ctx, nodePool) +} + +// Delete mocks base method. +func (m *MockNodePoolService) Delete(ctx context.Context, id string) *errors.ServiceError { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Delete", ctx, id) + ret0, _ := ret[0].(*errors.ServiceError) + return ret0 +} + +// Delete indicates an expected call of Delete. +func (mr *MockNodePoolServiceMockRecorder) Delete(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Delete", reflect.TypeOf((*MockNodePoolService)(nil).Delete), ctx, id) +} + +// FindByIDs mocks base method. +func (m *MockNodePoolService) FindByIDs(ctx context.Context, ids []string) (api.NodePoolList, *errors.ServiceError) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "FindByIDs", ctx, ids) + ret0, _ := ret[0].(api.NodePoolList) + ret1, _ := ret[1].(*errors.ServiceError) + return ret0, ret1 +} + +// FindByIDs indicates an expected call of FindByIDs. +func (mr *MockNodePoolServiceMockRecorder) FindByIDs(ctx, ids any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FindByIDs", reflect.TypeOf((*MockNodePoolService)(nil).FindByIDs), ctx, ids) +} + +// Get mocks base method. +func (m *MockNodePoolService) Get(ctx context.Context, id string) (*api.NodePool, *errors.ServiceError) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Get", ctx, id) + ret0, _ := ret[0].(*api.NodePool) + ret1, _ := ret[1].(*errors.ServiceError) + return ret0, ret1 +} + +// Get indicates an expected call of Get. +func (mr *MockNodePoolServiceMockRecorder) Get(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Get", reflect.TypeOf((*MockNodePoolService)(nil).Get), ctx, id) +} + +// OnDelete mocks base method. +func (m *MockNodePoolService) OnDelete(ctx context.Context, id string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "OnDelete", ctx, id) + ret0, _ := ret[0].(error) + return ret0 +} + +// OnDelete indicates an expected call of OnDelete. +func (mr *MockNodePoolServiceMockRecorder) OnDelete(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "OnDelete", reflect.TypeOf((*MockNodePoolService)(nil).OnDelete), ctx, id) +} + +// OnUpsert mocks base method. +func (m *MockNodePoolService) OnUpsert(ctx context.Context, id string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "OnUpsert", ctx, id) + ret0, _ := ret[0].(error) + return ret0 +} + +// OnUpsert indicates an expected call of OnUpsert. +func (mr *MockNodePoolServiceMockRecorder) OnUpsert(ctx, id any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "OnUpsert", reflect.TypeOf((*MockNodePoolService)(nil).OnUpsert), ctx, id) +} + +// Replace mocks base method. +func (m *MockNodePoolService) Replace(ctx context.Context, nodePool *api.NodePool) (*api.NodePool, *errors.ServiceError) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Replace", ctx, nodePool) + ret0, _ := ret[0].(*api.NodePool) + ret1, _ := ret[1].(*errors.ServiceError) + return ret0, ret1 +} + +// Replace indicates an expected call of Replace. +func (mr *MockNodePoolServiceMockRecorder) Replace(ctx, nodePool any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Replace", reflect.TypeOf((*MockNodePoolService)(nil).Replace), ctx, nodePool) +} + +// UpdateNodePoolStatusFromAdapters mocks base method. +func (m *MockNodePoolService) UpdateNodePoolStatusFromAdapters(ctx context.Context, nodePoolID string) (*api.NodePool, *errors.ServiceError) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateNodePoolStatusFromAdapters", ctx, nodePoolID) + ret0, _ := ret[0].(*api.NodePool) + ret1, _ := ret[1].(*errors.ServiceError) + return ret0, ret1 +} + +// UpdateNodePoolStatusFromAdapters indicates an expected call of UpdateNodePoolStatusFromAdapters. +func (mr *MockNodePoolServiceMockRecorder) UpdateNodePoolStatusFromAdapters(ctx, nodePoolID any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateNodePoolStatusFromAdapters", reflect.TypeOf((*MockNodePoolService)(nil).UpdateNodePoolStatusFromAdapters), ctx, nodePoolID) +} From 92421e09f4a30d2ed2d746a99e544d93683d09b7 Mon Sep 17 00:00:00 2001 From: Ciaran Roche Date: Thu, 4 Dec 2025 12:52:22 +0000 Subject: [PATCH 2/3] chore: remove generated mock files from git tracking MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove *_mock.go files from version control - Add *_mock.go pattern to .gitignore - Add generate-all target to Makefile (runs generate + generate-mocks) - Make binary and install targets depend on generate-all Generated code is now created on-demand during build/test. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .gitignore | 3 + Makefile | 9 +- pkg/services/adapter_status_mock.go | 178 ---------------------------- pkg/services/cluster_mock.go | 175 --------------------------- pkg/services/generic_mock.go | 58 --------- pkg/services/node_pool_mock.go | 175 --------------------------- 6 files changed, 10 insertions(+), 588 deletions(-) delete mode 100644 pkg/services/adapter_status_mock.go delete mode 100644 pkg/services/cluster_mock.go delete mode 100644 pkg/services/generic_mock.go delete mode 100644 pkg/services/node_pool_mock.go diff --git a/.gitignore b/.gitignore index 32330e3..224220b 100755 --- a/.gitignore +++ b/.gitignore @@ -50,3 +50,6 @@ secrets # Ignore generated OpenAPI code /pkg/api/openapi/ /data/generated/ + +# Ignore generated mock files +*_mock.go diff --git a/Makefile b/Makefile index 5395d5f..c3987de 100755 --- a/Makefile +++ b/Makefile @@ -51,6 +51,7 @@ help: @echo "make test-integration run integration tests" @echo "make generate generate openapi modules" @echo "make generate-mocks generate mock implementations for services" + @echo "make generate-all generate all code (openapi + mocks)" @echo "make clean delete temporary generated files" @echo "$(fake)" .PHONY: help @@ -122,13 +123,13 @@ lint: $(GOLANGCI_LINT) # Build binaries # NOTE it may be necessary to use CGO_ENABLED=0 for backwards compatibility with centos7 if not using centos7 -binary: check-gopath +binary: check-gopath generate-all echo "Building version: ${build_version}" CGO_ENABLED=$(CGO_ENABLED) GOEXPERIMENT=boringcrypto ${GO} build -ldflags="$(ldflags)" -o hyperfleet-api ./cmd/hyperfleet-api .PHONY: binary # Install -install: check-gopath +install: check-gopath generate-all CGO_ENABLED=$(CGO_ENABLED) GOEXPERIMENT=boringcrypto ${GO} install -ldflags="$(ldflags)" ./cmd/hyperfleet-api @ ${GO} version | grep -q "$(GO_VERSION)" || \ ( \ @@ -225,6 +226,10 @@ generate-mocks: ${GO} generate ./pkg/services/... .PHONY: generate-mocks +# Generate all code (openapi + mocks) +generate-all: generate generate-mocks +.PHONY: generate-all + # Regenerate openapi client and models using vendor (avoids downloading dependencies) generate-vendor: rm -rf pkg/api/openapi diff --git a/pkg/services/adapter_status_mock.go b/pkg/services/adapter_status_mock.go deleted file mode 100644 index c818972..0000000 --- a/pkg/services/adapter_status_mock.go +++ /dev/null @@ -1,178 +0,0 @@ -// Code generated by MockGen. DO NOT EDIT. -// Source: adapter_status.go -// -// Generated by this command: -// -// mockgen -source=adapter_status.go -package=services -destination=adapter_status_mock.go -// - -// Package services is a generated GoMock package. -package services - -import ( - context "context" - reflect "reflect" - - api "github.com/openshift-hyperfleet/hyperfleet-api/pkg/api" - errors "github.com/openshift-hyperfleet/hyperfleet-api/pkg/errors" - gomock "go.uber.org/mock/gomock" -) - -// MockAdapterStatusService is a mock of AdapterStatusService interface. -type MockAdapterStatusService struct { - ctrl *gomock.Controller - recorder *MockAdapterStatusServiceMockRecorder - isgomock struct{} -} - -// MockAdapterStatusServiceMockRecorder is the mock recorder for MockAdapterStatusService. -type MockAdapterStatusServiceMockRecorder struct { - mock *MockAdapterStatusService -} - -// NewMockAdapterStatusService creates a new mock instance. -func NewMockAdapterStatusService(ctrl *gomock.Controller) *MockAdapterStatusService { - mock := &MockAdapterStatusService{ctrl: ctrl} - mock.recorder = &MockAdapterStatusServiceMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockAdapterStatusService) EXPECT() *MockAdapterStatusServiceMockRecorder { - return m.recorder -} - -// All mocks base method. -func (m *MockAdapterStatusService) All(ctx context.Context) (api.AdapterStatusList, *errors.ServiceError) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "All", ctx) - ret0, _ := ret[0].(api.AdapterStatusList) - ret1, _ := ret[1].(*errors.ServiceError) - return ret0, ret1 -} - -// All indicates an expected call of All. -func (mr *MockAdapterStatusServiceMockRecorder) All(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "All", reflect.TypeOf((*MockAdapterStatusService)(nil).All), ctx) -} - -// Create mocks base method. -func (m *MockAdapterStatusService) Create(ctx context.Context, adapterStatus *api.AdapterStatus) (*api.AdapterStatus, *errors.ServiceError) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Create", ctx, adapterStatus) - ret0, _ := ret[0].(*api.AdapterStatus) - ret1, _ := ret[1].(*errors.ServiceError) - return ret0, ret1 -} - -// Create indicates an expected call of Create. -func (mr *MockAdapterStatusServiceMockRecorder) Create(ctx, adapterStatus any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Create", reflect.TypeOf((*MockAdapterStatusService)(nil).Create), ctx, adapterStatus) -} - -// Delete mocks base method. -func (m *MockAdapterStatusService) Delete(ctx context.Context, id string) *errors.ServiceError { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Delete", ctx, id) - ret0, _ := ret[0].(*errors.ServiceError) - return ret0 -} - -// Delete indicates an expected call of Delete. -func (mr *MockAdapterStatusServiceMockRecorder) Delete(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Delete", reflect.TypeOf((*MockAdapterStatusService)(nil).Delete), ctx, id) -} - -// FindByResource mocks base method. -func (m *MockAdapterStatusService) FindByResource(ctx context.Context, resourceType, resourceID string) (api.AdapterStatusList, *errors.ServiceError) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "FindByResource", ctx, resourceType, resourceID) - ret0, _ := ret[0].(api.AdapterStatusList) - ret1, _ := ret[1].(*errors.ServiceError) - return ret0, ret1 -} - -// FindByResource indicates an expected call of FindByResource. -func (mr *MockAdapterStatusServiceMockRecorder) FindByResource(ctx, resourceType, resourceID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FindByResource", reflect.TypeOf((*MockAdapterStatusService)(nil).FindByResource), ctx, resourceType, resourceID) -} - -// FindByResourceAndAdapter mocks base method. -func (m *MockAdapterStatusService) FindByResourceAndAdapter(ctx context.Context, resourceType, resourceID, adapter string) (*api.AdapterStatus, *errors.ServiceError) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "FindByResourceAndAdapter", ctx, resourceType, resourceID, adapter) - ret0, _ := ret[0].(*api.AdapterStatus) - ret1, _ := ret[1].(*errors.ServiceError) - return ret0, ret1 -} - -// FindByResourceAndAdapter indicates an expected call of FindByResourceAndAdapter. -func (mr *MockAdapterStatusServiceMockRecorder) FindByResourceAndAdapter(ctx, resourceType, resourceID, adapter any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FindByResourceAndAdapter", reflect.TypeOf((*MockAdapterStatusService)(nil).FindByResourceAndAdapter), ctx, resourceType, resourceID, adapter) -} - -// FindByResourcePaginated mocks base method. -func (m *MockAdapterStatusService) FindByResourcePaginated(ctx context.Context, resourceType, resourceID string, listArgs *ListArguments) (api.AdapterStatusList, int64, *errors.ServiceError) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "FindByResourcePaginated", ctx, resourceType, resourceID, listArgs) - ret0, _ := ret[0].(api.AdapterStatusList) - ret1, _ := ret[1].(int64) - ret2, _ := ret[2].(*errors.ServiceError) - return ret0, ret1, ret2 -} - -// FindByResourcePaginated indicates an expected call of FindByResourcePaginated. -func (mr *MockAdapterStatusServiceMockRecorder) FindByResourcePaginated(ctx, resourceType, resourceID, listArgs any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FindByResourcePaginated", reflect.TypeOf((*MockAdapterStatusService)(nil).FindByResourcePaginated), ctx, resourceType, resourceID, listArgs) -} - -// Get mocks base method. -func (m *MockAdapterStatusService) Get(ctx context.Context, id string) (*api.AdapterStatus, *errors.ServiceError) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Get", ctx, id) - ret0, _ := ret[0].(*api.AdapterStatus) - ret1, _ := ret[1].(*errors.ServiceError) - return ret0, ret1 -} - -// Get indicates an expected call of Get. -func (mr *MockAdapterStatusServiceMockRecorder) Get(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Get", reflect.TypeOf((*MockAdapterStatusService)(nil).Get), ctx, id) -} - -// Replace mocks base method. -func (m *MockAdapterStatusService) Replace(ctx context.Context, adapterStatus *api.AdapterStatus) (*api.AdapterStatus, *errors.ServiceError) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Replace", ctx, adapterStatus) - ret0, _ := ret[0].(*api.AdapterStatus) - ret1, _ := ret[1].(*errors.ServiceError) - return ret0, ret1 -} - -// Replace indicates an expected call of Replace. -func (mr *MockAdapterStatusServiceMockRecorder) Replace(ctx, adapterStatus any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Replace", reflect.TypeOf((*MockAdapterStatusService)(nil).Replace), ctx, adapterStatus) -} - -// Upsert mocks base method. -func (m *MockAdapterStatusService) Upsert(ctx context.Context, adapterStatus *api.AdapterStatus) (*api.AdapterStatus, *errors.ServiceError) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Upsert", ctx, adapterStatus) - ret0, _ := ret[0].(*api.AdapterStatus) - ret1, _ := ret[1].(*errors.ServiceError) - return ret0, ret1 -} - -// Upsert indicates an expected call of Upsert. -func (mr *MockAdapterStatusServiceMockRecorder) Upsert(ctx, adapterStatus any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Upsert", reflect.TypeOf((*MockAdapterStatusService)(nil).Upsert), ctx, adapterStatus) -} diff --git a/pkg/services/cluster_mock.go b/pkg/services/cluster_mock.go deleted file mode 100644 index 4c70f63..0000000 --- a/pkg/services/cluster_mock.go +++ /dev/null @@ -1,175 +0,0 @@ -// Code generated by MockGen. DO NOT EDIT. -// Source: cluster.go -// -// Generated by this command: -// -// mockgen -source=cluster.go -package=services -destination=cluster_mock.go -// - -// Package services is a generated GoMock package. -package services - -import ( - context "context" - reflect "reflect" - - api "github.com/openshift-hyperfleet/hyperfleet-api/pkg/api" - errors "github.com/openshift-hyperfleet/hyperfleet-api/pkg/errors" - gomock "go.uber.org/mock/gomock" -) - -// MockClusterService is a mock of ClusterService interface. -type MockClusterService struct { - ctrl *gomock.Controller - recorder *MockClusterServiceMockRecorder - isgomock struct{} -} - -// MockClusterServiceMockRecorder is the mock recorder for MockClusterService. -type MockClusterServiceMockRecorder struct { - mock *MockClusterService -} - -// NewMockClusterService creates a new mock instance. -func NewMockClusterService(ctrl *gomock.Controller) *MockClusterService { - mock := &MockClusterService{ctrl: ctrl} - mock.recorder = &MockClusterServiceMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockClusterService) EXPECT() *MockClusterServiceMockRecorder { - return m.recorder -} - -// All mocks base method. -func (m *MockClusterService) All(ctx context.Context) (api.ClusterList, *errors.ServiceError) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "All", ctx) - ret0, _ := ret[0].(api.ClusterList) - ret1, _ := ret[1].(*errors.ServiceError) - return ret0, ret1 -} - -// All indicates an expected call of All. -func (mr *MockClusterServiceMockRecorder) All(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "All", reflect.TypeOf((*MockClusterService)(nil).All), ctx) -} - -// Create mocks base method. -func (m *MockClusterService) Create(ctx context.Context, cluster *api.Cluster) (*api.Cluster, *errors.ServiceError) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Create", ctx, cluster) - ret0, _ := ret[0].(*api.Cluster) - ret1, _ := ret[1].(*errors.ServiceError) - return ret0, ret1 -} - -// Create indicates an expected call of Create. -func (mr *MockClusterServiceMockRecorder) Create(ctx, cluster any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Create", reflect.TypeOf((*MockClusterService)(nil).Create), ctx, cluster) -} - -// Delete mocks base method. -func (m *MockClusterService) Delete(ctx context.Context, id string) *errors.ServiceError { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Delete", ctx, id) - ret0, _ := ret[0].(*errors.ServiceError) - return ret0 -} - -// Delete indicates an expected call of Delete. -func (mr *MockClusterServiceMockRecorder) Delete(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Delete", reflect.TypeOf((*MockClusterService)(nil).Delete), ctx, id) -} - -// FindByIDs mocks base method. -func (m *MockClusterService) FindByIDs(ctx context.Context, ids []string) (api.ClusterList, *errors.ServiceError) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "FindByIDs", ctx, ids) - ret0, _ := ret[0].(api.ClusterList) - ret1, _ := ret[1].(*errors.ServiceError) - return ret0, ret1 -} - -// FindByIDs indicates an expected call of FindByIDs. -func (mr *MockClusterServiceMockRecorder) FindByIDs(ctx, ids any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FindByIDs", reflect.TypeOf((*MockClusterService)(nil).FindByIDs), ctx, ids) -} - -// Get mocks base method. -func (m *MockClusterService) Get(ctx context.Context, id string) (*api.Cluster, *errors.ServiceError) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Get", ctx, id) - ret0, _ := ret[0].(*api.Cluster) - ret1, _ := ret[1].(*errors.ServiceError) - return ret0, ret1 -} - -// Get indicates an expected call of Get. -func (mr *MockClusterServiceMockRecorder) Get(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Get", reflect.TypeOf((*MockClusterService)(nil).Get), ctx, id) -} - -// OnDelete mocks base method. -func (m *MockClusterService) OnDelete(ctx context.Context, id string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "OnDelete", ctx, id) - ret0, _ := ret[0].(error) - return ret0 -} - -// OnDelete indicates an expected call of OnDelete. -func (mr *MockClusterServiceMockRecorder) OnDelete(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "OnDelete", reflect.TypeOf((*MockClusterService)(nil).OnDelete), ctx, id) -} - -// OnUpsert mocks base method. -func (m *MockClusterService) OnUpsert(ctx context.Context, id string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "OnUpsert", ctx, id) - ret0, _ := ret[0].(error) - return ret0 -} - -// OnUpsert indicates an expected call of OnUpsert. -func (mr *MockClusterServiceMockRecorder) OnUpsert(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "OnUpsert", reflect.TypeOf((*MockClusterService)(nil).OnUpsert), ctx, id) -} - -// Replace mocks base method. -func (m *MockClusterService) Replace(ctx context.Context, cluster *api.Cluster) (*api.Cluster, *errors.ServiceError) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Replace", ctx, cluster) - ret0, _ := ret[0].(*api.Cluster) - ret1, _ := ret[1].(*errors.ServiceError) - return ret0, ret1 -} - -// Replace indicates an expected call of Replace. -func (mr *MockClusterServiceMockRecorder) Replace(ctx, cluster any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Replace", reflect.TypeOf((*MockClusterService)(nil).Replace), ctx, cluster) -} - -// UpdateClusterStatusFromAdapters mocks base method. -func (m *MockClusterService) UpdateClusterStatusFromAdapters(ctx context.Context, clusterID string) (*api.Cluster, *errors.ServiceError) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateClusterStatusFromAdapters", ctx, clusterID) - ret0, _ := ret[0].(*api.Cluster) - ret1, _ := ret[1].(*errors.ServiceError) - return ret0, ret1 -} - -// UpdateClusterStatusFromAdapters indicates an expected call of UpdateClusterStatusFromAdapters. -func (mr *MockClusterServiceMockRecorder) UpdateClusterStatusFromAdapters(ctx, clusterID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateClusterStatusFromAdapters", reflect.TypeOf((*MockClusterService)(nil).UpdateClusterStatusFromAdapters), ctx, clusterID) -} diff --git a/pkg/services/generic_mock.go b/pkg/services/generic_mock.go deleted file mode 100644 index bd454b5..0000000 --- a/pkg/services/generic_mock.go +++ /dev/null @@ -1,58 +0,0 @@ -// Code generated by MockGen. DO NOT EDIT. -// Source: generic.go -// -// Generated by this command: -// -// mockgen -source=generic.go -package=services -destination=generic_mock.go -// - -// Package services is a generated GoMock package. -package services - -import ( - context "context" - reflect "reflect" - - api "github.com/openshift-hyperfleet/hyperfleet-api/pkg/api" - errors "github.com/openshift-hyperfleet/hyperfleet-api/pkg/errors" - gomock "go.uber.org/mock/gomock" -) - -// MockGenericService is a mock of GenericService interface. -type MockGenericService struct { - ctrl *gomock.Controller - recorder *MockGenericServiceMockRecorder - isgomock struct{} -} - -// MockGenericServiceMockRecorder is the mock recorder for MockGenericService. -type MockGenericServiceMockRecorder struct { - mock *MockGenericService -} - -// NewMockGenericService creates a new mock instance. -func NewMockGenericService(ctrl *gomock.Controller) *MockGenericService { - mock := &MockGenericService{ctrl: ctrl} - mock.recorder = &MockGenericServiceMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockGenericService) EXPECT() *MockGenericServiceMockRecorder { - return m.recorder -} - -// List mocks base method. -func (m *MockGenericService) List(ctx context.Context, username string, args *ListArguments, resourceList any) (*api.PagingMeta, *errors.ServiceError) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "List", ctx, username, args, resourceList) - ret0, _ := ret[0].(*api.PagingMeta) - ret1, _ := ret[1].(*errors.ServiceError) - return ret0, ret1 -} - -// List indicates an expected call of List. -func (mr *MockGenericServiceMockRecorder) List(ctx, username, args, resourceList any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "List", reflect.TypeOf((*MockGenericService)(nil).List), ctx, username, args, resourceList) -} diff --git a/pkg/services/node_pool_mock.go b/pkg/services/node_pool_mock.go deleted file mode 100644 index 46fb9f2..0000000 --- a/pkg/services/node_pool_mock.go +++ /dev/null @@ -1,175 +0,0 @@ -// Code generated by MockGen. DO NOT EDIT. -// Source: node_pool.go -// -// Generated by this command: -// -// mockgen -source=node_pool.go -package=services -destination=node_pool_mock.go -// - -// Package services is a generated GoMock package. -package services - -import ( - context "context" - reflect "reflect" - - api "github.com/openshift-hyperfleet/hyperfleet-api/pkg/api" - errors "github.com/openshift-hyperfleet/hyperfleet-api/pkg/errors" - gomock "go.uber.org/mock/gomock" -) - -// MockNodePoolService is a mock of NodePoolService interface. -type MockNodePoolService struct { - ctrl *gomock.Controller - recorder *MockNodePoolServiceMockRecorder - isgomock struct{} -} - -// MockNodePoolServiceMockRecorder is the mock recorder for MockNodePoolService. -type MockNodePoolServiceMockRecorder struct { - mock *MockNodePoolService -} - -// NewMockNodePoolService creates a new mock instance. -func NewMockNodePoolService(ctrl *gomock.Controller) *MockNodePoolService { - mock := &MockNodePoolService{ctrl: ctrl} - mock.recorder = &MockNodePoolServiceMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockNodePoolService) EXPECT() *MockNodePoolServiceMockRecorder { - return m.recorder -} - -// All mocks base method. -func (m *MockNodePoolService) All(ctx context.Context) (api.NodePoolList, *errors.ServiceError) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "All", ctx) - ret0, _ := ret[0].(api.NodePoolList) - ret1, _ := ret[1].(*errors.ServiceError) - return ret0, ret1 -} - -// All indicates an expected call of All. -func (mr *MockNodePoolServiceMockRecorder) All(ctx any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "All", reflect.TypeOf((*MockNodePoolService)(nil).All), ctx) -} - -// Create mocks base method. -func (m *MockNodePoolService) Create(ctx context.Context, nodePool *api.NodePool) (*api.NodePool, *errors.ServiceError) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Create", ctx, nodePool) - ret0, _ := ret[0].(*api.NodePool) - ret1, _ := ret[1].(*errors.ServiceError) - return ret0, ret1 -} - -// Create indicates an expected call of Create. -func (mr *MockNodePoolServiceMockRecorder) Create(ctx, nodePool any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Create", reflect.TypeOf((*MockNodePoolService)(nil).Create), ctx, nodePool) -} - -// Delete mocks base method. -func (m *MockNodePoolService) Delete(ctx context.Context, id string) *errors.ServiceError { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Delete", ctx, id) - ret0, _ := ret[0].(*errors.ServiceError) - return ret0 -} - -// Delete indicates an expected call of Delete. -func (mr *MockNodePoolServiceMockRecorder) Delete(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Delete", reflect.TypeOf((*MockNodePoolService)(nil).Delete), ctx, id) -} - -// FindByIDs mocks base method. -func (m *MockNodePoolService) FindByIDs(ctx context.Context, ids []string) (api.NodePoolList, *errors.ServiceError) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "FindByIDs", ctx, ids) - ret0, _ := ret[0].(api.NodePoolList) - ret1, _ := ret[1].(*errors.ServiceError) - return ret0, ret1 -} - -// FindByIDs indicates an expected call of FindByIDs. -func (mr *MockNodePoolServiceMockRecorder) FindByIDs(ctx, ids any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FindByIDs", reflect.TypeOf((*MockNodePoolService)(nil).FindByIDs), ctx, ids) -} - -// Get mocks base method. -func (m *MockNodePoolService) Get(ctx context.Context, id string) (*api.NodePool, *errors.ServiceError) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Get", ctx, id) - ret0, _ := ret[0].(*api.NodePool) - ret1, _ := ret[1].(*errors.ServiceError) - return ret0, ret1 -} - -// Get indicates an expected call of Get. -func (mr *MockNodePoolServiceMockRecorder) Get(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Get", reflect.TypeOf((*MockNodePoolService)(nil).Get), ctx, id) -} - -// OnDelete mocks base method. -func (m *MockNodePoolService) OnDelete(ctx context.Context, id string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "OnDelete", ctx, id) - ret0, _ := ret[0].(error) - return ret0 -} - -// OnDelete indicates an expected call of OnDelete. -func (mr *MockNodePoolServiceMockRecorder) OnDelete(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "OnDelete", reflect.TypeOf((*MockNodePoolService)(nil).OnDelete), ctx, id) -} - -// OnUpsert mocks base method. -func (m *MockNodePoolService) OnUpsert(ctx context.Context, id string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "OnUpsert", ctx, id) - ret0, _ := ret[0].(error) - return ret0 -} - -// OnUpsert indicates an expected call of OnUpsert. -func (mr *MockNodePoolServiceMockRecorder) OnUpsert(ctx, id any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "OnUpsert", reflect.TypeOf((*MockNodePoolService)(nil).OnUpsert), ctx, id) -} - -// Replace mocks base method. -func (m *MockNodePoolService) Replace(ctx context.Context, nodePool *api.NodePool) (*api.NodePool, *errors.ServiceError) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Replace", ctx, nodePool) - ret0, _ := ret[0].(*api.NodePool) - ret1, _ := ret[1].(*errors.ServiceError) - return ret0, ret1 -} - -// Replace indicates an expected call of Replace. -func (mr *MockNodePoolServiceMockRecorder) Replace(ctx, nodePool any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Replace", reflect.TypeOf((*MockNodePoolService)(nil).Replace), ctx, nodePool) -} - -// UpdateNodePoolStatusFromAdapters mocks base method. -func (m *MockNodePoolService) UpdateNodePoolStatusFromAdapters(ctx context.Context, nodePoolID string) (*api.NodePool, *errors.ServiceError) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "UpdateNodePoolStatusFromAdapters", ctx, nodePoolID) - ret0, _ := ret[0].(*api.NodePool) - ret1, _ := ret[1].(*errors.ServiceError) - return ret0, ret1 -} - -// UpdateNodePoolStatusFromAdapters indicates an expected call of UpdateNodePoolStatusFromAdapters. -func (mr *MockNodePoolServiceMockRecorder) UpdateNodePoolStatusFromAdapters(ctx, nodePoolID any) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateNodePoolStatusFromAdapters", reflect.TypeOf((*MockNodePoolService)(nil).UpdateNodePoolStatusFromAdapters), ctx, nodePoolID) -} From a366fd6514985812b8daf5e2ad26c2beb0df7d53 Mon Sep 17 00:00:00 2001 From: Ciaran Roche Date: Thu, 4 Dec 2025 12:56:53 +0000 Subject: [PATCH 3/3] chore: add mockgen to bingo for version-pinned mock generation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add go.uber.org/mock/mockgen v0.6.0 to bingo - Update generate-mocks target to depend on $(MOCKGEN) - Update go:generate directives to use mockgen-v0.6.0 Ensures all developers and CI use the same mockgen version. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .bingo/README.md | 2 +- .bingo/Variables.mk | 6 ++++++ .bingo/mockgen.mod | 5 +++++ .bingo/mockgen.sum | 8 ++++++++ .bingo/variables.env | 2 ++ Makefile | 2 +- pkg/services/adapter_status.go | 2 +- pkg/services/cluster.go | 2 +- pkg/services/generic.go | 2 +- pkg/services/node_pool.go | 2 +- 10 files changed, 27 insertions(+), 6 deletions(-) create mode 100644 .bingo/mockgen.mod create mode 100644 .bingo/mockgen.sum diff --git a/.bingo/README.md b/.bingo/README.md index 549760b..c812e3a 100644 --- a/.bingo/README.md +++ b/.bingo/README.md @@ -10,4 +10,4 @@ This is directory which stores Go modules with pinned buildable package that is ## Requirements -* Go 1.24.9 or later (see project CLAUDE.md for version requirements) +* Go 1.24.x or 1.25.x diff --git a/.bingo/Variables.mk b/.bingo/Variables.mk index f2cbc3a..6547a7f 100644 --- a/.bingo/Variables.mk +++ b/.bingo/Variables.mk @@ -35,3 +35,9 @@ $(GOTESTSUM): $(BINGO_DIR)/gotestsum.mod @echo "(re)installing $(GOBIN)/gotestsum-v1.13.0" @cd $(BINGO_DIR) && GOWORK=off GOOS=$(GOHOSTOS) GOARCH=$(GOHOSTARCH) GOARM=$(GOHOSTARM) $(GO) build -mod=mod -modfile=gotestsum.mod -o=$(GOBIN)/gotestsum-v1.13.0 "gotest.tools/gotestsum" +MOCKGEN := $(GOBIN)/mockgen-v0.6.0 +$(MOCKGEN): $(BINGO_DIR)/mockgen.mod + @# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies. + @echo "(re)installing $(GOBIN)/mockgen-v0.6.0" + @cd $(BINGO_DIR) && GOWORK=off GOOS=$(GOHOSTOS) GOARCH=$(GOHOSTARCH) GOARM=$(GOHOSTARM) $(GO) build -mod=mod -modfile=mockgen.mod -o=$(GOBIN)/mockgen-v0.6.0 "go.uber.org/mock/mockgen" + diff --git a/.bingo/mockgen.mod b/.bingo/mockgen.mod new file mode 100644 index 0000000..a0613ea --- /dev/null +++ b/.bingo/mockgen.mod @@ -0,0 +1,5 @@ +module _ // Auto generated by https://github.com/bwplotka/bingo. DO NOT EDIT + +go 1.25.0 + +require go.uber.org/mock v0.6.0 // mockgen diff --git a/.bingo/mockgen.sum b/.bingo/mockgen.sum new file mode 100644 index 0000000..8936eb9 --- /dev/null +++ b/.bingo/mockgen.sum @@ -0,0 +1,8 @@ +go.uber.org/mock v0.6.0 h1:hyF9dfmbgIX5EfOdasqLsWD6xqpNZlXblLB/Dbnwv3Y= +go.uber.org/mock v0.6.0/go.mod h1:KiVJ4BqZJaMj4svdfmHM0AUx4NJYO8ZNpPnZn1Z+BBU= +golang.org/x/mod v0.27.0 h1:kb+q2PyFnEADO2IEF935ehFUXlWiNjJWtRNgBLSfbxQ= +golang.org/x/mod v0.27.0/go.mod h1:rWI627Fq0DEoudcK+MBkNkCe0EetEaDSwJJkCcjpazc= +golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw= +golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg= +golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s= diff --git a/.bingo/variables.env b/.bingo/variables.env index de58482..e1ce49f 100644 --- a/.bingo/variables.env +++ b/.bingo/variables.env @@ -12,3 +12,5 @@ GOLANGCI_LINT="${GOBIN}/golangci-lint-v1.64.8" GOTESTSUM="${GOBIN}/gotestsum-v1.13.0" +MOCKGEN="${GOBIN}/mockgen-v0.6.0" + diff --git a/Makefile b/Makefile index c3987de..5e27aad 100755 --- a/Makefile +++ b/Makefile @@ -222,7 +222,7 @@ generate: .PHONY: generate # Generate mock implementations for service interfaces -generate-mocks: +generate-mocks: $(MOCKGEN) ${GO} generate ./pkg/services/... .PHONY: generate-mocks diff --git a/pkg/services/adapter_status.go b/pkg/services/adapter_status.go index 98d1174..e496be5 100644 --- a/pkg/services/adapter_status.go +++ b/pkg/services/adapter_status.go @@ -8,7 +8,7 @@ import ( "github.com/openshift-hyperfleet/hyperfleet-api/pkg/errors" ) -//go:generate mockgen -source=adapter_status.go -package=services -destination=adapter_status_mock.go +//go:generate mockgen-v0.6.0 -source=adapter_status.go -package=services -destination=adapter_status_mock.go type AdapterStatusService interface { Get(ctx context.Context, id string) (*api.AdapterStatus, *errors.ServiceError) diff --git a/pkg/services/cluster.go b/pkg/services/cluster.go index ed943f1..629b788 100644 --- a/pkg/services/cluster.go +++ b/pkg/services/cluster.go @@ -12,7 +12,7 @@ import ( "github.com/openshift-hyperfleet/hyperfleet-api/pkg/logger" ) -//go:generate mockgen -source=cluster.go -package=services -destination=cluster_mock.go +//go:generate mockgen-v0.6.0 -source=cluster.go -package=services -destination=cluster_mock.go type ClusterService interface { Get(ctx context.Context, id string) (*api.Cluster, *errors.ServiceError) diff --git a/pkg/services/generic.go b/pkg/services/generic.go index 9af87d3..eca9cca 100755 --- a/pkg/services/generic.go +++ b/pkg/services/generic.go @@ -21,7 +21,7 @@ import ( "github.com/openshift-hyperfleet/hyperfleet-api/pkg/logger" ) -//go:generate mockgen -source=generic.go -package=services -destination=generic_mock.go +//go:generate mockgen-v0.6.0 -source=generic.go -package=services -destination=generic_mock.go type GenericService interface { List(ctx context.Context, username string, args *ListArguments, resourceList interface{}) (*api.PagingMeta, *errors.ServiceError) diff --git a/pkg/services/node_pool.go b/pkg/services/node_pool.go index 6e47e18..1403f84 100644 --- a/pkg/services/node_pool.go +++ b/pkg/services/node_pool.go @@ -12,7 +12,7 @@ import ( "github.com/openshift-hyperfleet/hyperfleet-api/pkg/logger" ) -//go:generate mockgen -source=node_pool.go -package=services -destination=node_pool_mock.go +//go:generate mockgen-v0.6.0 -source=node_pool.go -package=services -destination=node_pool_mock.go type NodePoolService interface { Get(ctx context.Context, id string) (*api.NodePool, *errors.ServiceError)