// Code generated by counterfeiter. DO NOT EDIT.
package fakes

import (
	"sync"

	"istio.io/istio/pilot/pkg/model"
	"istio.io/istio/pkg/config/schema/collection"
	"istio.io/istio/pkg/config/schema/resource"
	"istio.io/pkg/ledger"
)

type ConfigStoreCache struct {
	CreateStub        func(model.Config) (string, error)
	createMutex       sync.RWMutex
	createArgsForCall []struct {
		arg1 model.Config
	}
	createReturns struct {
		result1 string
		result2 error
	}
	createReturnsOnCall map[int]struct {
		result1 string
		result2 error
	}
	DeleteStub        func(resource.GroupVersionKind, string, string) error
	deleteMutex       sync.RWMutex
	deleteArgsForCall []struct {
		arg1 resource.GroupVersionKind
		arg2 string
		arg3 string
	}
	deleteReturns struct {
		result1 error
	}
	deleteReturnsOnCall map[int]struct {
		result1 error
	}
	GetStub        func(resource.GroupVersionKind, string, string) *model.Config
	getMutex       sync.RWMutex
	getArgsForCall []struct {
		arg1 resource.GroupVersionKind
		arg2 string
		arg3 string
	}
	getReturns struct {
		result1 *model.Config
	}
	getReturnsOnCall map[int]struct {
		result1 *model.Config
	}
	GetLedgerStub        func() ledger.Ledger
	getLedgerMutex       sync.RWMutex
	getLedgerArgsForCall []struct {
	}
	getLedgerReturns struct {
		result1 ledger.Ledger
	}
	getLedgerReturnsOnCall map[int]struct {
		result1 ledger.Ledger
	}
	GetResourceAtVersionStub        func(string, string) (string, error)
	getResourceAtVersionMutex       sync.RWMutex
	getResourceAtVersionArgsForCall []struct {
		arg1 string
		arg2 string
	}
	getResourceAtVersionReturns struct {
		result1 string
		result2 error
	}
	getResourceAtVersionReturnsOnCall map[int]struct {
		result1 string
		result2 error
	}
	HasSyncedStub        func() bool
	hasSyncedMutex       sync.RWMutex
	hasSyncedArgsForCall []struct {
	}
	hasSyncedReturns struct {
		result1 bool
	}
	hasSyncedReturnsOnCall map[int]struct {
		result1 bool
	}
	ListStub        func(resource.GroupVersionKind, string) ([]model.Config, error)
	listMutex       sync.RWMutex
	listArgsForCall []struct {
		arg1 resource.GroupVersionKind
		arg2 string
	}
	listReturns struct {
		result1 []model.Config
		result2 error
	}
	listReturnsOnCall map[int]struct {
		result1 []model.Config
		result2 error
	}
	RegisterEventHandlerStub        func(resource.GroupVersionKind, func(model.Config, model.Config, model.Event))
	registerEventHandlerMutex       sync.RWMutex
	registerEventHandlerArgsForCall []struct {
		arg1 resource.GroupVersionKind
		arg2 func(model.Config, model.Config, model.Event)
	}
	RunStub        func(<-chan struct{})
	runMutex       sync.RWMutex
	runArgsForCall []struct {
		arg1 <-chan struct{}
	}
	SchemasStub        func() collection.Schemas
	schemasMutex       sync.RWMutex
	schemasArgsForCall []struct {
	}
	schemasReturns struct {
		result1 collection.Schemas
	}
	schemasReturnsOnCall map[int]struct {
		result1 collection.Schemas
	}
	SetLedgerStub        func(ledger.Ledger) error
	setLedgerMutex       sync.RWMutex
	setLedgerArgsForCall []struct {
		arg1 ledger.Ledger
	}
	setLedgerReturns struct {
		result1 error
	}
	setLedgerReturnsOnCall map[int]struct {
		result1 error
	}
	UpdateStub        func(model.Config) (string, error)
	updateMutex       sync.RWMutex
	updateArgsForCall []struct {
		arg1 model.Config
	}
	updateReturns struct {
		result1 string
		result2 error
	}
	updateReturnsOnCall map[int]struct {
		result1 string
		result2 error
	}
	VersionStub        func() string
	versionMutex       sync.RWMutex
	versionArgsForCall []struct {
	}
	versionReturns struct {
		result1 string
	}
	versionReturnsOnCall map[int]struct {
		result1 string
	}
	invocations      map[string][][]interface{}
	invocationsMutex sync.RWMutex
}

func (fake *ConfigStoreCache) Create(arg1 model.Config) (string, error) {
	fake.createMutex.Lock()
	ret, specificReturn := fake.createReturnsOnCall[len(fake.createArgsForCall)]
	fake.createArgsForCall = append(fake.createArgsForCall, struct {
		arg1 model.Config
	}{arg1})
	fake.recordInvocation("Create", []interface{}{arg1})
	fake.createMutex.Unlock()
	if fake.CreateStub != nil {
		return fake.CreateStub(arg1)
	}
	if specificReturn {
		return ret.result1, ret.result2
	}
	fakeReturns := fake.createReturns
	return fakeReturns.result1, fakeReturns.result2
}

func (fake *ConfigStoreCache) CreateCallCount() int {
	fake.createMutex.RLock()
	defer fake.createMutex.RUnlock()
	return len(fake.createArgsForCall)
}

func (fake *ConfigStoreCache) CreateCalls(stub func(model.Config) (string, error)) {
	fake.createMutex.Lock()
	defer fake.createMutex.Unlock()
	fake.CreateStub = stub
}

func (fake *ConfigStoreCache) CreateArgsForCall(i int) model.Config {
	fake.createMutex.RLock()
	defer fake.createMutex.RUnlock()
	argsForCall := fake.createArgsForCall[i]
	return argsForCall.arg1
}

func (fake *ConfigStoreCache) CreateReturns(result1 string, result2 error) {
	fake.createMutex.Lock()
	defer fake.createMutex.Unlock()
	fake.CreateStub = nil
	fake.createReturns = struct {
		result1 string
		result2 error
	}{result1, result2}
}

func (fake *ConfigStoreCache) CreateReturnsOnCall(i int, result1 string, result2 error) {
	fake.createMutex.Lock()
	defer fake.createMutex.Unlock()
	fake.CreateStub = nil
	if fake.createReturnsOnCall == nil {
		fake.createReturnsOnCall = make(map[int]struct {
			result1 string
			result2 error
		})
	}
	fake.createReturnsOnCall[i] = struct {
		result1 string
		result2 error
	}{result1, result2}
}

func (fake *ConfigStoreCache) Delete(arg1 resource.GroupVersionKind, arg2 string, arg3 string) error {
	fake.deleteMutex.Lock()
	ret, specificReturn := fake.deleteReturnsOnCall[len(fake.deleteArgsForCall)]
	fake.deleteArgsForCall = append(fake.deleteArgsForCall, struct {
		arg1 resource.GroupVersionKind
		arg2 string
		arg3 string
	}{arg1, arg2, arg3})
	fake.recordInvocation("Delete", []interface{}{arg1, arg2, arg3})
	fake.deleteMutex.Unlock()
	if fake.DeleteStub != nil {
		return fake.DeleteStub(arg1, arg2, arg3)
	}
	if specificReturn {
		return ret.result1
	}
	fakeReturns := fake.deleteReturns
	return fakeReturns.result1
}

func (fake *ConfigStoreCache) DeleteCallCount() int {
	fake.deleteMutex.RLock()
	defer fake.deleteMutex.RUnlock()
	return len(fake.deleteArgsForCall)
}

func (fake *ConfigStoreCache) DeleteCalls(stub func(resource.GroupVersionKind, string, string) error) {
	fake.deleteMutex.Lock()
	defer fake.deleteMutex.Unlock()
	fake.DeleteStub = stub
}

func (fake *ConfigStoreCache) DeleteArgsForCall(i int) (resource.GroupVersionKind, string, string) {
	fake.deleteMutex.RLock()
	defer fake.deleteMutex.RUnlock()
	argsForCall := fake.deleteArgsForCall[i]
	return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3
}

func (fake *ConfigStoreCache) DeleteReturns(result1 error) {
	fake.deleteMutex.Lock()
	defer fake.deleteMutex.Unlock()
	fake.DeleteStub = nil
	fake.deleteReturns = struct {
		result1 error
	}{result1}
}

func (fake *ConfigStoreCache) DeleteReturnsOnCall(i int, result1 error) {
	fake.deleteMutex.Lock()
	defer fake.deleteMutex.Unlock()
	fake.DeleteStub = nil
	if fake.deleteReturnsOnCall == nil {
		fake.deleteReturnsOnCall = make(map[int]struct {
			result1 error
		})
	}
	fake.deleteReturnsOnCall[i] = struct {
		result1 error
	}{result1}
}

func (fake *ConfigStoreCache) Get(arg1 resource.GroupVersionKind, arg2 string, arg3 string) *model.Config {
	fake.getMutex.Lock()
	ret, specificReturn := fake.getReturnsOnCall[len(fake.getArgsForCall)]
	fake.getArgsForCall = append(fake.getArgsForCall, struct {
		arg1 resource.GroupVersionKind
		arg2 string
		arg3 string
	}{arg1, arg2, arg3})
	fake.recordInvocation("Get", []interface{}{arg1, arg2, arg3})
	fake.getMutex.Unlock()
	if fake.GetStub != nil {
		return fake.GetStub(arg1, arg2, arg3)
	}
	if specificReturn {
		return ret.result1
	}
	fakeReturns := fake.getReturns
	return fakeReturns.result1
}

func (fake *ConfigStoreCache) GetCallCount() int {
	fake.getMutex.RLock()
	defer fake.getMutex.RUnlock()
	return len(fake.getArgsForCall)
}

func (fake *ConfigStoreCache) GetCalls(stub func(resource.GroupVersionKind, string, string) *model.Config) {
	fake.getMutex.Lock()
	defer fake.getMutex.Unlock()
	fake.GetStub = stub
}

func (fake *ConfigStoreCache) GetArgsForCall(i int) (resource.GroupVersionKind, string, string) {
	fake.getMutex.RLock()
	defer fake.getMutex.RUnlock()
	argsForCall := fake.getArgsForCall[i]
	return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3
}

func (fake *ConfigStoreCache) GetReturns(result1 *model.Config) {
	fake.getMutex.Lock()
	defer fake.getMutex.Unlock()
	fake.GetStub = nil
	fake.getReturns = struct {
		result1 *model.Config
	}{result1}
}

func (fake *ConfigStoreCache) GetReturnsOnCall(i int, result1 *model.Config) {
	fake.getMutex.Lock()
	defer fake.getMutex.Unlock()
	fake.GetStub = nil
	if fake.getReturnsOnCall == nil {
		fake.getReturnsOnCall = make(map[int]struct {
			result1 *model.Config
		})
	}
	fake.getReturnsOnCall[i] = struct {
		result1 *model.Config
	}{result1}
}

func (fake *ConfigStoreCache) GetLedger() ledger.Ledger {
	fake.getLedgerMutex.Lock()
	ret, specificReturn := fake.getLedgerReturnsOnCall[len(fake.getLedgerArgsForCall)]
	fake.getLedgerArgsForCall = append(fake.getLedgerArgsForCall, struct {
	}{})
	fake.recordInvocation("GetLedger", []interface{}{})
	fake.getLedgerMutex.Unlock()
	if fake.GetLedgerStub != nil {
		return fake.GetLedgerStub()
	}
	if specificReturn {
		return ret.result1
	}
	fakeReturns := fake.getLedgerReturns
	return fakeReturns.result1
}

func (fake *ConfigStoreCache) GetLedgerCallCount() int {
	fake.getLedgerMutex.RLock()
	defer fake.getLedgerMutex.RUnlock()
	return len(fake.getLedgerArgsForCall)
}

func (fake *ConfigStoreCache) GetLedgerCalls(stub func() ledger.Ledger) {
	fake.getLedgerMutex.Lock()
	defer fake.getLedgerMutex.Unlock()
	fake.GetLedgerStub = stub
}

func (fake *ConfigStoreCache) GetLedgerReturns(result1 ledger.Ledger) {
	fake.getLedgerMutex.Lock()
	defer fake.getLedgerMutex.Unlock()
	fake.GetLedgerStub = nil
	fake.getLedgerReturns = struct {
		result1 ledger.Ledger
	}{result1}
}

func (fake *ConfigStoreCache) GetLedgerReturnsOnCall(i int, result1 ledger.Ledger) {
	fake.getLedgerMutex.Lock()
	defer fake.getLedgerMutex.Unlock()
	fake.GetLedgerStub = nil
	if fake.getLedgerReturnsOnCall == nil {
		fake.getLedgerReturnsOnCall = make(map[int]struct {
			result1 ledger.Ledger
		})
	}
	fake.getLedgerReturnsOnCall[i] = struct {
		result1 ledger.Ledger
	}{result1}
}

func (fake *ConfigStoreCache) GetResourceAtVersion(arg1 string, arg2 string) (string, error) {
	fake.getResourceAtVersionMutex.Lock()
	ret, specificReturn := fake.getResourceAtVersionReturnsOnCall[len(fake.getResourceAtVersionArgsForCall)]
	fake.getResourceAtVersionArgsForCall = append(fake.getResourceAtVersionArgsForCall, struct {
		arg1 string
		arg2 string
	}{arg1, arg2})
	fake.recordInvocation("GetResourceAtVersion", []interface{}{arg1, arg2})
	fake.getResourceAtVersionMutex.Unlock()
	if fake.GetResourceAtVersionStub != nil {
		return fake.GetResourceAtVersionStub(arg1, arg2)
	}
	if specificReturn {
		return ret.result1, ret.result2
	}
	fakeReturns := fake.getResourceAtVersionReturns
	return fakeReturns.result1, fakeReturns.result2
}

func (fake *ConfigStoreCache) GetResourceAtVersionCallCount() int {
	fake.getResourceAtVersionMutex.RLock()
	defer fake.getResourceAtVersionMutex.RUnlock()
	return len(fake.getResourceAtVersionArgsForCall)
}

func (fake *ConfigStoreCache) GetResourceAtVersionCalls(stub func(string, string) (string, error)) {
	fake.getResourceAtVersionMutex.Lock()
	defer fake.getResourceAtVersionMutex.Unlock()
	fake.GetResourceAtVersionStub = stub
}

func (fake *ConfigStoreCache) GetResourceAtVersionArgsForCall(i int) (string, string) {
	fake.getResourceAtVersionMutex.RLock()
	defer fake.getResourceAtVersionMutex.RUnlock()
	argsForCall := fake.getResourceAtVersionArgsForCall[i]
	return argsForCall.arg1, argsForCall.arg2
}

func (fake *ConfigStoreCache) GetResourceAtVersionReturns(result1 string, result2 error) {
	fake.getResourceAtVersionMutex.Lock()
	defer fake.getResourceAtVersionMutex.Unlock()
	fake.GetResourceAtVersionStub = nil
	fake.getResourceAtVersionReturns = struct {
		result1 string
		result2 error
	}{result1, result2}
}

func (fake *ConfigStoreCache) GetResourceAtVersionReturnsOnCall(i int, result1 string, result2 error) {
	fake.getResourceAtVersionMutex.Lock()
	defer fake.getResourceAtVersionMutex.Unlock()
	fake.GetResourceAtVersionStub = nil
	if fake.getResourceAtVersionReturnsOnCall == nil {
		fake.getResourceAtVersionReturnsOnCall = make(map[int]struct {
			result1 string
			result2 error
		})
	}
	fake.getResourceAtVersionReturnsOnCall[i] = struct {
		result1 string
		result2 error
	}{result1, result2}
}

func (fake *ConfigStoreCache) HasSynced() bool {
	fake.hasSyncedMutex.Lock()
	ret, specificReturn := fake.hasSyncedReturnsOnCall[len(fake.hasSyncedArgsForCall)]
	fake.hasSyncedArgsForCall = append(fake.hasSyncedArgsForCall, struct {
	}{})
	fake.recordInvocation("HasSynced", []interface{}{})
	fake.hasSyncedMutex.Unlock()
	if fake.HasSyncedStub != nil {
		return fake.HasSyncedStub()
	}
	if specificReturn {
		return ret.result1
	}
	fakeReturns := fake.hasSyncedReturns
	return fakeReturns.result1
}

func (fake *ConfigStoreCache) HasSyncedCallCount() int {
	fake.hasSyncedMutex.RLock()
	defer fake.hasSyncedMutex.RUnlock()
	return len(fake.hasSyncedArgsForCall)
}

func (fake *ConfigStoreCache) HasSyncedCalls(stub func() bool) {
	fake.hasSyncedMutex.Lock()
	defer fake.hasSyncedMutex.Unlock()
	fake.HasSyncedStub = stub
}

func (fake *ConfigStoreCache) HasSyncedReturns(result1 bool) {
	fake.hasSyncedMutex.Lock()
	defer fake.hasSyncedMutex.Unlock()
	fake.HasSyncedStub = nil
	fake.hasSyncedReturns = struct {
		result1 bool
	}{result1}
}

func (fake *ConfigStoreCache) HasSyncedReturnsOnCall(i int, result1 bool) {
	fake.hasSyncedMutex.Lock()
	defer fake.hasSyncedMutex.Unlock()
	fake.HasSyncedStub = nil
	if fake.hasSyncedReturnsOnCall == nil {
		fake.hasSyncedReturnsOnCall = make(map[int]struct {
			result1 bool
		})
	}
	fake.hasSyncedReturnsOnCall[i] = struct {
		result1 bool
	}{result1}
}

func (fake *ConfigStoreCache) List(arg1 resource.GroupVersionKind, arg2 string) ([]model.Config, error) {
	fake.listMutex.Lock()
	ret, specificReturn := fake.listReturnsOnCall[len(fake.listArgsForCall)]
	fake.listArgsForCall = append(fake.listArgsForCall, struct {
		arg1 resource.GroupVersionKind
		arg2 string
	}{arg1, arg2})
	fake.recordInvocation("List", []interface{}{arg1, arg2})
	fake.listMutex.Unlock()
	if fake.ListStub != nil {
		return fake.ListStub(arg1, arg2)
	}
	if specificReturn {
		return ret.result1, ret.result2
	}
	fakeReturns := fake.listReturns
	return fakeReturns.result1, fakeReturns.result2
}

func (fake *ConfigStoreCache) ListCallCount() int {
	fake.listMutex.RLock()
	defer fake.listMutex.RUnlock()
	return len(fake.listArgsForCall)
}

func (fake *ConfigStoreCache) ListCalls(stub func(resource.GroupVersionKind, string) ([]model.Config, error)) {
	fake.listMutex.Lock()
	defer fake.listMutex.Unlock()
	fake.ListStub = stub
}

func (fake *ConfigStoreCache) ListArgsForCall(i int) (resource.GroupVersionKind, string) {
	fake.listMutex.RLock()
	defer fake.listMutex.RUnlock()
	argsForCall := fake.listArgsForCall[i]
	return argsForCall.arg1, argsForCall.arg2
}

func (fake *ConfigStoreCache) ListReturns(result1 []model.Config, result2 error) {
	fake.listMutex.Lock()
	defer fake.listMutex.Unlock()
	fake.ListStub = nil
	fake.listReturns = struct {
		result1 []model.Config
		result2 error
	}{result1, result2}
}

func (fake *ConfigStoreCache) ListReturnsOnCall(i int, result1 []model.Config, result2 error) {
	fake.listMutex.Lock()
	defer fake.listMutex.Unlock()
	fake.ListStub = nil
	if fake.listReturnsOnCall == nil {
		fake.listReturnsOnCall = make(map[int]struct {
			result1 []model.Config
			result2 error
		})
	}
	fake.listReturnsOnCall[i] = struct {
		result1 []model.Config
		result2 error
	}{result1, result2}
}

func (fake *ConfigStoreCache) RegisterEventHandler(arg1 resource.GroupVersionKind, arg2 func(model.Config, model.Config, model.Event)) {
	fake.registerEventHandlerMutex.Lock()
	fake.registerEventHandlerArgsForCall = append(fake.registerEventHandlerArgsForCall, struct {
		arg1 resource.GroupVersionKind
		arg2 func(model.Config, model.Config, model.Event)
	}{arg1, arg2})
	fake.recordInvocation("RegisterEventHandler", []interface{}{arg1, arg2})
	fake.registerEventHandlerMutex.Unlock()
	if fake.RegisterEventHandlerStub != nil {
		fake.RegisterEventHandlerStub(arg1, arg2)
	}
}

func (fake *ConfigStoreCache) RegisterEventHandlerCallCount() int {
	fake.registerEventHandlerMutex.RLock()
	defer fake.registerEventHandlerMutex.RUnlock()
	return len(fake.registerEventHandlerArgsForCall)
}

func (fake *ConfigStoreCache) RegisterEventHandlerCalls(stub func(resource.GroupVersionKind, func(model.Config, model.Config, model.Event))) {
	fake.registerEventHandlerMutex.Lock()
	defer fake.registerEventHandlerMutex.Unlock()
	fake.RegisterEventHandlerStub = stub
}

func (fake *ConfigStoreCache) RegisterEventHandlerArgsForCall(i int) (resource.GroupVersionKind, func(model.Config, model.Config, model.Event)) {
	fake.registerEventHandlerMutex.RLock()
	defer fake.registerEventHandlerMutex.RUnlock()
	argsForCall := fake.registerEventHandlerArgsForCall[i]
	return argsForCall.arg1, argsForCall.arg2
}

func (fake *ConfigStoreCache) Run(arg1 <-chan struct{}) {
	fake.runMutex.Lock()
	fake.runArgsForCall = append(fake.runArgsForCall, struct {
		arg1 <-chan struct{}
	}{arg1})
	fake.recordInvocation("Run", []interface{}{arg1})
	fake.runMutex.Unlock()
	if fake.RunStub != nil {
		fake.RunStub(arg1)
	}
}

func (fake *ConfigStoreCache) RunCallCount() int {
	fake.runMutex.RLock()
	defer fake.runMutex.RUnlock()
	return len(fake.runArgsForCall)
}

func (fake *ConfigStoreCache) RunCalls(stub func(<-chan struct{})) {
	fake.runMutex.Lock()
	defer fake.runMutex.Unlock()
	fake.RunStub = stub
}

func (fake *ConfigStoreCache) RunArgsForCall(i int) <-chan struct{} {
	fake.runMutex.RLock()
	defer fake.runMutex.RUnlock()
	argsForCall := fake.runArgsForCall[i]
	return argsForCall.arg1
}

func (fake *ConfigStoreCache) Schemas() collection.Schemas {
	fake.schemasMutex.Lock()
	ret, specificReturn := fake.schemasReturnsOnCall[len(fake.schemasArgsForCall)]
	fake.schemasArgsForCall = append(fake.schemasArgsForCall, struct {
	}{})
	fake.recordInvocation("Schemas", []interface{}{})
	fake.schemasMutex.Unlock()
	if fake.SchemasStub != nil {
		return fake.SchemasStub()
	}
	if specificReturn {
		return ret.result1
	}
	fakeReturns := fake.schemasReturns
	return fakeReturns.result1
}

func (fake *ConfigStoreCache) SchemasCallCount() int {
	fake.schemasMutex.RLock()
	defer fake.schemasMutex.RUnlock()
	return len(fake.schemasArgsForCall)
}

func (fake *ConfigStoreCache) SchemasCalls(stub func() collection.Schemas) {
	fake.schemasMutex.Lock()
	defer fake.schemasMutex.Unlock()
	fake.SchemasStub = stub
}

func (fake *ConfigStoreCache) SchemasReturns(result1 collection.Schemas) {
	fake.schemasMutex.Lock()
	defer fake.schemasMutex.Unlock()
	fake.SchemasStub = nil
	fake.schemasReturns = struct {
		result1 collection.Schemas
	}{result1}
}

func (fake *ConfigStoreCache) SchemasReturnsOnCall(i int, result1 collection.Schemas) {
	fake.schemasMutex.Lock()
	defer fake.schemasMutex.Unlock()
	fake.SchemasStub = nil
	if fake.schemasReturnsOnCall == nil {
		fake.schemasReturnsOnCall = make(map[int]struct {
			result1 collection.Schemas
		})
	}
	fake.schemasReturnsOnCall[i] = struct {
		result1 collection.Schemas
	}{result1}
}

func (fake *ConfigStoreCache) SetLedger(arg1 ledger.Ledger) error {
	fake.setLedgerMutex.Lock()
	ret, specificReturn := fake.setLedgerReturnsOnCall[len(fake.setLedgerArgsForCall)]
	fake.setLedgerArgsForCall = append(fake.setLedgerArgsForCall, struct {
		arg1 ledger.Ledger
	}{arg1})
	fake.recordInvocation("SetLedger", []interface{}{arg1})
	fake.setLedgerMutex.Unlock()
	if fake.SetLedgerStub != nil {
		return fake.SetLedgerStub(arg1)
	}
	if specificReturn {
		return ret.result1
	}
	fakeReturns := fake.setLedgerReturns
	return fakeReturns.result1
}

func (fake *ConfigStoreCache) SetLedgerCallCount() int {
	fake.setLedgerMutex.RLock()
	defer fake.setLedgerMutex.RUnlock()
	return len(fake.setLedgerArgsForCall)
}

func (fake *ConfigStoreCache) SetLedgerCalls(stub func(ledger.Ledger) error) {
	fake.setLedgerMutex.Lock()
	defer fake.setLedgerMutex.Unlock()
	fake.SetLedgerStub = stub
}

func (fake *ConfigStoreCache) SetLedgerArgsForCall(i int) ledger.Ledger {
	fake.setLedgerMutex.RLock()
	defer fake.setLedgerMutex.RUnlock()
	argsForCall := fake.setLedgerArgsForCall[i]
	return argsForCall.arg1
}

func (fake *ConfigStoreCache) SetLedgerReturns(result1 error) {
	fake.setLedgerMutex.Lock()
	defer fake.setLedgerMutex.Unlock()
	fake.SetLedgerStub = nil
	fake.setLedgerReturns = struct {
		result1 error
	}{result1}
}

func (fake *ConfigStoreCache) SetLedgerReturnsOnCall(i int, result1 error) {
	fake.setLedgerMutex.Lock()
	defer fake.setLedgerMutex.Unlock()
	fake.SetLedgerStub = nil
	if fake.setLedgerReturnsOnCall == nil {
		fake.setLedgerReturnsOnCall = make(map[int]struct {
			result1 error
		})
	}
	fake.setLedgerReturnsOnCall[i] = struct {
		result1 error
	}{result1}
}

func (fake *ConfigStoreCache) Update(arg1 model.Config) (string, error) {
	fake.updateMutex.Lock()
	ret, specificReturn := fake.updateReturnsOnCall[len(fake.updateArgsForCall)]
	fake.updateArgsForCall = append(fake.updateArgsForCall, struct {
		arg1 model.Config
	}{arg1})
	fake.recordInvocation("Update", []interface{}{arg1})
	fake.updateMutex.Unlock()
	if fake.UpdateStub != nil {
		return fake.UpdateStub(arg1)
	}
	if specificReturn {
		return ret.result1, ret.result2
	}
	fakeReturns := fake.updateReturns
	return fakeReturns.result1, fakeReturns.result2
}

func (fake *ConfigStoreCache) UpdateCallCount() int {
	fake.updateMutex.RLock()
	defer fake.updateMutex.RUnlock()
	return len(fake.updateArgsForCall)
}

func (fake *ConfigStoreCache) UpdateCalls(stub func(model.Config) (string, error)) {
	fake.updateMutex.Lock()
	defer fake.updateMutex.Unlock()
	fake.UpdateStub = stub
}

func (fake *ConfigStoreCache) UpdateArgsForCall(i int) model.Config {
	fake.updateMutex.RLock()
	defer fake.updateMutex.RUnlock()
	argsForCall := fake.updateArgsForCall[i]
	return argsForCall.arg1
}

func (fake *ConfigStoreCache) UpdateReturns(result1 string, result2 error) {
	fake.updateMutex.Lock()
	defer fake.updateMutex.Unlock()
	fake.UpdateStub = nil
	fake.updateReturns = struct {
		result1 string
		result2 error
	}{result1, result2}
}

func (fake *ConfigStoreCache) UpdateReturnsOnCall(i int, result1 string, result2 error) {
	fake.updateMutex.Lock()
	defer fake.updateMutex.Unlock()
	fake.UpdateStub = nil
	if fake.updateReturnsOnCall == nil {
		fake.updateReturnsOnCall = make(map[int]struct {
			result1 string
			result2 error
		})
	}
	fake.updateReturnsOnCall[i] = struct {
		result1 string
		result2 error
	}{result1, result2}
}

func (fake *ConfigStoreCache) Version() string {
	fake.versionMutex.Lock()
	ret, specificReturn := fake.versionReturnsOnCall[len(fake.versionArgsForCall)]
	fake.versionArgsForCall = append(fake.versionArgsForCall, struct {
	}{})
	fake.recordInvocation("Version", []interface{}{})
	fake.versionMutex.Unlock()
	if fake.VersionStub != nil {
		return fake.VersionStub()
	}
	if specificReturn {
		return ret.result1
	}
	fakeReturns := fake.versionReturns
	return fakeReturns.result1
}

func (fake *ConfigStoreCache) VersionCallCount() int {
	fake.versionMutex.RLock()
	defer fake.versionMutex.RUnlock()
	return len(fake.versionArgsForCall)
}

func (fake *ConfigStoreCache) VersionCalls(stub func() string) {
	fake.versionMutex.Lock()
	defer fake.versionMutex.Unlock()
	fake.VersionStub = stub
}

func (fake *ConfigStoreCache) VersionReturns(result1 string) {
	fake.versionMutex.Lock()
	defer fake.versionMutex.Unlock()
	fake.VersionStub = nil
	fake.versionReturns = struct {
		result1 string
	}{result1}
}

func (fake *ConfigStoreCache) VersionReturnsOnCall(i int, result1 string) {
	fake.versionMutex.Lock()
	defer fake.versionMutex.Unlock()
	fake.VersionStub = nil
	if fake.versionReturnsOnCall == nil {
		fake.versionReturnsOnCall = make(map[int]struct {
			result1 string
		})
	}
	fake.versionReturnsOnCall[i] = struct {
		result1 string
	}{result1}
}

func (fake *ConfigStoreCache) Invocations() map[string][][]interface{} {
	fake.invocationsMutex.RLock()
	defer fake.invocationsMutex.RUnlock()
	fake.createMutex.RLock()
	defer fake.createMutex.RUnlock()
	fake.deleteMutex.RLock()
	defer fake.deleteMutex.RUnlock()
	fake.getMutex.RLock()
	defer fake.getMutex.RUnlock()
	fake.getLedgerMutex.RLock()
	defer fake.getLedgerMutex.RUnlock()
	fake.getResourceAtVersionMutex.RLock()
	defer fake.getResourceAtVersionMutex.RUnlock()
	fake.hasSyncedMutex.RLock()
	defer fake.hasSyncedMutex.RUnlock()
	fake.listMutex.RLock()
	defer fake.listMutex.RUnlock()
	fake.registerEventHandlerMutex.RLock()
	defer fake.registerEventHandlerMutex.RUnlock()
	fake.runMutex.RLock()
	defer fake.runMutex.RUnlock()
	fake.schemasMutex.RLock()
	defer fake.schemasMutex.RUnlock()
	fake.setLedgerMutex.RLock()
	defer fake.setLedgerMutex.RUnlock()
	fake.updateMutex.RLock()
	defer fake.updateMutex.RUnlock()
	fake.versionMutex.RLock()
	defer fake.versionMutex.RUnlock()
	copiedInvocations := map[string][][]interface{}{}
	for key, value := range fake.invocations {
		copiedInvocations[key] = value
	}
	return copiedInvocations
}

func (fake *ConfigStoreCache) recordInvocation(key string, args []interface{}) {
	fake.invocationsMutex.Lock()
	defer fake.invocationsMutex.Unlock()
	if fake.invocations == nil {
		fake.invocations = map[string][][]interface{}{}
	}
	if fake.invocations[key] == nil {
		fake.invocations[key] = [][]interface{}{}
	}
	fake.invocations[key] = append(fake.invocations[key], args)
}

var _ model.ConfigStoreCache = new(ConfigStoreCache)
