// Code generated by go-mockgen 1.3.7; DO NOT EDIT.
//
// This file was generated by running `go-mockgen` at the root of this repository.
// To add additional mocks to this or another package, add a new entry to the
// mockgen.yaml file in the root of this repository.

package database

import "sync"

// MockLoginSourceFileStore is a mock implementation of the
// loginSourceFileStore interface (from the package
// gogs.io/gogs/internal/database) used for unit testing.
type MockLoginSourceFileStore struct {
	// SaveFunc is an instance of a mock function object controlling the
	// behavior of the method Save.
	SaveFunc *LoginSourceFileStoreSaveFunc
	// SetConfigFunc is an instance of a mock function object controlling
	// the behavior of the method SetConfig.
	SetConfigFunc *LoginSourceFileStoreSetConfigFunc
	// SetGeneralFunc is an instance of a mock function object controlling
	// the behavior of the method SetGeneral.
	SetGeneralFunc *LoginSourceFileStoreSetGeneralFunc
}

// NewMockLoginSourceFileStore creates a new mock of the
// loginSourceFileStore interface. All methods return zero values for all
// results, unless overwritten.
func NewMockLoginSourceFileStore() *MockLoginSourceFileStore {
	return &MockLoginSourceFileStore{
		SaveFunc: &LoginSourceFileStoreSaveFunc{
			defaultHook: func() (r0 error) {
				return
			},
		},
		SetConfigFunc: &LoginSourceFileStoreSetConfigFunc{
			defaultHook: func(interface{}) (r0 error) {
				return
			},
		},
		SetGeneralFunc: &LoginSourceFileStoreSetGeneralFunc{
			defaultHook: func(string, string) {
				return
			},
		},
	}
}

// NewStrictMockLoginSourceFileStore creates a new mock of the
// loginSourceFileStore interface. All methods panic on invocation, unless
// overwritten.
func NewStrictMockLoginSourceFileStore() *MockLoginSourceFileStore {
	return &MockLoginSourceFileStore{
		SaveFunc: &LoginSourceFileStoreSaveFunc{
			defaultHook: func() error {
				panic("unexpected invocation of MockLoginSourceFileStore.Save")
			},
		},
		SetConfigFunc: &LoginSourceFileStoreSetConfigFunc{
			defaultHook: func(interface{}) error {
				panic("unexpected invocation of MockLoginSourceFileStore.SetConfig")
			},
		},
		SetGeneralFunc: &LoginSourceFileStoreSetGeneralFunc{
			defaultHook: func(string, string) {
				panic("unexpected invocation of MockLoginSourceFileStore.SetGeneral")
			},
		},
	}
}

// surrogateMockLoginSourceFileStore is a copy of the loginSourceFileStore
// interface (from the package gogs.io/gogs/internal/database). It is
// redefined here as it is unexported in the source package.
type surrogateMockLoginSourceFileStore interface {
	Save() error
	SetConfig(interface{}) error
	SetGeneral(string, string)
}

// NewMockLoginSourceFileStoreFrom creates a new mock of the
// MockLoginSourceFileStore interface. All methods delegate to the given
// implementation, unless overwritten.
func NewMockLoginSourceFileStoreFrom(i surrogateMockLoginSourceFileStore) *MockLoginSourceFileStore {
	return &MockLoginSourceFileStore{
		SaveFunc: &LoginSourceFileStoreSaveFunc{
			defaultHook: i.Save,
		},
		SetConfigFunc: &LoginSourceFileStoreSetConfigFunc{
			defaultHook: i.SetConfig,
		},
		SetGeneralFunc: &LoginSourceFileStoreSetGeneralFunc{
			defaultHook: i.SetGeneral,
		},
	}
}

// LoginSourceFileStoreSaveFunc describes the behavior when the Save method
// of the parent MockLoginSourceFileStore instance is invoked.
type LoginSourceFileStoreSaveFunc struct {
	defaultHook func() error
	hooks       []func() error
	history     []LoginSourceFileStoreSaveFuncCall
	mutex       sync.Mutex
}

// Save delegates to the next hook function in the queue and stores the
// parameter and result values of this invocation.
func (m *MockLoginSourceFileStore) Save() error {
	r0 := m.SaveFunc.nextHook()()
	m.SaveFunc.appendCall(LoginSourceFileStoreSaveFuncCall{r0})
	return r0
}

// SetDefaultHook sets function that is called when the Save method of the
// parent MockLoginSourceFileStore instance is invoked and the hook queue is
// empty.
func (f *LoginSourceFileStoreSaveFunc) SetDefaultHook(hook func() error) {
	f.defaultHook = hook
}

// PushHook adds a function to the end of hook queue. Each invocation of the
// Save method of the parent MockLoginSourceFileStore instance invokes the
// hook at the front of the queue and discards it. After the queue is empty,
// the default hook function is invoked for any future action.
func (f *LoginSourceFileStoreSaveFunc) PushHook(hook func() error) {
	f.mutex.Lock()
	f.hooks = append(f.hooks, hook)
	f.mutex.Unlock()
}

// SetDefaultReturn calls SetDefaultHook with a function that returns the
// given values.
func (f *LoginSourceFileStoreSaveFunc) SetDefaultReturn(r0 error) {
	f.SetDefaultHook(func() error {
		return r0
	})
}

// PushReturn calls PushHook with a function that returns the given values.
func (f *LoginSourceFileStoreSaveFunc) PushReturn(r0 error) {
	f.PushHook(func() error {
		return r0
	})
}

func (f *LoginSourceFileStoreSaveFunc) nextHook() func() error {
	f.mutex.Lock()
	defer f.mutex.Unlock()

	if len(f.hooks) == 0 {
		return f.defaultHook
	}

	hook := f.hooks[0]
	f.hooks = f.hooks[1:]
	return hook
}

func (f *LoginSourceFileStoreSaveFunc) appendCall(r0 LoginSourceFileStoreSaveFuncCall) {
	f.mutex.Lock()
	f.history = append(f.history, r0)
	f.mutex.Unlock()
}

// History returns a sequence of LoginSourceFileStoreSaveFuncCall objects
// describing the invocations of this function.
func (f *LoginSourceFileStoreSaveFunc) History() []LoginSourceFileStoreSaveFuncCall {
	f.mutex.Lock()
	history := make([]LoginSourceFileStoreSaveFuncCall, len(f.history))
	copy(history, f.history)
	f.mutex.Unlock()

	return history
}

// LoginSourceFileStoreSaveFuncCall is an object that describes an
// invocation of method Save on an instance of MockLoginSourceFileStore.
type LoginSourceFileStoreSaveFuncCall struct {
	// Result0 is the value of the 1st result returned from this method
	// invocation.
	Result0 error
}

// Args returns an interface slice containing the arguments of this
// invocation.
func (c LoginSourceFileStoreSaveFuncCall) Args() []interface{} {
	return []interface{}{}
}

// Results returns an interface slice containing the results of this
// invocation.
func (c LoginSourceFileStoreSaveFuncCall) Results() []interface{} {
	return []interface{}{c.Result0}
}

// LoginSourceFileStoreSetConfigFunc describes the behavior when the
// SetConfig method of the parent MockLoginSourceFileStore instance is
// invoked.
type LoginSourceFileStoreSetConfigFunc struct {
	defaultHook func(interface{}) error
	hooks       []func(interface{}) error
	history     []LoginSourceFileStoreSetConfigFuncCall
	mutex       sync.Mutex
}

// SetConfig delegates to the next hook function in the queue and stores the
// parameter and result values of this invocation.
func (m *MockLoginSourceFileStore) SetConfig(v0 interface{}) error {
	r0 := m.SetConfigFunc.nextHook()(v0)
	m.SetConfigFunc.appendCall(LoginSourceFileStoreSetConfigFuncCall{v0, r0})
	return r0
}

// SetDefaultHook sets function that is called when the SetConfig method of
// the parent MockLoginSourceFileStore instance is invoked and the hook
// queue is empty.
func (f *LoginSourceFileStoreSetConfigFunc) SetDefaultHook(hook func(interface{}) error) {
	f.defaultHook = hook
}

// PushHook adds a function to the end of hook queue. Each invocation of the
// SetConfig method of the parent MockLoginSourceFileStore instance invokes
// the hook at the front of the queue and discards it. After the queue is
// empty, the default hook function is invoked for any future action.
func (f *LoginSourceFileStoreSetConfigFunc) PushHook(hook func(interface{}) error) {
	f.mutex.Lock()
	f.hooks = append(f.hooks, hook)
	f.mutex.Unlock()
}

// SetDefaultReturn calls SetDefaultHook with a function that returns the
// given values.
func (f *LoginSourceFileStoreSetConfigFunc) SetDefaultReturn(r0 error) {
	f.SetDefaultHook(func(interface{}) error {
		return r0
	})
}

// PushReturn calls PushHook with a function that returns the given values.
func (f *LoginSourceFileStoreSetConfigFunc) PushReturn(r0 error) {
	f.PushHook(func(interface{}) error {
		return r0
	})
}

func (f *LoginSourceFileStoreSetConfigFunc) nextHook() func(interface{}) error {
	f.mutex.Lock()
	defer f.mutex.Unlock()

	if len(f.hooks) == 0 {
		return f.defaultHook
	}

	hook := f.hooks[0]
	f.hooks = f.hooks[1:]
	return hook
}

func (f *LoginSourceFileStoreSetConfigFunc) appendCall(r0 LoginSourceFileStoreSetConfigFuncCall) {
	f.mutex.Lock()
	f.history = append(f.history, r0)
	f.mutex.Unlock()
}

// History returns a sequence of LoginSourceFileStoreSetConfigFuncCall
// objects describing the invocations of this function.
func (f *LoginSourceFileStoreSetConfigFunc) History() []LoginSourceFileStoreSetConfigFuncCall {
	f.mutex.Lock()
	history := make([]LoginSourceFileStoreSetConfigFuncCall, len(f.history))
	copy(history, f.history)
	f.mutex.Unlock()

	return history
}

// LoginSourceFileStoreSetConfigFuncCall is an object that describes an
// invocation of method SetConfig on an instance of
// MockLoginSourceFileStore.
type LoginSourceFileStoreSetConfigFuncCall struct {
	// Arg0 is the value of the 1st argument passed to this method
	// invocation.
	Arg0 interface{}
	// Result0 is the value of the 1st result returned from this method
	// invocation.
	Result0 error
}

// Args returns an interface slice containing the arguments of this
// invocation.
func (c LoginSourceFileStoreSetConfigFuncCall) Args() []interface{} {
	return []interface{}{c.Arg0}
}

// Results returns an interface slice containing the results of this
// invocation.
func (c LoginSourceFileStoreSetConfigFuncCall) Results() []interface{} {
	return []interface{}{c.Result0}
}

// LoginSourceFileStoreSetGeneralFunc describes the behavior when the
// SetGeneral method of the parent MockLoginSourceFileStore instance is
// invoked.
type LoginSourceFileStoreSetGeneralFunc struct {
	defaultHook func(string, string)
	hooks       []func(string, string)
	history     []LoginSourceFileStoreSetGeneralFuncCall
	mutex       sync.Mutex
}

// SetGeneral delegates to the next hook function in the queue and stores
// the parameter and result values of this invocation.
func (m *MockLoginSourceFileStore) SetGeneral(v0 string, v1 string) {
	m.SetGeneralFunc.nextHook()(v0, v1)
	m.SetGeneralFunc.appendCall(LoginSourceFileStoreSetGeneralFuncCall{v0, v1})
	return
}

// SetDefaultHook sets function that is called when the SetGeneral method of
// the parent MockLoginSourceFileStore instance is invoked and the hook
// queue is empty.
func (f *LoginSourceFileStoreSetGeneralFunc) SetDefaultHook(hook func(string, string)) {
	f.defaultHook = hook
}

// PushHook adds a function to the end of hook queue. Each invocation of the
// SetGeneral method of the parent MockLoginSourceFileStore instance invokes
// the hook at the front of the queue and discards it. After the queue is
// empty, the default hook function is invoked for any future action.
func (f *LoginSourceFileStoreSetGeneralFunc) PushHook(hook func(string, string)) {
	f.mutex.Lock()
	f.hooks = append(f.hooks, hook)
	f.mutex.Unlock()
}

// SetDefaultReturn calls SetDefaultHook with a function that returns the
// given values.
func (f *LoginSourceFileStoreSetGeneralFunc) SetDefaultReturn() {
	f.SetDefaultHook(func(string, string) {
		return
	})
}

// PushReturn calls PushHook with a function that returns the given values.
func (f *LoginSourceFileStoreSetGeneralFunc) PushReturn() {
	f.PushHook(func(string, string) {
		return
	})
}

func (f *LoginSourceFileStoreSetGeneralFunc) nextHook() func(string, string) {
	f.mutex.Lock()
	defer f.mutex.Unlock()

	if len(f.hooks) == 0 {
		return f.defaultHook
	}

	hook := f.hooks[0]
	f.hooks = f.hooks[1:]
	return hook
}

func (f *LoginSourceFileStoreSetGeneralFunc) appendCall(r0 LoginSourceFileStoreSetGeneralFuncCall) {
	f.mutex.Lock()
	f.history = append(f.history, r0)
	f.mutex.Unlock()
}

// History returns a sequence of LoginSourceFileStoreSetGeneralFuncCall
// objects describing the invocations of this function.
func (f *LoginSourceFileStoreSetGeneralFunc) History() []LoginSourceFileStoreSetGeneralFuncCall {
	f.mutex.Lock()
	history := make([]LoginSourceFileStoreSetGeneralFuncCall, len(f.history))
	copy(history, f.history)
	f.mutex.Unlock()

	return history
}

// LoginSourceFileStoreSetGeneralFuncCall is an object that describes an
// invocation of method SetGeneral on an instance of
// MockLoginSourceFileStore.
type LoginSourceFileStoreSetGeneralFuncCall struct {
	// Arg0 is the value of the 1st argument passed to this method
	// invocation.
	Arg0 string
	// Arg1 is the value of the 2nd argument passed to this method
	// invocation.
	Arg1 string
}

// Args returns an interface slice containing the arguments of this
// invocation.
func (c LoginSourceFileStoreSetGeneralFuncCall) Args() []interface{} {
	return []interface{}{c.Arg0, c.Arg1}
}

// Results returns an interface slice containing the results of this
// invocation.
func (c LoginSourceFileStoreSetGeneralFuncCall) Results() []interface{} {
	return []interface{}{}
}

// MockLoginSourceFilesStore is a mock implementation of the
// loginSourceFilesStore interface (from the package
// gogs.io/gogs/internal/database) used for unit testing.
type MockLoginSourceFilesStore struct {
	// GetByIDFunc is an instance of a mock function object controlling the
	// behavior of the method GetByID.
	GetByIDFunc *LoginSourceFilesStoreGetByIDFunc
	// LenFunc is an instance of a mock function object controlling the
	// behavior of the method Len.
	LenFunc *LoginSourceFilesStoreLenFunc
	// ListFunc is an instance of a mock function object controlling the
	// behavior of the method List.
	ListFunc *LoginSourceFilesStoreListFunc
	// UpdateFunc is an instance of a mock function object controlling the
	// behavior of the method Update.
	UpdateFunc *LoginSourceFilesStoreUpdateFunc
}

// NewMockLoginSourceFilesStore creates a new mock of the
// loginSourceFilesStore interface. All methods return zero values for all
// results, unless overwritten.
func NewMockLoginSourceFilesStore() *MockLoginSourceFilesStore {
	return &MockLoginSourceFilesStore{
		GetByIDFunc: &LoginSourceFilesStoreGetByIDFunc{
			defaultHook: func(int64) (r0 *LoginSource, r1 error) {
				return
			},
		},
		LenFunc: &LoginSourceFilesStoreLenFunc{
			defaultHook: func() (r0 int) {
				return
			},
		},
		ListFunc: &LoginSourceFilesStoreListFunc{
			defaultHook: func(ListLoginSourceOptions) (r0 []*LoginSource) {
				return
			},
		},
		UpdateFunc: &LoginSourceFilesStoreUpdateFunc{
			defaultHook: func(*LoginSource) {
				return
			},
		},
	}
}

// NewStrictMockLoginSourceFilesStore creates a new mock of the
// loginSourceFilesStore interface. All methods panic on invocation, unless
// overwritten.
func NewStrictMockLoginSourceFilesStore() *MockLoginSourceFilesStore {
	return &MockLoginSourceFilesStore{
		GetByIDFunc: &LoginSourceFilesStoreGetByIDFunc{
			defaultHook: func(int64) (*LoginSource, error) {
				panic("unexpected invocation of MockLoginSourceFilesStore.GetByID")
			},
		},
		LenFunc: &LoginSourceFilesStoreLenFunc{
			defaultHook: func() int {
				panic("unexpected invocation of MockLoginSourceFilesStore.Len")
			},
		},
		ListFunc: &LoginSourceFilesStoreListFunc{
			defaultHook: func(ListLoginSourceOptions) []*LoginSource {
				panic("unexpected invocation of MockLoginSourceFilesStore.List")
			},
		},
		UpdateFunc: &LoginSourceFilesStoreUpdateFunc{
			defaultHook: func(*LoginSource) {
				panic("unexpected invocation of MockLoginSourceFilesStore.Update")
			},
		},
	}
}

// surrogateMockLoginSourceFilesStore is a copy of the loginSourceFilesStore
// interface (from the package gogs.io/gogs/internal/database). It is
// redefined here as it is unexported in the source package.
type surrogateMockLoginSourceFilesStore interface {
	GetByID(int64) (*LoginSource, error)
	Len() int
	List(ListLoginSourceOptions) []*LoginSource
	Update(*LoginSource)
}

// NewMockLoginSourceFilesStoreFrom creates a new mock of the
// MockLoginSourceFilesStore interface. All methods delegate to the given
// implementation, unless overwritten.
func NewMockLoginSourceFilesStoreFrom(i surrogateMockLoginSourceFilesStore) *MockLoginSourceFilesStore {
	return &MockLoginSourceFilesStore{
		GetByIDFunc: &LoginSourceFilesStoreGetByIDFunc{
			defaultHook: i.GetByID,
		},
		LenFunc: &LoginSourceFilesStoreLenFunc{
			defaultHook: i.Len,
		},
		ListFunc: &LoginSourceFilesStoreListFunc{
			defaultHook: i.List,
		},
		UpdateFunc: &LoginSourceFilesStoreUpdateFunc{
			defaultHook: i.Update,
		},
	}
}

// LoginSourceFilesStoreGetByIDFunc describes the behavior when the GetByID
// method of the parent MockLoginSourceFilesStore instance is invoked.
type LoginSourceFilesStoreGetByIDFunc struct {
	defaultHook func(int64) (*LoginSource, error)
	hooks       []func(int64) (*LoginSource, error)
	history     []LoginSourceFilesStoreGetByIDFuncCall
	mutex       sync.Mutex
}

// GetByID delegates to the next hook function in the queue and stores the
// parameter and result values of this invocation.
func (m *MockLoginSourceFilesStore) GetByID(v0 int64) (*LoginSource, error) {
	r0, r1 := m.GetByIDFunc.nextHook()(v0)
	m.GetByIDFunc.appendCall(LoginSourceFilesStoreGetByIDFuncCall{v0, r0, r1})
	return r0, r1
}

// SetDefaultHook sets function that is called when the GetByID method of
// the parent MockLoginSourceFilesStore instance is invoked and the hook
// queue is empty.
func (f *LoginSourceFilesStoreGetByIDFunc) SetDefaultHook(hook func(int64) (*LoginSource, error)) {
	f.defaultHook = hook
}

// PushHook adds a function to the end of hook queue. Each invocation of the
// GetByID method of the parent MockLoginSourceFilesStore instance invokes
// the hook at the front of the queue and discards it. After the queue is
// empty, the default hook function is invoked for any future action.
func (f *LoginSourceFilesStoreGetByIDFunc) PushHook(hook func(int64) (*LoginSource, error)) {
	f.mutex.Lock()
	f.hooks = append(f.hooks, hook)
	f.mutex.Unlock()
}

// SetDefaultReturn calls SetDefaultHook with a function that returns the
// given values.
func (f *LoginSourceFilesStoreGetByIDFunc) SetDefaultReturn(r0 *LoginSource, r1 error) {
	f.SetDefaultHook(func(int64) (*LoginSource, error) {
		return r0, r1
	})
}

// PushReturn calls PushHook with a function that returns the given values.
func (f *LoginSourceFilesStoreGetByIDFunc) PushReturn(r0 *LoginSource, r1 error) {
	f.PushHook(func(int64) (*LoginSource, error) {
		return r0, r1
	})
}

func (f *LoginSourceFilesStoreGetByIDFunc) nextHook() func(int64) (*LoginSource, error) {
	f.mutex.Lock()
	defer f.mutex.Unlock()

	if len(f.hooks) == 0 {
		return f.defaultHook
	}

	hook := f.hooks[0]
	f.hooks = f.hooks[1:]
	return hook
}

func (f *LoginSourceFilesStoreGetByIDFunc) appendCall(r0 LoginSourceFilesStoreGetByIDFuncCall) {
	f.mutex.Lock()
	f.history = append(f.history, r0)
	f.mutex.Unlock()
}

// History returns a sequence of LoginSourceFilesStoreGetByIDFuncCall
// objects describing the invocations of this function.
func (f *LoginSourceFilesStoreGetByIDFunc) History() []LoginSourceFilesStoreGetByIDFuncCall {
	f.mutex.Lock()
	history := make([]LoginSourceFilesStoreGetByIDFuncCall, len(f.history))
	copy(history, f.history)
	f.mutex.Unlock()

	return history
}

// LoginSourceFilesStoreGetByIDFuncCall is an object that describes an
// invocation of method GetByID on an instance of MockLoginSourceFilesStore.
type LoginSourceFilesStoreGetByIDFuncCall struct {
	// Arg0 is the value of the 1st argument passed to this method
	// invocation.
	Arg0 int64
	// Result0 is the value of the 1st result returned from this method
	// invocation.
	Result0 *LoginSource
	// Result1 is the value of the 2nd result returned from this method
	// invocation.
	Result1 error
}

// Args returns an interface slice containing the arguments of this
// invocation.
func (c LoginSourceFilesStoreGetByIDFuncCall) Args() []interface{} {
	return []interface{}{c.Arg0}
}

// Results returns an interface slice containing the results of this
// invocation.
func (c LoginSourceFilesStoreGetByIDFuncCall) Results() []interface{} {
	return []interface{}{c.Result0, c.Result1}
}

// LoginSourceFilesStoreLenFunc describes the behavior when the Len method
// of the parent MockLoginSourceFilesStore instance is invoked.
type LoginSourceFilesStoreLenFunc struct {
	defaultHook func() int
	hooks       []func() int
	history     []LoginSourceFilesStoreLenFuncCall
	mutex       sync.Mutex
}

// Len delegates to the next hook function in the queue and stores the
// parameter and result values of this invocation.
func (m *MockLoginSourceFilesStore) Len() int {
	r0 := m.LenFunc.nextHook()()
	m.LenFunc.appendCall(LoginSourceFilesStoreLenFuncCall{r0})
	return r0
}

// SetDefaultHook sets function that is called when the Len method of the
// parent MockLoginSourceFilesStore instance is invoked and the hook queue
// is empty.
func (f *LoginSourceFilesStoreLenFunc) SetDefaultHook(hook func() int) {
	f.defaultHook = hook
}

// PushHook adds a function to the end of hook queue. Each invocation of the
// Len method of the parent MockLoginSourceFilesStore instance invokes the
// hook at the front of the queue and discards it. After the queue is empty,
// the default hook function is invoked for any future action.
func (f *LoginSourceFilesStoreLenFunc) PushHook(hook func() int) {
	f.mutex.Lock()
	f.hooks = append(f.hooks, hook)
	f.mutex.Unlock()
}

// SetDefaultReturn calls SetDefaultHook with a function that returns the
// given values.
func (f *LoginSourceFilesStoreLenFunc) SetDefaultReturn(r0 int) {
	f.SetDefaultHook(func() int {
		return r0
	})
}

// PushReturn calls PushHook with a function that returns the given values.
func (f *LoginSourceFilesStoreLenFunc) PushReturn(r0 int) {
	f.PushHook(func() int {
		return r0
	})
}

func (f *LoginSourceFilesStoreLenFunc) nextHook() func() int {
	f.mutex.Lock()
	defer f.mutex.Unlock()

	if len(f.hooks) == 0 {
		return f.defaultHook
	}

	hook := f.hooks[0]
	f.hooks = f.hooks[1:]
	return hook
}

func (f *LoginSourceFilesStoreLenFunc) appendCall(r0 LoginSourceFilesStoreLenFuncCall) {
	f.mutex.Lock()
	f.history = append(f.history, r0)
	f.mutex.Unlock()
}

// History returns a sequence of LoginSourceFilesStoreLenFuncCall objects
// describing the invocations of this function.
func (f *LoginSourceFilesStoreLenFunc) History() []LoginSourceFilesStoreLenFuncCall {
	f.mutex.Lock()
	history := make([]LoginSourceFilesStoreLenFuncCall, len(f.history))
	copy(history, f.history)
	f.mutex.Unlock()

	return history
}

// LoginSourceFilesStoreLenFuncCall is an object that describes an
// invocation of method Len on an instance of MockLoginSourceFilesStore.
type LoginSourceFilesStoreLenFuncCall struct {
	// Result0 is the value of the 1st result returned from this method
	// invocation.
	Result0 int
}

// Args returns an interface slice containing the arguments of this
// invocation.
func (c LoginSourceFilesStoreLenFuncCall) Args() []interface{} {
	return []interface{}{}
}

// Results returns an interface slice containing the results of this
// invocation.
func (c LoginSourceFilesStoreLenFuncCall) Results() []interface{} {
	return []interface{}{c.Result0}
}

// LoginSourceFilesStoreListFunc describes the behavior when the List method
// of the parent MockLoginSourceFilesStore instance is invoked.
type LoginSourceFilesStoreListFunc struct {
	defaultHook func(ListLoginSourceOptions) []*LoginSource
	hooks       []func(ListLoginSourceOptions) []*LoginSource
	history     []LoginSourceFilesStoreListFuncCall
	mutex       sync.Mutex
}

// List delegates to the next hook function in the queue and stores the
// parameter and result values of this invocation.
func (m *MockLoginSourceFilesStore) List(v0 ListLoginSourceOptions) []*LoginSource {
	r0 := m.ListFunc.nextHook()(v0)
	m.ListFunc.appendCall(LoginSourceFilesStoreListFuncCall{v0, r0})
	return r0
}

// SetDefaultHook sets function that is called when the List method of the
// parent MockLoginSourceFilesStore instance is invoked and the hook queue
// is empty.
func (f *LoginSourceFilesStoreListFunc) SetDefaultHook(hook func(ListLoginSourceOptions) []*LoginSource) {
	f.defaultHook = hook
}

// PushHook adds a function to the end of hook queue. Each invocation of the
// List method of the parent MockLoginSourceFilesStore instance invokes the
// hook at the front of the queue and discards it. After the queue is empty,
// the default hook function is invoked for any future action.
func (f *LoginSourceFilesStoreListFunc) PushHook(hook func(ListLoginSourceOptions) []*LoginSource) {
	f.mutex.Lock()
	f.hooks = append(f.hooks, hook)
	f.mutex.Unlock()
}

// SetDefaultReturn calls SetDefaultHook with a function that returns the
// given values.
func (f *LoginSourceFilesStoreListFunc) SetDefaultReturn(r0 []*LoginSource) {
	f.SetDefaultHook(func(ListLoginSourceOptions) []*LoginSource {
		return r0
	})
}

// PushReturn calls PushHook with a function that returns the given values.
func (f *LoginSourceFilesStoreListFunc) PushReturn(r0 []*LoginSource) {
	f.PushHook(func(ListLoginSourceOptions) []*LoginSource {
		return r0
	})
}

func (f *LoginSourceFilesStoreListFunc) nextHook() func(ListLoginSourceOptions) []*LoginSource {
	f.mutex.Lock()
	defer f.mutex.Unlock()

	if len(f.hooks) == 0 {
		return f.defaultHook
	}

	hook := f.hooks[0]
	f.hooks = f.hooks[1:]
	return hook
}

func (f *LoginSourceFilesStoreListFunc) appendCall(r0 LoginSourceFilesStoreListFuncCall) {
	f.mutex.Lock()
	f.history = append(f.history, r0)
	f.mutex.Unlock()
}

// History returns a sequence of LoginSourceFilesStoreListFuncCall objects
// describing the invocations of this function.
func (f *LoginSourceFilesStoreListFunc) History() []LoginSourceFilesStoreListFuncCall {
	f.mutex.Lock()
	history := make([]LoginSourceFilesStoreListFuncCall, len(f.history))
	copy(history, f.history)
	f.mutex.Unlock()

	return history
}

// LoginSourceFilesStoreListFuncCall is an object that describes an
// invocation of method List on an instance of MockLoginSourceFilesStore.
type LoginSourceFilesStoreListFuncCall struct {
	// Arg0 is the value of the 1st argument passed to this method
	// invocation.
	Arg0 ListLoginSourceOptions
	// Result0 is the value of the 1st result returned from this method
	// invocation.
	Result0 []*LoginSource
}

// Args returns an interface slice containing the arguments of this
// invocation.
func (c LoginSourceFilesStoreListFuncCall) Args() []interface{} {
	return []interface{}{c.Arg0}
}

// Results returns an interface slice containing the results of this
// invocation.
func (c LoginSourceFilesStoreListFuncCall) Results() []interface{} {
	return []interface{}{c.Result0}
}

// LoginSourceFilesStoreUpdateFunc describes the behavior when the Update
// method of the parent MockLoginSourceFilesStore instance is invoked.
type LoginSourceFilesStoreUpdateFunc struct {
	defaultHook func(*LoginSource)
	hooks       []func(*LoginSource)
	history     []LoginSourceFilesStoreUpdateFuncCall
	mutex       sync.Mutex
}

// Update delegates to the next hook function in the queue and stores the
// parameter and result values of this invocation.
func (m *MockLoginSourceFilesStore) Update(v0 *LoginSource) {
	m.UpdateFunc.nextHook()(v0)
	m.UpdateFunc.appendCall(LoginSourceFilesStoreUpdateFuncCall{v0})
	return
}

// SetDefaultHook sets function that is called when the Update method of the
// parent MockLoginSourceFilesStore instance is invoked and the hook queue
// is empty.
func (f *LoginSourceFilesStoreUpdateFunc) SetDefaultHook(hook func(*LoginSource)) {
	f.defaultHook = hook
}

// PushHook adds a function to the end of hook queue. Each invocation of the
// Update method of the parent MockLoginSourceFilesStore instance invokes
// the hook at the front of the queue and discards it. After the queue is
// empty, the default hook function is invoked for any future action.
func (f *LoginSourceFilesStoreUpdateFunc) PushHook(hook func(*LoginSource)) {
	f.mutex.Lock()
	f.hooks = append(f.hooks, hook)
	f.mutex.Unlock()
}

// SetDefaultReturn calls SetDefaultHook with a function that returns the
// given values.
func (f *LoginSourceFilesStoreUpdateFunc) SetDefaultReturn() {
	f.SetDefaultHook(func(*LoginSource) {
		return
	})
}

// PushReturn calls PushHook with a function that returns the given values.
func (f *LoginSourceFilesStoreUpdateFunc) PushReturn() {
	f.PushHook(func(*LoginSource) {
		return
	})
}

func (f *LoginSourceFilesStoreUpdateFunc) nextHook() func(*LoginSource) {
	f.mutex.Lock()
	defer f.mutex.Unlock()

	if len(f.hooks) == 0 {
		return f.defaultHook
	}

	hook := f.hooks[0]
	f.hooks = f.hooks[1:]
	return hook
}

func (f *LoginSourceFilesStoreUpdateFunc) appendCall(r0 LoginSourceFilesStoreUpdateFuncCall) {
	f.mutex.Lock()
	f.history = append(f.history, r0)
	f.mutex.Unlock()
}

// History returns a sequence of LoginSourceFilesStoreUpdateFuncCall objects
// describing the invocations of this function.
func (f *LoginSourceFilesStoreUpdateFunc) History() []LoginSourceFilesStoreUpdateFuncCall {
	f.mutex.Lock()
	history := make([]LoginSourceFilesStoreUpdateFuncCall, len(f.history))
	copy(history, f.history)
	f.mutex.Unlock()

	return history
}

// LoginSourceFilesStoreUpdateFuncCall is an object that describes an
// invocation of method Update on an instance of MockLoginSourceFilesStore.
type LoginSourceFilesStoreUpdateFuncCall struct {
	// Arg0 is the value of the 1st argument passed to this method
	// invocation.
	Arg0 *LoginSource
}

// Args returns an interface slice containing the arguments of this
// invocation.
func (c LoginSourceFilesStoreUpdateFuncCall) Args() []interface{} {
	return []interface{}{c.Arg0}
}

// Results returns an interface slice containing the results of this
// invocation.
func (c LoginSourceFilesStoreUpdateFuncCall) Results() []interface{} {
	return []interface{}{}
}
