// Code generated by MockGen. DO NOT EDIT.
// Source: go.abhg.dev/gs/internal/handler/track (interfaces: downstackDiscoveryInteraction)
//
// Generated by this command:
//
//	mockgen -destination=downstack_mocks_test.go -package=track -mock_names=downstackDiscoveryInteraction=MockDownstackDiscoveryInteraction -typed . downstackDiscoveryInteraction
//

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

import (
	reflect "reflect"

	git "go.abhg.dev/gs/internal/git"
	gomock "go.uber.org/mock/gomock"
)

// MockDownstackDiscoveryInteraction is a mock of downstackDiscoveryInteraction interface.
type MockDownstackDiscoveryInteraction struct {
	ctrl     *gomock.Controller
	recorder *MockDownstackDiscoveryInteractionMockRecorder
	isgomock struct{}
}

// MockDownstackDiscoveryInteractionMockRecorder is the mock recorder for MockDownstackDiscoveryInteraction.
type MockDownstackDiscoveryInteractionMockRecorder struct {
	mock *MockDownstackDiscoveryInteraction
}

// NewMockDownstackDiscoveryInteraction creates a new mock instance.
func NewMockDownstackDiscoveryInteraction(ctrl *gomock.Controller) *MockDownstackDiscoveryInteraction {
	mock := &MockDownstackDiscoveryInteraction{ctrl: ctrl}
	mock.recorder = &MockDownstackDiscoveryInteractionMockRecorder{mock}
	return mock
}

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

// SelectBaseBranch mocks base method.
func (m *MockDownstackDiscoveryInteraction) SelectBaseBranch(branchName string, commitHash git.Hash, candidateBranches, selectedSoFar []string) (string, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "SelectBaseBranch", branchName, commitHash, candidateBranches, selectedSoFar)
	ret0, _ := ret[0].(string)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// SelectBaseBranch indicates an expected call of SelectBaseBranch.
func (mr *MockDownstackDiscoveryInteractionMockRecorder) SelectBaseBranch(branchName, commitHash, candidateBranches, selectedSoFar any) *MockDownstackDiscoveryInteractionSelectBaseBranchCall {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SelectBaseBranch", reflect.TypeOf((*MockDownstackDiscoveryInteraction)(nil).SelectBaseBranch), branchName, commitHash, candidateBranches, selectedSoFar)
	return &MockDownstackDiscoveryInteractionSelectBaseBranchCall{Call: call}
}

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

// Return rewrite *gomock.Call.Return
func (c *MockDownstackDiscoveryInteractionSelectBaseBranchCall) Return(arg0 string, arg1 error) *MockDownstackDiscoveryInteractionSelectBaseBranchCall {
	c.Call = c.Call.Return(arg0, arg1)
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockDownstackDiscoveryInteractionSelectBaseBranchCall) Do(f func(string, git.Hash, []string, []string) (string, error)) *MockDownstackDiscoveryInteractionSelectBaseBranchCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockDownstackDiscoveryInteractionSelectBaseBranchCall) DoAndReturn(f func(string, git.Hash, []string, []string) (string, error)) *MockDownstackDiscoveryInteractionSelectBaseBranchCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}
