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

import (
	"sync"
	"time"

	"code.cloudfoundry.org/cli/cf/api/logs"
)

type FakeLoggable struct {
	GetSourceNameStub        func() string
	getSourceNameMutex       sync.RWMutex
	getSourceNameArgsForCall []struct {
	}
	getSourceNameReturns struct {
		result1 string
	}
	getSourceNameReturnsOnCall map[int]struct {
		result1 string
	}
	ToLogStub        func(*time.Location) string
	toLogMutex       sync.RWMutex
	toLogArgsForCall []struct {
		arg1 *time.Location
	}
	toLogReturns struct {
		result1 string
	}
	toLogReturnsOnCall map[int]struct {
		result1 string
	}
	ToSimpleLogStub        func() string
	toSimpleLogMutex       sync.RWMutex
	toSimpleLogArgsForCall []struct {
	}
	toSimpleLogReturns struct {
		result1 string
	}
	toSimpleLogReturnsOnCall map[int]struct {
		result1 string
	}
	invocations      map[string][][]interface{}
	invocationsMutex sync.RWMutex
}

func (fake *FakeLoggable) GetSourceName() string {
	fake.getSourceNameMutex.Lock()
	ret, specificReturn := fake.getSourceNameReturnsOnCall[len(fake.getSourceNameArgsForCall)]
	fake.getSourceNameArgsForCall = append(fake.getSourceNameArgsForCall, struct {
	}{})
	fake.recordInvocation("GetSourceName", []interface{}{})
	fake.getSourceNameMutex.Unlock()
	if fake.GetSourceNameStub != nil {
		return fake.GetSourceNameStub()
	}
	if specificReturn {
		return ret.result1
	}
	fakeReturns := fake.getSourceNameReturns
	return fakeReturns.result1
}

func (fake *FakeLoggable) GetSourceNameCallCount() int {
	fake.getSourceNameMutex.RLock()
	defer fake.getSourceNameMutex.RUnlock()
	return len(fake.getSourceNameArgsForCall)
}

func (fake *FakeLoggable) GetSourceNameCalls(stub func() string) {
	fake.getSourceNameMutex.Lock()
	defer fake.getSourceNameMutex.Unlock()
	fake.GetSourceNameStub = stub
}

func (fake *FakeLoggable) GetSourceNameReturns(result1 string) {
	fake.getSourceNameMutex.Lock()
	defer fake.getSourceNameMutex.Unlock()
	fake.GetSourceNameStub = nil
	fake.getSourceNameReturns = struct {
		result1 string
	}{result1}
}

func (fake *FakeLoggable) GetSourceNameReturnsOnCall(i int, result1 string) {
	fake.getSourceNameMutex.Lock()
	defer fake.getSourceNameMutex.Unlock()
	fake.GetSourceNameStub = nil
	if fake.getSourceNameReturnsOnCall == nil {
		fake.getSourceNameReturnsOnCall = make(map[int]struct {
			result1 string
		})
	}
	fake.getSourceNameReturnsOnCall[i] = struct {
		result1 string
	}{result1}
}

func (fake *FakeLoggable) ToLog(arg1 *time.Location) string {
	fake.toLogMutex.Lock()
	ret, specificReturn := fake.toLogReturnsOnCall[len(fake.toLogArgsForCall)]
	fake.toLogArgsForCall = append(fake.toLogArgsForCall, struct {
		arg1 *time.Location
	}{arg1})
	fake.recordInvocation("ToLog", []interface{}{arg1})
	fake.toLogMutex.Unlock()
	if fake.ToLogStub != nil {
		return fake.ToLogStub(arg1)
	}
	if specificReturn {
		return ret.result1
	}
	fakeReturns := fake.toLogReturns
	return fakeReturns.result1
}

func (fake *FakeLoggable) ToLogCallCount() int {
	fake.toLogMutex.RLock()
	defer fake.toLogMutex.RUnlock()
	return len(fake.toLogArgsForCall)
}

func (fake *FakeLoggable) ToLogCalls(stub func(*time.Location) string) {
	fake.toLogMutex.Lock()
	defer fake.toLogMutex.Unlock()
	fake.ToLogStub = stub
}

func (fake *FakeLoggable) ToLogArgsForCall(i int) *time.Location {
	fake.toLogMutex.RLock()
	defer fake.toLogMutex.RUnlock()
	argsForCall := fake.toLogArgsForCall[i]
	return argsForCall.arg1
}

func (fake *FakeLoggable) ToLogReturns(result1 string) {
	fake.toLogMutex.Lock()
	defer fake.toLogMutex.Unlock()
	fake.ToLogStub = nil
	fake.toLogReturns = struct {
		result1 string
	}{result1}
}

func (fake *FakeLoggable) ToLogReturnsOnCall(i int, result1 string) {
	fake.toLogMutex.Lock()
	defer fake.toLogMutex.Unlock()
	fake.ToLogStub = nil
	if fake.toLogReturnsOnCall == nil {
		fake.toLogReturnsOnCall = make(map[int]struct {
			result1 string
		})
	}
	fake.toLogReturnsOnCall[i] = struct {
		result1 string
	}{result1}
}

func (fake *FakeLoggable) ToSimpleLog() string {
	fake.toSimpleLogMutex.Lock()
	ret, specificReturn := fake.toSimpleLogReturnsOnCall[len(fake.toSimpleLogArgsForCall)]
	fake.toSimpleLogArgsForCall = append(fake.toSimpleLogArgsForCall, struct {
	}{})
	fake.recordInvocation("ToSimpleLog", []interface{}{})
	fake.toSimpleLogMutex.Unlock()
	if fake.ToSimpleLogStub != nil {
		return fake.ToSimpleLogStub()
	}
	if specificReturn {
		return ret.result1
	}
	fakeReturns := fake.toSimpleLogReturns
	return fakeReturns.result1
}

func (fake *FakeLoggable) ToSimpleLogCallCount() int {
	fake.toSimpleLogMutex.RLock()
	defer fake.toSimpleLogMutex.RUnlock()
	return len(fake.toSimpleLogArgsForCall)
}

func (fake *FakeLoggable) ToSimpleLogCalls(stub func() string) {
	fake.toSimpleLogMutex.Lock()
	defer fake.toSimpleLogMutex.Unlock()
	fake.ToSimpleLogStub = stub
}

func (fake *FakeLoggable) ToSimpleLogReturns(result1 string) {
	fake.toSimpleLogMutex.Lock()
	defer fake.toSimpleLogMutex.Unlock()
	fake.ToSimpleLogStub = nil
	fake.toSimpleLogReturns = struct {
		result1 string
	}{result1}
}

func (fake *FakeLoggable) ToSimpleLogReturnsOnCall(i int, result1 string) {
	fake.toSimpleLogMutex.Lock()
	defer fake.toSimpleLogMutex.Unlock()
	fake.ToSimpleLogStub = nil
	if fake.toSimpleLogReturnsOnCall == nil {
		fake.toSimpleLogReturnsOnCall = make(map[int]struct {
			result1 string
		})
	}
	fake.toSimpleLogReturnsOnCall[i] = struct {
		result1 string
	}{result1}
}

func (fake *FakeLoggable) Invocations() map[string][][]interface{} {
	fake.invocationsMutex.RLock()
	defer fake.invocationsMutex.RUnlock()
	fake.getSourceNameMutex.RLock()
	defer fake.getSourceNameMutex.RUnlock()
	fake.toLogMutex.RLock()
	defer fake.toLogMutex.RUnlock()
	fake.toSimpleLogMutex.RLock()
	defer fake.toSimpleLogMutex.RUnlock()
	copiedInvocations := map[string][][]interface{}{}
	for key, value := range fake.invocations {
		copiedInvocations[key] = value
	}
	return copiedInvocations
}

func (fake *FakeLoggable) 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 _ logs.Loggable = new(FakeLoggable)
