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

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

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

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

// MockPermissionUseCase is a mock of PermissionUseCase interface.
type MockPermissionUseCase struct {
	ctrl     *gomock.Controller
	recorder *MockPermissionUseCaseMockRecorder
	isgomock struct{}
}

// MockPermissionUseCaseMockRecorder is the mock recorder for MockPermissionUseCase.
type MockPermissionUseCaseMockRecorder struct {
	mock *MockPermissionUseCase
}

// NewMockPermissionUseCase creates a new mock instance.
func NewMockPermissionUseCase(ctrl *gomock.Controller) *MockPermissionUseCase {
	mock := &MockPermissionUseCase{ctrl: ctrl}
	mock.recorder = &MockPermissionUseCaseMockRecorder{mock}
	return mock
}

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

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

// ExpandPermissions indicates an expected call of ExpandPermissions.
func (mr *MockPermissionUseCaseMockRecorder) ExpandPermissions(ctx, permissions any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ExpandPermissions", reflect.TypeOf((*MockPermissionUseCase)(nil).ExpandPermissions), ctx, permissions)
}

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

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

// GetByHTTP mocks base method.
func (m *MockPermissionUseCase) GetByHTTP(ctx context.Context, path, method string) (*usecase.PermissionResponse, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetByHTTP", ctx, path, method)
	ret0, _ := ret[0].(*usecase.PermissionResponse)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetByHTTP indicates an expected call of GetByHTTP.
func (mr *MockPermissionUseCaseMockRecorder) GetByHTTP(ctx, path, method any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetByHTTP", reflect.TypeOf((*MockPermissionUseCase)(nil).GetByHTTP), ctx, path, method)
}

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

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

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

// GetUsersByPermission indicates an expected call of GetUsersByPermission.
func (mr *MockPermissionUseCaseMockRecorder) GetUsersByPermission(ctx, permissionNames any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUsersByPermission", reflect.TypeOf((*MockPermissionUseCase)(nil).GetUsersByPermission), ctx, permissionNames)
}
