// Code generated by mockery v2.53.4. DO NOT EDIT.

package store

import (
	filestorage "github.com/grafana/grafana/pkg/infra/filestorage"
	mock "github.com/stretchr/testify/mock"

	user "github.com/grafana/grafana/pkg/services/user"
)

// FakeSystemUsers is an autogenerated mock type for the SystemUsers type
type FakeSystemUsers struct {
	mock.Mock
}

// GetFilter provides a mock function with given fields: _a0
func (_m *FakeSystemUsers) GetFilter(_a0 *user.SignedInUser) (map[string]filestorage.PathFilter, error) {
	ret := _m.Called(_a0)

	if len(ret) == 0 {
		panic("no return value specified for GetFilter")
	}

	var r0 map[string]filestorage.PathFilter
	var r1 error
	if rf, ok := ret.Get(0).(func(*user.SignedInUser) (map[string]filestorage.PathFilter, error)); ok {
		return rf(_a0)
	}
	if rf, ok := ret.Get(0).(func(*user.SignedInUser) map[string]filestorage.PathFilter); ok {
		r0 = rf(_a0)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(map[string]filestorage.PathFilter)
		}
	}

	if rf, ok := ret.Get(1).(func(*user.SignedInUser) error); ok {
		r1 = rf(_a0)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// GetUser provides a mock function with given fields: userType, orgID
func (_m *FakeSystemUsers) GetUser(userType SystemUserType, orgID int64) (*user.SignedInUser, error) {
	ret := _m.Called(userType, orgID)

	if len(ret) == 0 {
		panic("no return value specified for GetUser")
	}

	var r0 *user.SignedInUser
	var r1 error
	if rf, ok := ret.Get(0).(func(SystemUserType, int64) (*user.SignedInUser, error)); ok {
		return rf(userType, orgID)
	}
	if rf, ok := ret.Get(0).(func(SystemUserType, int64) *user.SignedInUser); ok {
		r0 = rf(userType, orgID)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*user.SignedInUser)
		}
	}

	if rf, ok := ret.Get(1).(func(SystemUserType, int64) error); ok {
		r1 = rf(userType, orgID)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// RegisterUser provides a mock function with given fields: userType, filterFn
func (_m *FakeSystemUsers) RegisterUser(userType SystemUserType, filterFn func() map[string]filestorage.PathFilter) {
	_m.Called(userType, filterFn)
}

// NewFakeSystemUsers creates a new instance of FakeSystemUsers. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.
// The first argument is typically a *testing.T value.
func NewFakeSystemUsers(t interface {
	mock.TestingT
	Cleanup(func())
}) *FakeSystemUsers {
	mock := &FakeSystemUsers{}
	mock.Mock.Test(t)

	t.Cleanup(func() { mock.AssertExpectations(t) })

	return mock
}
