// Code generated by MockGen. DO NOT EDIT.
// Source: storage.go
//
// Generated by this command:
//
//	mockgen -source=storage.go -destination=mock/storage.go -package=mock
//

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

import (
	context "context"
	reflect "reflect"

	gomock "github.com/golang/mock/gomock"
	storage "github.com/pingcap-inc/clinic/pkg/ngm/storage"
)

// MockStorage is a mock of Storage interface.
type MockStorage struct {
	ctrl     *gomock.Controller
	recorder *MockStorageMockRecorder
}

// MockStorageMockRecorder is the mock recorder for MockStorage.
type MockStorageMockRecorder struct {
	mock *MockStorage
}

// NewMockStorage creates a new mock instance.
func NewMockStorage(ctrl *gomock.Controller) *MockStorage {
	mock := &MockStorage{ctrl: ctrl}
	mock.recorder = &MockStorageMockRecorder{mock}
	return mock
}

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

// Object mocks base method.
func (m *MockStorage) Object(ctx context.Context, bucket, key string) (*storage.Object, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Object", ctx, bucket, key)
	ret0, _ := ret[0].(*storage.Object)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// Object indicates an expected call of Object.
func (mr *MockStorageMockRecorder) Object(ctx, bucket, key any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Object", reflect.TypeOf((*MockStorage)(nil).Object), ctx, bucket, key)
}

// Objects mocks base method.
func (m *MockStorage) Objects(ctx context.Context, bucket, prefix string) ([]storage.ObjectMeta, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Objects", ctx, bucket, prefix)
	ret0, _ := ret[0].([]storage.ObjectMeta)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// Objects indicates an expected call of Objects.
func (mr *MockStorageMockRecorder) Objects(ctx, bucket, prefix any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Objects", reflect.TypeOf((*MockStorage)(nil).Objects), ctx, bucket, prefix)
}

// ObjectsCallback mocks base method.
func (m *MockStorage) ObjectsCallback(ctx context.Context, bucket, prefix string, callback func(storage.ObjectMeta) bool) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ObjectsCallback", ctx, bucket, prefix, callback)
	ret0, _ := ret[0].(error)
	return ret0
}

// ObjectsCallback indicates an expected call of ObjectsCallback.
func (mr *MockStorageMockRecorder) ObjectsCallback(ctx, bucket, prefix, callback any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ObjectsCallback", reflect.TypeOf((*MockStorage)(nil).ObjectsCallback), ctx, bucket, prefix, callback)
}

// ObjectsCallbackWithStartKey mocks base method.
func (m *MockStorage) ObjectsCallbackWithStartKey(ctx context.Context, bucket, prefix, startKey string, callback func(storage.ObjectMeta) bool) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ObjectsCallbackWithStartKey", ctx, bucket, prefix, startKey, callback)
	ret0, _ := ret[0].(error)
	return ret0
}

// ObjectsCallbackWithStartKey indicates an expected call of ObjectsCallbackWithStartKey.
func (mr *MockStorageMockRecorder) ObjectsCallbackWithStartKey(ctx, bucket, prefix, startKey, callback any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ObjectsCallbackWithStartKey", reflect.TypeOf((*MockStorage)(nil).ObjectsCallbackWithStartKey), ctx, bucket, prefix, startKey, callback)
}

// MockStorageFactory is a mock of StorageFactory interface.
type MockStorageFactory struct {
	ctrl     *gomock.Controller
	recorder *MockStorageFactoryMockRecorder
}

// MockStorageFactoryMockRecorder is the mock recorder for MockStorageFactory.
type MockStorageFactoryMockRecorder struct {
	mock *MockStorageFactory
}

// NewMockStorageFactory creates a new mock instance.
func NewMockStorageFactory(ctrl *gomock.Controller) *MockStorageFactory {
	mock := &MockStorageFactory{ctrl: ctrl}
	mock.recorder = &MockStorageFactoryMockRecorder{mock}
	return mock
}

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

// Storage mocks base method.
func (m *MockStorageFactory) Storage(ctx context.Context, provider, region string) (storage.Storage, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Storage", ctx, provider, region)
	ret0, _ := ret[0].(storage.Storage)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// Storage indicates an expected call of Storage.
func (mr *MockStorageFactoryMockRecorder) Storage(ctx, provider, region any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Storage", reflect.TypeOf((*MockStorageFactory)(nil).Storage), ctx, provider, region)
}
