// Automatically generated by mockimpl. DO NOT EDIT!

package mock

import "github.com/fleetdm/fleet/v4/server/fleet"

var _ fleet.SessionStore = (*SessionStore)(nil)

type SessionByKeyFunc func(key string) (*fleet.Session, error)

type SessionByIDFunc func(id uint) (*fleet.Session, error)

type ListSessionsForUserFunc func(id uint) ([]*fleet.Session, error)

type NewSessionFunc func(session *fleet.Session) (*fleet.Session, error)

type DestroySessionFunc func(session *fleet.Session) error

type DestroyAllSessionsForUserFunc func(id uint) error

type MarkSessionAccessedFunc func(session *fleet.Session) error

type SessionStore struct {
	SessionByKeyFunc        SessionByKeyFunc
	SessionByKeyFuncInvoked bool

	SessionByIDFunc        SessionByIDFunc
	SessionByIDFuncInvoked bool

	ListSessionsForUserFunc        ListSessionsForUserFunc
	ListSessionsForUserFuncInvoked bool

	NewSessionFunc        NewSessionFunc
	NewSessionFuncInvoked bool

	DestroySessionFunc        DestroySessionFunc
	DestroySessionFuncInvoked bool

	DestroyAllSessionsForUserFunc        DestroyAllSessionsForUserFunc
	DestroyAllSessionsForUserFuncInvoked bool

	MarkSessionAccessedFunc        MarkSessionAccessedFunc
	MarkSessionAccessedFuncInvoked bool
}

func (s *SessionStore) SessionByKey(key string) (*fleet.Session, error) {
	s.SessionByKeyFuncInvoked = true
	return s.SessionByKeyFunc(key)
}

func (s *SessionStore) SessionByID(id uint) (*fleet.Session, error) {
	s.SessionByIDFuncInvoked = true
	return s.SessionByIDFunc(id)
}

func (s *SessionStore) ListSessionsForUser(id uint) ([]*fleet.Session, error) {
	s.ListSessionsForUserFuncInvoked = true
	return s.ListSessionsForUserFunc(id)
}

func (s *SessionStore) NewSession(session *fleet.Session) (*fleet.Session, error) {
	s.NewSessionFuncInvoked = true
	return s.NewSessionFunc(session)
}

func (s *SessionStore) DestroySession(session *fleet.Session) error {
	s.DestroySessionFuncInvoked = true
	return s.DestroySessionFunc(session)
}

func (s *SessionStore) DestroyAllSessionsForUser(id uint) error {
	s.DestroyAllSessionsForUserFuncInvoked = true
	return s.DestroyAllSessionsForUserFunc(id)
}

func (s *SessionStore) MarkSessionAccessed(session *fleet.Session) error {
	s.MarkSessionAccessedFuncInvoked = true
	return s.MarkSessionAccessedFunc(session)
}
