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

import (
	"net/http"
	"sync"
)

type ErrorResponse struct {
	InternalServerErrorStub        func(http.ResponseWriter, error, string, string)
	internalServerErrorMutex       sync.RWMutex
	internalServerErrorArgsForCall []struct {
		arg1 http.ResponseWriter
		arg2 error
		arg3 string
		arg4 string
	}
	BadRequestStub        func(http.ResponseWriter, error, string, string)
	badRequestMutex       sync.RWMutex
	badRequestArgsForCall []struct {
		arg1 http.ResponseWriter
		arg2 error
		arg3 string
		arg4 string
	}
	NotAcceptableStub        func(http.ResponseWriter, error, string, string)
	notAcceptableMutex       sync.RWMutex
	notAcceptableArgsForCall []struct {
		arg1 http.ResponseWriter
		arg2 error
		arg3 string
		arg4 string
	}
	ForbiddenStub        func(http.ResponseWriter, error, string, string)
	forbiddenMutex       sync.RWMutex
	forbiddenArgsForCall []struct {
		arg1 http.ResponseWriter
		arg2 error
		arg3 string
		arg4 string
	}
	UnauthorizedStub        func(http.ResponseWriter, error, string, string)
	unauthorizedMutex       sync.RWMutex
	unauthorizedArgsForCall []struct {
		arg1 http.ResponseWriter
		arg2 error
		arg3 string
		arg4 string
	}
	invocations      map[string][][]interface{}
	invocationsMutex sync.RWMutex
}

func (fake *ErrorResponse) InternalServerError(arg1 http.ResponseWriter, arg2 error, arg3 string, arg4 string) {
	fake.internalServerErrorMutex.Lock()
	fake.internalServerErrorArgsForCall = append(fake.internalServerErrorArgsForCall, struct {
		arg1 http.ResponseWriter
		arg2 error
		arg3 string
		arg4 string
	}{arg1, arg2, arg3, arg4})
	fake.recordInvocation("InternalServerError", []interface{}{arg1, arg2, arg3, arg4})
	fake.internalServerErrorMutex.Unlock()
	if fake.InternalServerErrorStub != nil {
		fake.InternalServerErrorStub(arg1, arg2, arg3, arg4)
	}
}

func (fake *ErrorResponse) InternalServerErrorCallCount() int {
	fake.internalServerErrorMutex.RLock()
	defer fake.internalServerErrorMutex.RUnlock()
	return len(fake.internalServerErrorArgsForCall)
}

func (fake *ErrorResponse) InternalServerErrorArgsForCall(i int) (http.ResponseWriter, error, string, string) {
	fake.internalServerErrorMutex.RLock()
	defer fake.internalServerErrorMutex.RUnlock()
	return fake.internalServerErrorArgsForCall[i].arg1, fake.internalServerErrorArgsForCall[i].arg2, fake.internalServerErrorArgsForCall[i].arg3, fake.internalServerErrorArgsForCall[i].arg4
}

func (fake *ErrorResponse) BadRequest(arg1 http.ResponseWriter, arg2 error, arg3 string, arg4 string) {
	fake.badRequestMutex.Lock()
	fake.badRequestArgsForCall = append(fake.badRequestArgsForCall, struct {
		arg1 http.ResponseWriter
		arg2 error
		arg3 string
		arg4 string
	}{arg1, arg2, arg3, arg4})
	fake.recordInvocation("BadRequest", []interface{}{arg1, arg2, arg3, arg4})
	fake.badRequestMutex.Unlock()
	if fake.BadRequestStub != nil {
		fake.BadRequestStub(arg1, arg2, arg3, arg4)
	}
}

func (fake *ErrorResponse) BadRequestCallCount() int {
	fake.badRequestMutex.RLock()
	defer fake.badRequestMutex.RUnlock()
	return len(fake.badRequestArgsForCall)
}

func (fake *ErrorResponse) BadRequestArgsForCall(i int) (http.ResponseWriter, error, string, string) {
	fake.badRequestMutex.RLock()
	defer fake.badRequestMutex.RUnlock()
	return fake.badRequestArgsForCall[i].arg1, fake.badRequestArgsForCall[i].arg2, fake.badRequestArgsForCall[i].arg3, fake.badRequestArgsForCall[i].arg4
}

func (fake *ErrorResponse) NotAcceptable(arg1 http.ResponseWriter, arg2 error, arg3 string, arg4 string) {
	fake.notAcceptableMutex.Lock()
	fake.notAcceptableArgsForCall = append(fake.notAcceptableArgsForCall, struct {
		arg1 http.ResponseWriter
		arg2 error
		arg3 string
		arg4 string
	}{arg1, arg2, arg3, arg4})
	fake.recordInvocation("NotAcceptable", []interface{}{arg1, arg2, arg3, arg4})
	fake.notAcceptableMutex.Unlock()
	if fake.NotAcceptableStub != nil {
		fake.NotAcceptableStub(arg1, arg2, arg3, arg4)
	}
}

func (fake *ErrorResponse) NotAcceptableCallCount() int {
	fake.notAcceptableMutex.RLock()
	defer fake.notAcceptableMutex.RUnlock()
	return len(fake.notAcceptableArgsForCall)
}

func (fake *ErrorResponse) NotAcceptableArgsForCall(i int) (http.ResponseWriter, error, string, string) {
	fake.notAcceptableMutex.RLock()
	defer fake.notAcceptableMutex.RUnlock()
	return fake.notAcceptableArgsForCall[i].arg1, fake.notAcceptableArgsForCall[i].arg2, fake.notAcceptableArgsForCall[i].arg3, fake.notAcceptableArgsForCall[i].arg4
}

func (fake *ErrorResponse) Forbidden(arg1 http.ResponseWriter, arg2 error, arg3 string, arg4 string) {
	fake.forbiddenMutex.Lock()
	fake.forbiddenArgsForCall = append(fake.forbiddenArgsForCall, struct {
		arg1 http.ResponseWriter
		arg2 error
		arg3 string
		arg4 string
	}{arg1, arg2, arg3, arg4})
	fake.recordInvocation("Forbidden", []interface{}{arg1, arg2, arg3, arg4})
	fake.forbiddenMutex.Unlock()
	if fake.ForbiddenStub != nil {
		fake.ForbiddenStub(arg1, arg2, arg3, arg4)
	}
}

func (fake *ErrorResponse) ForbiddenCallCount() int {
	fake.forbiddenMutex.RLock()
	defer fake.forbiddenMutex.RUnlock()
	return len(fake.forbiddenArgsForCall)
}

func (fake *ErrorResponse) ForbiddenArgsForCall(i int) (http.ResponseWriter, error, string, string) {
	fake.forbiddenMutex.RLock()
	defer fake.forbiddenMutex.RUnlock()
	return fake.forbiddenArgsForCall[i].arg1, fake.forbiddenArgsForCall[i].arg2, fake.forbiddenArgsForCall[i].arg3, fake.forbiddenArgsForCall[i].arg4
}

func (fake *ErrorResponse) Unauthorized(arg1 http.ResponseWriter, arg2 error, arg3 string, arg4 string) {
	fake.unauthorizedMutex.Lock()
	fake.unauthorizedArgsForCall = append(fake.unauthorizedArgsForCall, struct {
		arg1 http.ResponseWriter
		arg2 error
		arg3 string
		arg4 string
	}{arg1, arg2, arg3, arg4})
	fake.recordInvocation("Unauthorized", []interface{}{arg1, arg2, arg3, arg4})
	fake.unauthorizedMutex.Unlock()
	if fake.UnauthorizedStub != nil {
		fake.UnauthorizedStub(arg1, arg2, arg3, arg4)
	}
}

func (fake *ErrorResponse) UnauthorizedCallCount() int {
	fake.unauthorizedMutex.RLock()
	defer fake.unauthorizedMutex.RUnlock()
	return len(fake.unauthorizedArgsForCall)
}

func (fake *ErrorResponse) UnauthorizedArgsForCall(i int) (http.ResponseWriter, error, string, string) {
	fake.unauthorizedMutex.RLock()
	defer fake.unauthorizedMutex.RUnlock()
	return fake.unauthorizedArgsForCall[i].arg1, fake.unauthorizedArgsForCall[i].arg2, fake.unauthorizedArgsForCall[i].arg3, fake.unauthorizedArgsForCall[i].arg4
}

func (fake *ErrorResponse) Invocations() map[string][][]interface{} {
	fake.invocationsMutex.RLock()
	defer fake.invocationsMutex.RUnlock()
	fake.internalServerErrorMutex.RLock()
	defer fake.internalServerErrorMutex.RUnlock()
	fake.badRequestMutex.RLock()
	defer fake.badRequestMutex.RUnlock()
	fake.notAcceptableMutex.RLock()
	defer fake.notAcceptableMutex.RUnlock()
	fake.forbiddenMutex.RLock()
	defer fake.forbiddenMutex.RUnlock()
	fake.unauthorizedMutex.RLock()
	defer fake.unauthorizedMutex.RUnlock()
	copiedInvocations := map[string][][]interface{}{}
	for key, value := range fake.invocations {
		copiedInvocations[key] = value
	}
	return copiedInvocations
}

func (fake *ErrorResponse) 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)
}
