// Code generated by MockGen. DO NOT EDIT.
// Source: github.com/kardolus/chatgpt-cli/agent/tools (interfaces: Shell)

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

import (
	context "context"
	reflect "reflect"

	gomock "github.com/golang/mock/gomock"
	types "github.com/kardolus/chatgpt-cli/agent/types"
)

// MockShell is a mock of Shell interface.
type MockShell struct {
	ctrl     *gomock.Controller
	recorder *MockShellMockRecorder
}

// MockShellMockRecorder is the mock recorder for MockShell.
type MockShellMockRecorder struct {
	mock *MockShell
}

// NewMockShell creates a new mock instance.
func NewMockShell(ctrl *gomock.Controller) *MockShell {
	mock := &MockShell{ctrl: ctrl}
	mock.recorder = &MockShellMockRecorder{mock}
	return mock
}

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

// Run mocks base method.
func (m *MockShell) Run(arg0 context.Context, arg1, arg2 string, arg3 ...string) (types.Result, error) {
	m.ctrl.T.Helper()
	varargs := []interface{}{arg0, arg1, arg2}
	for _, a := range arg3 {
		varargs = append(varargs, a)
	}
	ret := m.ctrl.Call(m, "Run", varargs...)
	ret0, _ := ret[0].(types.Result)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// Run indicates an expected call of Run.
func (mr *MockShellMockRecorder) Run(arg0, arg1, arg2 interface{}, arg3 ...interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	varargs := append([]interface{}{arg0, arg1, arg2}, arg3...)
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Run", reflect.TypeOf((*MockShell)(nil).Run), varargs...)
}
