// Code generated by MockGen. DO NOT EDIT.
// Source: github.com/tidbcloud/aisupport/packages/sdk-go/infra/config/loader (interfaces: ConfigurationSource)
//
// Generated by this command:
//
//	mockgen -destination config_loader_mock.go -package=loader github.com/tidbcloud/aisupport/packages/sdk-go/infra/config/loader ConfigurationSource
//

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

import (
	context "context"
	reflect "reflect"

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

// MockConfigurationSource is a mock of ConfigurationSource interface.
type MockConfigurationSource[T any] struct {
	ctrl     *gomock.Controller
	recorder *MockConfigurationSourceMockRecorder[T]
	isgomock struct{}
}

// MockConfigurationSourceMockRecorder is the mock recorder for MockConfigurationSource.
type MockConfigurationSourceMockRecorder[T any] struct {
	mock *MockConfigurationSource[T]
}

// NewMockConfigurationSource creates a new mock instance.
func NewMockConfigurationSource[T any](ctrl *gomock.Controller) *MockConfigurationSource[T] {
	mock := &MockConfigurationSource[T]{ctrl: ctrl}
	mock.recorder = &MockConfigurationSourceMockRecorder[T]{mock}
	return mock
}

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

// Load mocks base method.
func (m *MockConfigurationSource[T]) Load(ctx context.Context, pre *T) (*T, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Load", ctx, pre)
	ret0, _ := ret[0].(*T)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// Load indicates an expected call of Load.
func (mr *MockConfigurationSourceMockRecorder[T]) Load(ctx, pre any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Load", reflect.TypeOf((*MockConfigurationSource[T])(nil).Load), ctx, pre)
}
