// Code generated by MockGen. DO NOT EDIT.
// Source: ../rpc/rpc_grpc.pb.go
//
// Generated by this command:
//
//	mockgen -typed -source ../rpc/rpc_grpc.pb.go -destination mock_rpc_for_test.go -package agent
//

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

import (
	context "context"
	reflect "reflect"

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

// MockGitLabFluxClient is a mock of GitLabFluxClient interface.
type MockGitLabFluxClient struct {
	ctrl     *gomock.Controller
	recorder *MockGitLabFluxClientMockRecorder
	isgomock struct{}
}

// MockGitLabFluxClientMockRecorder is the mock recorder for MockGitLabFluxClient.
type MockGitLabFluxClientMockRecorder struct {
	mock *MockGitLabFluxClient
}

// NewMockGitLabFluxClient creates a new mock instance.
func NewMockGitLabFluxClient(ctrl *gomock.Controller) *MockGitLabFluxClient {
	mock := &MockGitLabFluxClient{ctrl: ctrl}
	mock.recorder = &MockGitLabFluxClientMockRecorder{mock}
	return mock
}

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

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

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

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

// Return rewrite *gomock.Call.Return
func (c *MockGitLabFluxClientReconcileProjectsCall) Return(arg0 grpc.ServerStreamingClient[rpc.ReconcileProjectsResponse], arg1 error) *MockGitLabFluxClientReconcileProjectsCall {
	c.Call = c.Call.Return(arg0, arg1)
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockGitLabFluxClientReconcileProjectsCall) Do(f func(context.Context, *rpc.ReconcileProjectsRequest, ...grpc.CallOption) (grpc.ServerStreamingClient[rpc.ReconcileProjectsResponse], error)) *MockGitLabFluxClientReconcileProjectsCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockGitLabFluxClientReconcileProjectsCall) DoAndReturn(f func(context.Context, *rpc.ReconcileProjectsRequest, ...grpc.CallOption) (grpc.ServerStreamingClient[rpc.ReconcileProjectsResponse], error)) *MockGitLabFluxClientReconcileProjectsCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}

// MockGitLabFluxServer is a mock of GitLabFluxServer interface.
type MockGitLabFluxServer struct {
	ctrl     *gomock.Controller
	recorder *MockGitLabFluxServerMockRecorder
	isgomock struct{}
}

// MockGitLabFluxServerMockRecorder is the mock recorder for MockGitLabFluxServer.
type MockGitLabFluxServerMockRecorder struct {
	mock *MockGitLabFluxServer
}

// NewMockGitLabFluxServer creates a new mock instance.
func NewMockGitLabFluxServer(ctrl *gomock.Controller) *MockGitLabFluxServer {
	mock := &MockGitLabFluxServer{ctrl: ctrl}
	mock.recorder = &MockGitLabFluxServerMockRecorder{mock}
	return mock
}

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

// ReconcileProjects mocks base method.
func (m *MockGitLabFluxServer) ReconcileProjects(arg0 *rpc.ReconcileProjectsRequest, arg1 grpc.ServerStreamingServer[rpc.ReconcileProjectsResponse]) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ReconcileProjects", arg0, arg1)
	ret0, _ := ret[0].(error)
	return ret0
}

// ReconcileProjects indicates an expected call of ReconcileProjects.
func (mr *MockGitLabFluxServerMockRecorder) ReconcileProjects(arg0, arg1 any) *MockGitLabFluxServerReconcileProjectsCall {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReconcileProjects", reflect.TypeOf((*MockGitLabFluxServer)(nil).ReconcileProjects), arg0, arg1)
	return &MockGitLabFluxServerReconcileProjectsCall{Call: call}
}

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

// Return rewrite *gomock.Call.Return
func (c *MockGitLabFluxServerReconcileProjectsCall) Return(arg0 error) *MockGitLabFluxServerReconcileProjectsCall {
	c.Call = c.Call.Return(arg0)
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockGitLabFluxServerReconcileProjectsCall) Do(f func(*rpc.ReconcileProjectsRequest, grpc.ServerStreamingServer[rpc.ReconcileProjectsResponse]) error) *MockGitLabFluxServerReconcileProjectsCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockGitLabFluxServerReconcileProjectsCall) DoAndReturn(f func(*rpc.ReconcileProjectsRequest, grpc.ServerStreamingServer[rpc.ReconcileProjectsResponse]) error) *MockGitLabFluxServerReconcileProjectsCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}

// mustEmbedUnimplementedGitLabFluxServer mocks base method.
func (m *MockGitLabFluxServer) mustEmbedUnimplementedGitLabFluxServer() {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "mustEmbedUnimplementedGitLabFluxServer")
}

// mustEmbedUnimplementedGitLabFluxServer indicates an expected call of mustEmbedUnimplementedGitLabFluxServer.
func (mr *MockGitLabFluxServerMockRecorder) mustEmbedUnimplementedGitLabFluxServer() *MockGitLabFluxServermustEmbedUnimplementedGitLabFluxServerCall {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "mustEmbedUnimplementedGitLabFluxServer", reflect.TypeOf((*MockGitLabFluxServer)(nil).mustEmbedUnimplementedGitLabFluxServer))
	return &MockGitLabFluxServermustEmbedUnimplementedGitLabFluxServerCall{Call: call}
}

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

// Return rewrite *gomock.Call.Return
func (c *MockGitLabFluxServermustEmbedUnimplementedGitLabFluxServerCall) Return() *MockGitLabFluxServermustEmbedUnimplementedGitLabFluxServerCall {
	c.Call = c.Call.Return()
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockGitLabFluxServermustEmbedUnimplementedGitLabFluxServerCall) Do(f func()) *MockGitLabFluxServermustEmbedUnimplementedGitLabFluxServerCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockGitLabFluxServermustEmbedUnimplementedGitLabFluxServerCall) DoAndReturn(f func()) *MockGitLabFluxServermustEmbedUnimplementedGitLabFluxServerCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}

// MockUnsafeGitLabFluxServer is a mock of UnsafeGitLabFluxServer interface.
type MockUnsafeGitLabFluxServer struct {
	ctrl     *gomock.Controller
	recorder *MockUnsafeGitLabFluxServerMockRecorder
	isgomock struct{}
}

// MockUnsafeGitLabFluxServerMockRecorder is the mock recorder for MockUnsafeGitLabFluxServer.
type MockUnsafeGitLabFluxServerMockRecorder struct {
	mock *MockUnsafeGitLabFluxServer
}

// NewMockUnsafeGitLabFluxServer creates a new mock instance.
func NewMockUnsafeGitLabFluxServer(ctrl *gomock.Controller) *MockUnsafeGitLabFluxServer {
	mock := &MockUnsafeGitLabFluxServer{ctrl: ctrl}
	mock.recorder = &MockUnsafeGitLabFluxServerMockRecorder{mock}
	return mock
}

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

// mustEmbedUnimplementedGitLabFluxServer mocks base method.
func (m *MockUnsafeGitLabFluxServer) mustEmbedUnimplementedGitLabFluxServer() {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "mustEmbedUnimplementedGitLabFluxServer")
}

// mustEmbedUnimplementedGitLabFluxServer indicates an expected call of mustEmbedUnimplementedGitLabFluxServer.
func (mr *MockUnsafeGitLabFluxServerMockRecorder) mustEmbedUnimplementedGitLabFluxServer() *MockUnsafeGitLabFluxServermustEmbedUnimplementedGitLabFluxServerCall {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "mustEmbedUnimplementedGitLabFluxServer", reflect.TypeOf((*MockUnsafeGitLabFluxServer)(nil).mustEmbedUnimplementedGitLabFluxServer))
	return &MockUnsafeGitLabFluxServermustEmbedUnimplementedGitLabFluxServerCall{Call: call}
}

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

// Return rewrite *gomock.Call.Return
func (c *MockUnsafeGitLabFluxServermustEmbedUnimplementedGitLabFluxServerCall) Return() *MockUnsafeGitLabFluxServermustEmbedUnimplementedGitLabFluxServerCall {
	c.Call = c.Call.Return()
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockUnsafeGitLabFluxServermustEmbedUnimplementedGitLabFluxServerCall) Do(f func()) *MockUnsafeGitLabFluxServermustEmbedUnimplementedGitLabFluxServerCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockUnsafeGitLabFluxServermustEmbedUnimplementedGitLabFluxServerCall) DoAndReturn(f func()) *MockUnsafeGitLabFluxServermustEmbedUnimplementedGitLabFluxServerCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}
