// Code generated by MockGen. DO NOT EDIT.
// Source: gitlab.com/gitlab-org/cluster-integration/gitlab-agent/v18/internal/module/agent_registrar/rpc (interfaces: AgentRegistrarClient)
//
// Generated by this command:
//
//	mockgen -typed -destination agent_registrar.go -package mock_agent_registrar gitlab.com/gitlab-org/cluster-integration/gitlab-agent/v18/internal/module/agent_registrar/rpc AgentRegistrarClient
//

// Package mock_agent_registrar is a generated GoMock package.
package mock_agent_registrar

import (
	context "context"
	reflect "reflect"

	rpc "gitlab.com/gitlab-org/cluster-integration/gitlab-agent/v18/internal/module/agent_registrar/rpc"
	gomock "go.uber.org/mock/gomock"
	grpc "google.golang.org/grpc"
)

// MockAgentRegistrarClient is a mock of AgentRegistrarClient interface.
type MockAgentRegistrarClient struct {
	ctrl     *gomock.Controller
	recorder *MockAgentRegistrarClientMockRecorder
	isgomock struct{}
}

// MockAgentRegistrarClientMockRecorder is the mock recorder for MockAgentRegistrarClient.
type MockAgentRegistrarClientMockRecorder struct {
	mock *MockAgentRegistrarClient
}

// NewMockAgentRegistrarClient creates a new mock instance.
func NewMockAgentRegistrarClient(ctrl *gomock.Controller) *MockAgentRegistrarClient {
	mock := &MockAgentRegistrarClient{ctrl: ctrl}
	mock.recorder = &MockAgentRegistrarClientMockRecorder{mock}
	return mock
}

// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockAgentRegistrarClient) EXPECT() *MockAgentRegistrarClientMockRecorder {
	return m.recorder
}

// Register mocks base method.
func (m *MockAgentRegistrarClient) Register(ctx context.Context, in *rpc.RegisterRequest, opts ...grpc.CallOption) (*rpc.RegisterResponse, error) {
	m.ctrl.T.Helper()
	varargs := []any{ctx, in}
	for _, a := range opts {
		varargs = append(varargs, a)
	}
	ret := m.ctrl.Call(m, "Register", varargs...)
	ret0, _ := ret[0].(*rpc.RegisterResponse)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// Register indicates an expected call of Register.
func (mr *MockAgentRegistrarClientMockRecorder) Register(ctx, in any, opts ...any) *MockAgentRegistrarClientRegisterCall {
	mr.mock.ctrl.T.Helper()
	varargs := append([]any{ctx, in}, opts...)
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Register", reflect.TypeOf((*MockAgentRegistrarClient)(nil).Register), varargs...)
	return &MockAgentRegistrarClientRegisterCall{Call: call}
}

// MockAgentRegistrarClientRegisterCall wrap *gomock.Call
type MockAgentRegistrarClientRegisterCall struct {
	*gomock.Call
}

// Return rewrite *gomock.Call.Return
func (c *MockAgentRegistrarClientRegisterCall) Return(arg0 *rpc.RegisterResponse, arg1 error) *MockAgentRegistrarClientRegisterCall {
	c.Call = c.Call.Return(arg0, arg1)
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockAgentRegistrarClientRegisterCall) Do(f func(context.Context, *rpc.RegisterRequest, ...grpc.CallOption) (*rpc.RegisterResponse, error)) *MockAgentRegistrarClientRegisterCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockAgentRegistrarClientRegisterCall) DoAndReturn(f func(context.Context, *rpc.RegisterRequest, ...grpc.CallOption) (*rpc.RegisterResponse, error)) *MockAgentRegistrarClientRegisterCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}

// Unregister mocks base method.
func (m *MockAgentRegistrarClient) Unregister(ctx context.Context, in *rpc.UnregisterRequest, opts ...grpc.CallOption) (*rpc.UnregisterResponse, error) {
	m.ctrl.T.Helper()
	varargs := []any{ctx, in}
	for _, a := range opts {
		varargs = append(varargs, a)
	}
	ret := m.ctrl.Call(m, "Unregister", varargs...)
	ret0, _ := ret[0].(*rpc.UnregisterResponse)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// Unregister indicates an expected call of Unregister.
func (mr *MockAgentRegistrarClientMockRecorder) Unregister(ctx, in any, opts ...any) *MockAgentRegistrarClientUnregisterCall {
	mr.mock.ctrl.T.Helper()
	varargs := append([]any{ctx, in}, opts...)
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Unregister", reflect.TypeOf((*MockAgentRegistrarClient)(nil).Unregister), varargs...)
	return &MockAgentRegistrarClientUnregisterCall{Call: call}
}

// MockAgentRegistrarClientUnregisterCall wrap *gomock.Call
type MockAgentRegistrarClientUnregisterCall struct {
	*gomock.Call
}

// Return rewrite *gomock.Call.Return
func (c *MockAgentRegistrarClientUnregisterCall) Return(arg0 *rpc.UnregisterResponse, arg1 error) *MockAgentRegistrarClientUnregisterCall {
	c.Call = c.Call.Return(arg0, arg1)
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockAgentRegistrarClientUnregisterCall) Do(f func(context.Context, *rpc.UnregisterRequest, ...grpc.CallOption) (*rpc.UnregisterResponse, error)) *MockAgentRegistrarClientUnregisterCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockAgentRegistrarClientUnregisterCall) DoAndReturn(f func(context.Context, *rpc.UnregisterRequest, ...grpc.CallOption) (*rpc.UnregisterResponse, error)) *MockAgentRegistrarClientUnregisterCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}
