// Code generated by MockGen. DO NOT EDIT.
// Source: rental.go

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

import (
	uuid "github.com/gofrs/uuid"
	gomock "github.com/golang/mock/gomock"
	reflect "reflect"
)

// 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
}

// IsBookAvailable mocks base method
func (m *MockStorage) IsBookAvailable(title string) (bool, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "IsBookAvailable", title)
	ret0, _ := ret[0].(bool)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// IsBookAvailable indicates an expected call of IsBookAvailable
func (mr *MockStorageMockRecorder) IsBookAvailable(title interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IsBookAvailable", reflect.TypeOf((*MockStorage)(nil).IsBookAvailable), title)
}

// RenterAlreadyCheckedOut mocks base method
func (m *MockStorage) RenterAlreadyCheckedOut(renterId uuid.UUID, title string) (bool, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "RenterAlreadyCheckedOut", renterId, title)
	ret0, _ := ret[0].(bool)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// RenterAlreadyCheckedOut indicates an expected call of RenterAlreadyCheckedOut
func (mr *MockStorageMockRecorder) RenterAlreadyCheckedOut(renterId, title interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RenterAlreadyCheckedOut", reflect.TypeOf((*MockStorage)(nil).RenterAlreadyCheckedOut), renterId, title)
}

// CheckoutBook mocks base method
func (m *MockStorage) CheckoutBook(renterId uuid.UUID, title string) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "CheckoutBook", renterId, title)
	ret0, _ := ret[0].(error)
	return ret0
}

// CheckoutBook indicates an expected call of CheckoutBook
func (mr *MockStorageMockRecorder) CheckoutBook(renterId, title interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CheckoutBook", reflect.TypeOf((*MockStorage)(nil).CheckoutBook), renterId, title)
}

// ReturnBook mocks base method
func (m *MockStorage) ReturnBook(renterId uuid.UUID, title string) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ReturnBook", renterId, title)
	ret0, _ := ret[0].(error)
	return ret0
}

// ReturnBook indicates an expected call of ReturnBook
func (mr *MockStorageMockRecorder) ReturnBook(renterId, title interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReturnBook", reflect.TypeOf((*MockStorage)(nil).ReturnBook), renterId, title)
}

// MockService is a mock of Service interface
type MockService struct {
	ctrl     *gomock.Controller
	recorder *MockServiceMockRecorder
}

// MockServiceMockRecorder is the mock recorder for MockService
type MockServiceMockRecorder struct {
	mock *MockService
}

// NewMockService creates a new mock instance
func NewMockService(ctrl *gomock.Controller) *MockService {
	mock := &MockService{ctrl: ctrl}
	mock.recorder = &MockServiceMockRecorder{mock}
	return mock
}

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

// IsBookAvailable mocks base method
func (m *MockService) IsBookAvailable(title string) (bool, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "IsBookAvailable", title)
	ret0, _ := ret[0].(bool)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// IsBookAvailable indicates an expected call of IsBookAvailable
func (mr *MockServiceMockRecorder) IsBookAvailable(title interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IsBookAvailable", reflect.TypeOf((*MockService)(nil).IsBookAvailable), title)
}

// CheckoutBook mocks base method
func (m *MockService) CheckoutBook(renterId uuid.UUID, title string) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "CheckoutBook", renterId, title)
	ret0, _ := ret[0].(error)
	return ret0
}

// CheckoutBook indicates an expected call of CheckoutBook
func (mr *MockServiceMockRecorder) CheckoutBook(renterId, title interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CheckoutBook", reflect.TypeOf((*MockService)(nil).CheckoutBook), renterId, title)
}

// ReturnBook mocks base method
func (m *MockService) ReturnBook(renterId uuid.UUID, title string) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "ReturnBook", renterId, title)
	ret0, _ := ret[0].(error)
	return ret0
}

// ReturnBook indicates an expected call of ReturnBook
func (mr *MockServiceMockRecorder) ReturnBook(renterId, title interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ReturnBook", reflect.TypeOf((*MockService)(nil).ReturnBook), renterId, title)
}
