// Automatically generated by mockimpl. DO NOT EDIT!

package mock

import (
	"time"

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

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

type NewDistributedQueryCampaignFunc func(camp *fleet.DistributedQueryCampaign) (*fleet.DistributedQueryCampaign, error)

type DistributedQueryCampaignFunc func(id uint) (*fleet.DistributedQueryCampaign, error)

type SaveDistributedQueryCampaignFunc func(camp *fleet.DistributedQueryCampaign) error

type DistributedQueryCampaignTargetIDsFunc func(id uint) (targets *fleet.HostTargets, err error)

type NewDistributedQueryCampaignTargetFunc func(target *fleet.DistributedQueryCampaignTarget) (*fleet.DistributedQueryCampaignTarget, error)

type CleanupDistributedQueryCampaignsFunc func(now time.Time) (expired uint, err error)

type CampaignStore struct {
	NewDistributedQueryCampaignFunc        NewDistributedQueryCampaignFunc
	NewDistributedQueryCampaignFuncInvoked bool

	DistributedQueryCampaignFunc        DistributedQueryCampaignFunc
	DistributedQueryCampaignFuncInvoked bool

	SaveDistributedQueryCampaignFunc        SaveDistributedQueryCampaignFunc
	SaveDistributedQueryCampaignFuncInvoked bool

	DistributedQueryCampaignTargetIDsFunc        DistributedQueryCampaignTargetIDsFunc
	DistributedQueryCampaignTargetIDsFuncInvoked bool

	NewDistributedQueryCampaignTargetFunc        NewDistributedQueryCampaignTargetFunc
	NewDistributedQueryCampaignTargetFuncInvoked bool

	CleanupDistributedQueryCampaignsFunc        CleanupDistributedQueryCampaignsFunc
	CleanupDistributedQueryCampaignsFuncInvoked bool
}

func (s *CampaignStore) NewDistributedQueryCampaign(camp *fleet.DistributedQueryCampaign) (*fleet.DistributedQueryCampaign, error) {
	s.NewDistributedQueryCampaignFuncInvoked = true
	return s.NewDistributedQueryCampaignFunc(camp)
}

func (s *CampaignStore) DistributedQueryCampaign(id uint) (*fleet.DistributedQueryCampaign, error) {
	s.DistributedQueryCampaignFuncInvoked = true
	return s.DistributedQueryCampaignFunc(id)
}

func (s *CampaignStore) SaveDistributedQueryCampaign(camp *fleet.DistributedQueryCampaign) error {
	s.SaveDistributedQueryCampaignFuncInvoked = true
	return s.SaveDistributedQueryCampaignFunc(camp)
}

func (s *CampaignStore) DistributedQueryCampaignTargetIDs(id uint) (targets *fleet.HostTargets, err error) {
	s.DistributedQueryCampaignTargetIDsFuncInvoked = true
	return s.DistributedQueryCampaignTargetIDsFunc(id)
}

func (s *CampaignStore) NewDistributedQueryCampaignTarget(target *fleet.DistributedQueryCampaignTarget) (*fleet.DistributedQueryCampaignTarget, error) {
	s.NewDistributedQueryCampaignTargetFuncInvoked = true
	return s.NewDistributedQueryCampaignTargetFunc(target)
}

func (s *CampaignStore) CleanupDistributedQueryCampaigns(now time.Time) (expired uint, err error) {
	s.CleanupDistributedQueryCampaignsFuncInvoked = true
	return s.CleanupDistributedQueryCampaignsFunc(now)
}
