// Code generated by MockGen. DO NOT EDIT.
// Source: ./pkg/permission/domain/repository/role_permission.go
//
// Generated by this command:
//
//	mockgen -source=./pkg/permission/domain/repository/role_permission.go -destination=./pkg/permission/mock/repository/role_permission.go -package=mock
//

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

import (
	entity "backend/pkg/permission/domain/entity"
	context "context"
	reflect "reflect"

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

// MockRolePermissionRepository is a mock of RolePermissionRepository interface.
type MockRolePermissionRepository struct {
	ctrl     *gomock.Controller
	recorder *MockRolePermissionRepositoryMockRecorder
	isgomock struct{}
}

// MockRolePermissionRepositoryMockRecorder is the mock recorder for MockRolePermissionRepository.
type MockRolePermissionRepositoryMockRecorder struct {
	mock *MockRolePermissionRepository
}

// NewMockRolePermissionRepository creates a new mock instance.
func NewMockRolePermissionRepository(ctrl *gomock.Controller) *MockRolePermissionRepository {
	mock := &MockRolePermissionRepository{ctrl: ctrl}
	mock.recorder = &MockRolePermissionRepositoryMockRecorder{mock}
	return mock
}

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

// Create mocks base method.
func (m *MockRolePermissionRepository) Create(ctx context.Context, roleID int64, permissionIDs []int64) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Create", ctx, roleID, permissionIDs)
	ret0, _ := ret[0].(error)
	return ret0
}

// Create indicates an expected call of Create.
func (mr *MockRolePermissionRepositoryMockRecorder) Create(ctx, roleID, permissionIDs any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Create", reflect.TypeOf((*MockRolePermissionRepository)(nil).Create), ctx, roleID, permissionIDs)
}

// Delete mocks base method.
func (m *MockRolePermissionRepository) Delete(ctx context.Context, roleID int64) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Delete", ctx, roleID)
	ret0, _ := ret[0].(error)
	return ret0
}

// Delete indicates an expected call of Delete.
func (mr *MockRolePermissionRepositoryMockRecorder) Delete(ctx, roleID any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Delete", reflect.TypeOf((*MockRolePermissionRepository)(nil).Delete), ctx, roleID)
}

// GetByPermissionIDs mocks base method.
func (m *MockRolePermissionRepository) GetByPermissionIDs(ctx context.Context, permissionIDs []int64) ([]*entity.RolePermission, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetByPermissionIDs", ctx, permissionIDs)
	ret0, _ := ret[0].([]*entity.RolePermission)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetByPermissionIDs indicates an expected call of GetByPermissionIDs.
func (mr *MockRolePermissionRepositoryMockRecorder) GetByPermissionIDs(ctx, permissionIDs any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetByPermissionIDs", reflect.TypeOf((*MockRolePermissionRepository)(nil).GetByPermissionIDs), ctx, permissionIDs)
}

// GetByRoleID mocks base method.
func (m *MockRolePermissionRepository) GetByRoleID(ctx context.Context, roleID int64) ([]*entity.RolePermission, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetByRoleID", ctx, roleID)
	ret0, _ := ret[0].([]*entity.RolePermission)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetByRoleID indicates an expected call of GetByRoleID.
func (mr *MockRolePermissionRepositoryMockRecorder) GetByRoleID(ctx, roleID any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetByRoleID", reflect.TypeOf((*MockRolePermissionRepository)(nil).GetByRoleID), ctx, roleID)
}

// GetByRoleIDs mocks base method.
func (m *MockRolePermissionRepository) GetByRoleIDs(ctx context.Context, roleIDs []int64) (map[int64][]*entity.RolePermission, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetByRoleIDs", ctx, roleIDs)
	ret0, _ := ret[0].(map[int64][]*entity.RolePermission)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetByRoleIDs indicates an expected call of GetByRoleIDs.
func (mr *MockRolePermissionRepositoryMockRecorder) GetByRoleIDs(ctx, roleIDs any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetByRoleIDs", reflect.TypeOf((*MockRolePermissionRepository)(nil).GetByRoleIDs), ctx, roleIDs)
}

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

// GetRolesByPermission indicates an expected call of GetRolesByPermission.
func (mr *MockRolePermissionRepositoryMockRecorder) GetRolesByPermission(ctx, permissionID any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetRolesByPermission", reflect.TypeOf((*MockRolePermissionRepository)(nil).GetRolesByPermission), ctx, permissionID)
}

// Update mocks base method.
func (m *MockRolePermissionRepository) Update(ctx context.Context, roleID int64, permissionIDs []int64) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Update", ctx, roleID, permissionIDs)
	ret0, _ := ret[0].(error)
	return ret0
}

// Update indicates an expected call of Update.
func (mr *MockRolePermissionRepositoryMockRecorder) Update(ctx, roleID, permissionIDs any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Update", reflect.TypeOf((*MockRolePermissionRepository)(nil).Update), ctx, roleID, permissionIDs)
}
