// Code generated by MockGen. DO NOT EDIT.
// Source: state_rebuilder.go
//
// Generated by this command:
//
//	mockgen -package execution -source state_rebuilder.go -destination state_rebuilder_mock.go -self_package github.com/uber/cadence/service/history/execution
//

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

import (
	context "context"
	reflect "reflect"
	time "time"

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

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

// MockStateRebuilder is a mock of StateRebuilder interface.
type MockStateRebuilder struct {
	ctrl     *gomock.Controller
	recorder *MockStateRebuilderMockRecorder
	isgomock struct{}
}

// MockStateRebuilderMockRecorder is the mock recorder for MockStateRebuilder.
type MockStateRebuilderMockRecorder struct {
	mock *MockStateRebuilder
}

// NewMockStateRebuilder creates a new mock instance.
func NewMockStateRebuilder(ctrl *gomock.Controller) *MockStateRebuilder {
	mock := &MockStateRebuilder{ctrl: ctrl}
	mock.recorder = &MockStateRebuilderMockRecorder{mock}
	return mock
}

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

// Rebuild mocks base method.
func (m *MockStateRebuilder) Rebuild(ctx context.Context, now time.Time, baseWorkflowIdentifier definition.WorkflowIdentifier, baseBranchToken []byte, baseLastEventID, baseLastEventVersion int64, targetWorkflowIdentifier definition.WorkflowIdentifier, targetBranchFn func() ([]byte, error), requestID string) (MutableState, int64, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Rebuild", ctx, now, baseWorkflowIdentifier, baseBranchToken, baseLastEventID, baseLastEventVersion, targetWorkflowIdentifier, targetBranchFn, requestID)
	ret0, _ := ret[0].(MutableState)
	ret1, _ := ret[1].(int64)
	ret2, _ := ret[2].(error)
	return ret0, ret1, ret2
}

// Rebuild indicates an expected call of Rebuild.
func (mr *MockStateRebuilderMockRecorder) Rebuild(ctx, now, baseWorkflowIdentifier, baseBranchToken, baseLastEventID, baseLastEventVersion, targetWorkflowIdentifier, targetBranchFn, requestID any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Rebuild", reflect.TypeOf((*MockStateRebuilder)(nil).Rebuild), ctx, now, baseWorkflowIdentifier, baseBranchToken, baseLastEventID, baseLastEventVersion, targetWorkflowIdentifier, targetBranchFn, requestID)
}
