// Code generated by MockGen. DO NOT EDIT.
// Source: client.go
//
// Generated by this command:
//
//	mockgen -package executorclient -source client.go -destination interface_mock.go . ShardProcessorFactory,ShardProcessor,Executor
//

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

import (
	context "context"
	reflect "reflect"

	gomock "go.uber.org/mock/gomock"

	types "github.com/uber/cadence/common/types"
)

// MockShardProcessor is a mock of ShardProcessor interface.
type MockShardProcessor struct {
	ctrl     *gomock.Controller
	recorder *MockShardProcessorMockRecorder
	isgomock struct{}
}

// MockShardProcessorMockRecorder is the mock recorder for MockShardProcessor.
type MockShardProcessorMockRecorder struct {
	mock *MockShardProcessor
}

// NewMockShardProcessor creates a new mock instance.
func NewMockShardProcessor(ctrl *gomock.Controller) *MockShardProcessor {
	mock := &MockShardProcessor{ctrl: ctrl}
	mock.recorder = &MockShardProcessorMockRecorder{mock}
	return mock
}

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

// GetShardReport mocks base method.
func (m *MockShardProcessor) GetShardReport() ShardReport {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetShardReport")
	ret0, _ := ret[0].(ShardReport)
	return ret0
}

// GetShardReport indicates an expected call of GetShardReport.
func (mr *MockShardProcessorMockRecorder) GetShardReport() *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetShardReport", reflect.TypeOf((*MockShardProcessor)(nil).GetShardReport))
}

// Start mocks base method.
func (m *MockShardProcessor) Start(ctx context.Context) {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "Start", ctx)
}

// Start indicates an expected call of Start.
func (mr *MockShardProcessorMockRecorder) Start(ctx any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Start", reflect.TypeOf((*MockShardProcessor)(nil).Start), ctx)
}

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

// Stop indicates an expected call of Stop.
func (mr *MockShardProcessorMockRecorder) Stop() *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Stop", reflect.TypeOf((*MockShardProcessor)(nil).Stop))
}

// MockShardProcessorFactory is a mock of ShardProcessorFactory interface.
type MockShardProcessorFactory[SP ShardProcessor] struct {
	ctrl     *gomock.Controller
	recorder *MockShardProcessorFactoryMockRecorder[SP]
	isgomock struct{}
}

// MockShardProcessorFactoryMockRecorder is the mock recorder for MockShardProcessorFactory.
type MockShardProcessorFactoryMockRecorder[SP ShardProcessor] struct {
	mock *MockShardProcessorFactory[SP]
}

// NewMockShardProcessorFactory creates a new mock instance.
func NewMockShardProcessorFactory[SP ShardProcessor](ctrl *gomock.Controller) *MockShardProcessorFactory[SP] {
	mock := &MockShardProcessorFactory[SP]{ctrl: ctrl}
	mock.recorder = &MockShardProcessorFactoryMockRecorder[SP]{mock}
	return mock
}

// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockShardProcessorFactory[SP]) EXPECT() *MockShardProcessorFactoryMockRecorder[SP] {
	return m.recorder
}

// NewShardProcessor mocks base method.
func (m *MockShardProcessorFactory[SP]) NewShardProcessor(shardID string) (SP, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "NewShardProcessor", shardID)
	ret0, _ := ret[0].(SP)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// NewShardProcessor indicates an expected call of NewShardProcessor.
func (mr *MockShardProcessorFactoryMockRecorder[SP]) NewShardProcessor(shardID any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "NewShardProcessor", reflect.TypeOf((*MockShardProcessorFactory[SP])(nil).NewShardProcessor), shardID)
}

// MockExecutor is a mock of Executor interface.
type MockExecutor[SP ShardProcessor] struct {
	ctrl     *gomock.Controller
	recorder *MockExecutorMockRecorder[SP]
	isgomock struct{}
}

// MockExecutorMockRecorder is the mock recorder for MockExecutor.
type MockExecutorMockRecorder[SP ShardProcessor] struct {
	mock *MockExecutor[SP]
}

// NewMockExecutor creates a new mock instance.
func NewMockExecutor[SP ShardProcessor](ctrl *gomock.Controller) *MockExecutor[SP] {
	mock := &MockExecutor[SP]{ctrl: ctrl}
	mock.recorder = &MockExecutorMockRecorder[SP]{mock}
	return mock
}

// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockExecutor[SP]) EXPECT() *MockExecutorMockRecorder[SP] {
	return m.recorder
}

// AssignShardsFromLocalLogic mocks base method.
func (m *MockExecutor[SP]) AssignShardsFromLocalLogic(ctx context.Context, shardAssignment map[string]*types.ShardAssignment) {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "AssignShardsFromLocalLogic", ctx, shardAssignment)
}

// AssignShardsFromLocalLogic indicates an expected call of AssignShardsFromLocalLogic.
func (mr *MockExecutorMockRecorder[SP]) AssignShardsFromLocalLogic(ctx, shardAssignment any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AssignShardsFromLocalLogic", reflect.TypeOf((*MockExecutor[SP])(nil).AssignShardsFromLocalLogic), ctx, shardAssignment)
}

// GetShardProcess mocks base method.
func (m *MockExecutor[SP]) GetShardProcess(shardID string) (SP, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetShardProcess", shardID)
	ret0, _ := ret[0].(SP)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetShardProcess indicates an expected call of GetShardProcess.
func (mr *MockExecutorMockRecorder[SP]) GetShardProcess(shardID any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetShardProcess", reflect.TypeOf((*MockExecutor[SP])(nil).GetShardProcess), shardID)
}

// Start mocks base method.
func (m *MockExecutor[SP]) Start(ctx context.Context) {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "Start", ctx)
}

// Start indicates an expected call of Start.
func (mr *MockExecutorMockRecorder[SP]) Start(ctx any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Start", reflect.TypeOf((*MockExecutor[SP])(nil).Start), ctx)
}

// Stop mocks base method.
func (m *MockExecutor[SP]) Stop() {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "Stop")
}

// Stop indicates an expected call of Stop.
func (mr *MockExecutorMockRecorder[SP]) Stop() *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Stop", reflect.TypeOf((*MockExecutor[SP])(nil).Stop))
}
