// Code generated by MockGen. DO NOT EDIT.
// Source: openai.go
//
// Generated by this command:
//
//	mockgen -package cmpmock -source openai.go -destination ./cmpmock/openai_mock.go
//

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

import (
	context "context"
	reflect "reflect"

	openai "github.com/sashabaranov/go-openai"
	gomock "go.uber.org/mock/gomock"
)

// MockIOpenAI is a mock of IOpenAI interface.
type MockIOpenAI struct {
	ctrl     *gomock.Controller
	recorder *MockIOpenAIMockRecorder
	isgomock struct{}
}

// MockIOpenAIMockRecorder is the mock recorder for MockIOpenAI.
type MockIOpenAIMockRecorder struct {
	mock *MockIOpenAI
}

// NewMockIOpenAI creates a new mock instance.
func NewMockIOpenAI(ctrl *gomock.Controller) *MockIOpenAI {
	mock := &MockIOpenAI{ctrl: ctrl}
	mock.recorder = &MockIOpenAIMockRecorder{mock}
	return mock
}

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

// Chat mocks base method.
func (m *MockIOpenAI) Chat(ctx context.Context, userMsg, sysMsg string) (openai.ChatCompletionResponse, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Chat", ctx, userMsg, sysMsg)
	ret0, _ := ret[0].(openai.ChatCompletionResponse)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// Chat indicates an expected call of Chat.
func (mr *MockIOpenAIMockRecorder) Chat(ctx, userMsg, sysMsg any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Chat", reflect.TypeOf((*MockIOpenAI)(nil).Chat), ctx, userMsg, sysMsg)
}

// StreamChat mocks base method.
func (m *MockIOpenAI) StreamChat(ctx context.Context, userMsg, sysMsg string) (*openai.ChatCompletionStream, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "StreamChat", ctx, userMsg, sysMsg)
	ret0, _ := ret[0].(*openai.ChatCompletionStream)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// StreamChat indicates an expected call of StreamChat.
func (mr *MockIOpenAIMockRecorder) StreamChat(ctx, userMsg, sysMsg any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "StreamChat", reflect.TypeOf((*MockIOpenAI)(nil).StreamChat), ctx, userMsg, sysMsg)
}
