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

import (
	"sync"
	"time"

	"code.cloudfoundry.org/cli/util/ui"
)

type FakeLogMessage struct {
	MessageStub        func() string
	messageMutex       sync.RWMutex
	messageArgsForCall []struct {
	}
	messageReturns struct {
		result1 string
	}
	messageReturnsOnCall map[int]struct {
		result1 string
	}
	SourceInstanceStub        func() string
	sourceInstanceMutex       sync.RWMutex
	sourceInstanceArgsForCall []struct {
	}
	sourceInstanceReturns struct {
		result1 string
	}
	sourceInstanceReturnsOnCall map[int]struct {
		result1 string
	}
	SourceTypeStub        func() string
	sourceTypeMutex       sync.RWMutex
	sourceTypeArgsForCall []struct {
	}
	sourceTypeReturns struct {
		result1 string
	}
	sourceTypeReturnsOnCall map[int]struct {
		result1 string
	}
	TimestampStub        func() time.Time
	timestampMutex       sync.RWMutex
	timestampArgsForCall []struct {
	}
	timestampReturns struct {
		result1 time.Time
	}
	timestampReturnsOnCall map[int]struct {
		result1 time.Time
	}
	TypeStub        func() string
	typeMutex       sync.RWMutex
	typeArgsForCall []struct {
	}
	typeReturns struct {
		result1 string
	}
	typeReturnsOnCall map[int]struct {
		result1 string
	}
	invocations      map[string][][]interface{}
	invocationsMutex sync.RWMutex
}

func (fake *FakeLogMessage) Message() string {
	fake.messageMutex.Lock()
	ret, specificReturn := fake.messageReturnsOnCall[len(fake.messageArgsForCall)]
	fake.messageArgsForCall = append(fake.messageArgsForCall, struct {
	}{})
	stub := fake.MessageStub
	fakeReturns := fake.messageReturns
	fake.recordInvocation("Message", []interface{}{})
	fake.messageMutex.Unlock()
	if stub != nil {
		return stub()
	}
	if specificReturn {
		return ret.result1
	}
	return fakeReturns.result1
}

func (fake *FakeLogMessage) MessageCallCount() int {
	fake.messageMutex.RLock()
	defer fake.messageMutex.RUnlock()
	return len(fake.messageArgsForCall)
}

func (fake *FakeLogMessage) MessageCalls(stub func() string) {
	fake.messageMutex.Lock()
	defer fake.messageMutex.Unlock()
	fake.MessageStub = stub
}

func (fake *FakeLogMessage) MessageReturns(result1 string) {
	fake.messageMutex.Lock()
	defer fake.messageMutex.Unlock()
	fake.MessageStub = nil
	fake.messageReturns = struct {
		result1 string
	}{result1}
}

func (fake *FakeLogMessage) MessageReturnsOnCall(i int, result1 string) {
	fake.messageMutex.Lock()
	defer fake.messageMutex.Unlock()
	fake.MessageStub = nil
	if fake.messageReturnsOnCall == nil {
		fake.messageReturnsOnCall = make(map[int]struct {
			result1 string
		})
	}
	fake.messageReturnsOnCall[i] = struct {
		result1 string
	}{result1}
}

func (fake *FakeLogMessage) SourceInstance() string {
	fake.sourceInstanceMutex.Lock()
	ret, specificReturn := fake.sourceInstanceReturnsOnCall[len(fake.sourceInstanceArgsForCall)]
	fake.sourceInstanceArgsForCall = append(fake.sourceInstanceArgsForCall, struct {
	}{})
	stub := fake.SourceInstanceStub
	fakeReturns := fake.sourceInstanceReturns
	fake.recordInvocation("SourceInstance", []interface{}{})
	fake.sourceInstanceMutex.Unlock()
	if stub != nil {
		return stub()
	}
	if specificReturn {
		return ret.result1
	}
	return fakeReturns.result1
}

func (fake *FakeLogMessage) SourceInstanceCallCount() int {
	fake.sourceInstanceMutex.RLock()
	defer fake.sourceInstanceMutex.RUnlock()
	return len(fake.sourceInstanceArgsForCall)
}

func (fake *FakeLogMessage) SourceInstanceCalls(stub func() string) {
	fake.sourceInstanceMutex.Lock()
	defer fake.sourceInstanceMutex.Unlock()
	fake.SourceInstanceStub = stub
}

func (fake *FakeLogMessage) SourceInstanceReturns(result1 string) {
	fake.sourceInstanceMutex.Lock()
	defer fake.sourceInstanceMutex.Unlock()
	fake.SourceInstanceStub = nil
	fake.sourceInstanceReturns = struct {
		result1 string
	}{result1}
}

func (fake *FakeLogMessage) SourceInstanceReturnsOnCall(i int, result1 string) {
	fake.sourceInstanceMutex.Lock()
	defer fake.sourceInstanceMutex.Unlock()
	fake.SourceInstanceStub = nil
	if fake.sourceInstanceReturnsOnCall == nil {
		fake.sourceInstanceReturnsOnCall = make(map[int]struct {
			result1 string
		})
	}
	fake.sourceInstanceReturnsOnCall[i] = struct {
		result1 string
	}{result1}
}

func (fake *FakeLogMessage) SourceType() string {
	fake.sourceTypeMutex.Lock()
	ret, specificReturn := fake.sourceTypeReturnsOnCall[len(fake.sourceTypeArgsForCall)]
	fake.sourceTypeArgsForCall = append(fake.sourceTypeArgsForCall, struct {
	}{})
	stub := fake.SourceTypeStub
	fakeReturns := fake.sourceTypeReturns
	fake.recordInvocation("SourceType", []interface{}{})
	fake.sourceTypeMutex.Unlock()
	if stub != nil {
		return stub()
	}
	if specificReturn {
		return ret.result1
	}
	return fakeReturns.result1
}

func (fake *FakeLogMessage) SourceTypeCallCount() int {
	fake.sourceTypeMutex.RLock()
	defer fake.sourceTypeMutex.RUnlock()
	return len(fake.sourceTypeArgsForCall)
}

func (fake *FakeLogMessage) SourceTypeCalls(stub func() string) {
	fake.sourceTypeMutex.Lock()
	defer fake.sourceTypeMutex.Unlock()
	fake.SourceTypeStub = stub
}

func (fake *FakeLogMessage) SourceTypeReturns(result1 string) {
	fake.sourceTypeMutex.Lock()
	defer fake.sourceTypeMutex.Unlock()
	fake.SourceTypeStub = nil
	fake.sourceTypeReturns = struct {
		result1 string
	}{result1}
}

func (fake *FakeLogMessage) SourceTypeReturnsOnCall(i int, result1 string) {
	fake.sourceTypeMutex.Lock()
	defer fake.sourceTypeMutex.Unlock()
	fake.SourceTypeStub = nil
	if fake.sourceTypeReturnsOnCall == nil {
		fake.sourceTypeReturnsOnCall = make(map[int]struct {
			result1 string
		})
	}
	fake.sourceTypeReturnsOnCall[i] = struct {
		result1 string
	}{result1}
}

func (fake *FakeLogMessage) Timestamp() time.Time {
	fake.timestampMutex.Lock()
	ret, specificReturn := fake.timestampReturnsOnCall[len(fake.timestampArgsForCall)]
	fake.timestampArgsForCall = append(fake.timestampArgsForCall, struct {
	}{})
	stub := fake.TimestampStub
	fakeReturns := fake.timestampReturns
	fake.recordInvocation("Timestamp", []interface{}{})
	fake.timestampMutex.Unlock()
	if stub != nil {
		return stub()
	}
	if specificReturn {
		return ret.result1
	}
	return fakeReturns.result1
}

func (fake *FakeLogMessage) TimestampCallCount() int {
	fake.timestampMutex.RLock()
	defer fake.timestampMutex.RUnlock()
	return len(fake.timestampArgsForCall)
}

func (fake *FakeLogMessage) TimestampCalls(stub func() time.Time) {
	fake.timestampMutex.Lock()
	defer fake.timestampMutex.Unlock()
	fake.TimestampStub = stub
}

func (fake *FakeLogMessage) TimestampReturns(result1 time.Time) {
	fake.timestampMutex.Lock()
	defer fake.timestampMutex.Unlock()
	fake.TimestampStub = nil
	fake.timestampReturns = struct {
		result1 time.Time
	}{result1}
}

func (fake *FakeLogMessage) TimestampReturnsOnCall(i int, result1 time.Time) {
	fake.timestampMutex.Lock()
	defer fake.timestampMutex.Unlock()
	fake.TimestampStub = nil
	if fake.timestampReturnsOnCall == nil {
		fake.timestampReturnsOnCall = make(map[int]struct {
			result1 time.Time
		})
	}
	fake.timestampReturnsOnCall[i] = struct {
		result1 time.Time
	}{result1}
}

func (fake *FakeLogMessage) Type() string {
	fake.typeMutex.Lock()
	ret, specificReturn := fake.typeReturnsOnCall[len(fake.typeArgsForCall)]
	fake.typeArgsForCall = append(fake.typeArgsForCall, struct {
	}{})
	stub := fake.TypeStub
	fakeReturns := fake.typeReturns
	fake.recordInvocation("Type", []interface{}{})
	fake.typeMutex.Unlock()
	if stub != nil {
		return stub()
	}
	if specificReturn {
		return ret.result1
	}
	return fakeReturns.result1
}

func (fake *FakeLogMessage) TypeCallCount() int {
	fake.typeMutex.RLock()
	defer fake.typeMutex.RUnlock()
	return len(fake.typeArgsForCall)
}

func (fake *FakeLogMessage) TypeCalls(stub func() string) {
	fake.typeMutex.Lock()
	defer fake.typeMutex.Unlock()
	fake.TypeStub = stub
}

func (fake *FakeLogMessage) TypeReturns(result1 string) {
	fake.typeMutex.Lock()
	defer fake.typeMutex.Unlock()
	fake.TypeStub = nil
	fake.typeReturns = struct {
		result1 string
	}{result1}
}

func (fake *FakeLogMessage) TypeReturnsOnCall(i int, result1 string) {
	fake.typeMutex.Lock()
	defer fake.typeMutex.Unlock()
	fake.TypeStub = nil
	if fake.typeReturnsOnCall == nil {
		fake.typeReturnsOnCall = make(map[int]struct {
			result1 string
		})
	}
	fake.typeReturnsOnCall[i] = struct {
		result1 string
	}{result1}
}

func (fake *FakeLogMessage) Invocations() map[string][][]interface{} {
	fake.invocationsMutex.RLock()
	defer fake.invocationsMutex.RUnlock()
	fake.messageMutex.RLock()
	defer fake.messageMutex.RUnlock()
	fake.sourceInstanceMutex.RLock()
	defer fake.sourceInstanceMutex.RUnlock()
	fake.sourceTypeMutex.RLock()
	defer fake.sourceTypeMutex.RUnlock()
	fake.timestampMutex.RLock()
	defer fake.timestampMutex.RUnlock()
	fake.typeMutex.RLock()
	defer fake.typeMutex.RUnlock()
	copiedInvocations := map[string][][]interface{}{}
	for key, value := range fake.invocations {
		copiedInvocations[key] = value
	}
	return copiedInvocations
}

func (fake *FakeLogMessage) 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 _ ui.LogMessage = new(FakeLogMessage)
