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

import (
	"sync"

	"github.com/cloudfoundry/bosh-cli/v7/release"
	"github.com/cloudfoundry/bosh-cli/v7/release/pkg"
	"github.com/cloudfoundry/bosh-cli/v7/releasedir"
	"github.com/cppforlife/go-semi-semantic/version"
)

type FakeReleaseDir struct {
	BuildReleaseStub        func(string, version.Version, bool) (release.Release, error)
	buildReleaseMutex       sync.RWMutex
	buildReleaseArgsForCall []struct {
		arg1 string
		arg2 version.Version
		arg3 bool
	}
	buildReleaseReturns struct {
		result1 release.Release
		result2 error
	}
	buildReleaseReturnsOnCall map[int]struct {
		result1 release.Release
		result2 error
	}
	DefaultNameStub        func() (string, error)
	defaultNameMutex       sync.RWMutex
	defaultNameArgsForCall []struct {
	}
	defaultNameReturns struct {
		result1 string
		result2 error
	}
	defaultNameReturnsOnCall map[int]struct {
		result1 string
		result2 error
	}
	FinalizeReleaseStub        func(release.Release, bool) error
	finalizeReleaseMutex       sync.RWMutex
	finalizeReleaseArgsForCall []struct {
		arg1 release.Release
		arg2 bool
	}
	finalizeReleaseReturns struct {
		result1 error
	}
	finalizeReleaseReturnsOnCall map[int]struct {
		result1 error
	}
	FindReleaseStub        func(string, version.Version) (release.Release, error)
	findReleaseMutex       sync.RWMutex
	findReleaseArgsForCall []struct {
		arg1 string
		arg2 version.Version
	}
	findReleaseReturns struct {
		result1 release.Release
		result2 error
	}
	findReleaseReturnsOnCall map[int]struct {
		result1 release.Release
		result2 error
	}
	GenerateJobStub        func(string) error
	generateJobMutex       sync.RWMutex
	generateJobArgsForCall []struct {
		arg1 string
	}
	generateJobReturns struct {
		result1 error
	}
	generateJobReturnsOnCall map[int]struct {
		result1 error
	}
	GeneratePackageStub        func(string) error
	generatePackageMutex       sync.RWMutex
	generatePackageArgsForCall []struct {
		arg1 string
	}
	generatePackageReturns struct {
		result1 error
	}
	generatePackageReturnsOnCall map[int]struct {
		result1 error
	}
	InitStub        func(bool) error
	initMutex       sync.RWMutex
	initArgsForCall []struct {
		arg1 bool
	}
	initReturns struct {
		result1 error
	}
	initReturnsOnCall map[int]struct {
		result1 error
	}
	NextDevVersionStub        func(string, bool) (version.Version, error)
	nextDevVersionMutex       sync.RWMutex
	nextDevVersionArgsForCall []struct {
		arg1 string
		arg2 bool
	}
	nextDevVersionReturns struct {
		result1 version.Version
		result2 error
	}
	nextDevVersionReturnsOnCall map[int]struct {
		result1 version.Version
		result2 error
	}
	NextFinalVersionStub        func(string) (version.Version, error)
	nextFinalVersionMutex       sync.RWMutex
	nextFinalVersionArgsForCall []struct {
		arg1 string
	}
	nextFinalVersionReturns struct {
		result1 version.Version
		result2 error
	}
	nextFinalVersionReturnsOnCall map[int]struct {
		result1 version.Version
		result2 error
	}
	ResetStub        func() error
	resetMutex       sync.RWMutex
	resetArgsForCall []struct {
	}
	resetReturns struct {
		result1 error
	}
	resetReturnsOnCall map[int]struct {
		result1 error
	}
	VendorPackageStub        func(*pkg.Package, string) error
	vendorPackageMutex       sync.RWMutex
	vendorPackageArgsForCall []struct {
		arg1 *pkg.Package
		arg2 string
	}
	vendorPackageReturns struct {
		result1 error
	}
	vendorPackageReturnsOnCall map[int]struct {
		result1 error
	}
	invocations      map[string][][]interface{}
	invocationsMutex sync.RWMutex
}

func (fake *FakeReleaseDir) BuildRelease(arg1 string, arg2 version.Version, arg3 bool) (release.Release, error) {
	fake.buildReleaseMutex.Lock()
	ret, specificReturn := fake.buildReleaseReturnsOnCall[len(fake.buildReleaseArgsForCall)]
	fake.buildReleaseArgsForCall = append(fake.buildReleaseArgsForCall, struct {
		arg1 string
		arg2 version.Version
		arg3 bool
	}{arg1, arg2, arg3})
	stub := fake.BuildReleaseStub
	fakeReturns := fake.buildReleaseReturns
	fake.recordInvocation("BuildRelease", []interface{}{arg1, arg2, arg3})
	fake.buildReleaseMutex.Unlock()
	if stub != nil {
		return stub(arg1, arg2, arg3)
	}
	if specificReturn {
		return ret.result1, ret.result2
	}
	return fakeReturns.result1, fakeReturns.result2
}

func (fake *FakeReleaseDir) BuildReleaseCallCount() int {
	fake.buildReleaseMutex.RLock()
	defer fake.buildReleaseMutex.RUnlock()
	return len(fake.buildReleaseArgsForCall)
}

func (fake *FakeReleaseDir) BuildReleaseCalls(stub func(string, version.Version, bool) (release.Release, error)) {
	fake.buildReleaseMutex.Lock()
	defer fake.buildReleaseMutex.Unlock()
	fake.BuildReleaseStub = stub
}

func (fake *FakeReleaseDir) BuildReleaseArgsForCall(i int) (string, version.Version, bool) {
	fake.buildReleaseMutex.RLock()
	defer fake.buildReleaseMutex.RUnlock()
	argsForCall := fake.buildReleaseArgsForCall[i]
	return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3
}

func (fake *FakeReleaseDir) BuildReleaseReturns(result1 release.Release, result2 error) {
	fake.buildReleaseMutex.Lock()
	defer fake.buildReleaseMutex.Unlock()
	fake.BuildReleaseStub = nil
	fake.buildReleaseReturns = struct {
		result1 release.Release
		result2 error
	}{result1, result2}
}

func (fake *FakeReleaseDir) BuildReleaseReturnsOnCall(i int, result1 release.Release, result2 error) {
	fake.buildReleaseMutex.Lock()
	defer fake.buildReleaseMutex.Unlock()
	fake.BuildReleaseStub = nil
	if fake.buildReleaseReturnsOnCall == nil {
		fake.buildReleaseReturnsOnCall = make(map[int]struct {
			result1 release.Release
			result2 error
		})
	}
	fake.buildReleaseReturnsOnCall[i] = struct {
		result1 release.Release
		result2 error
	}{result1, result2}
}

func (fake *FakeReleaseDir) DefaultName() (string, error) {
	fake.defaultNameMutex.Lock()
	ret, specificReturn := fake.defaultNameReturnsOnCall[len(fake.defaultNameArgsForCall)]
	fake.defaultNameArgsForCall = append(fake.defaultNameArgsForCall, struct {
	}{})
	stub := fake.DefaultNameStub
	fakeReturns := fake.defaultNameReturns
	fake.recordInvocation("DefaultName", []interface{}{})
	fake.defaultNameMutex.Unlock()
	if stub != nil {
		return stub()
	}
	if specificReturn {
		return ret.result1, ret.result2
	}
	return fakeReturns.result1, fakeReturns.result2
}

func (fake *FakeReleaseDir) DefaultNameCallCount() int {
	fake.defaultNameMutex.RLock()
	defer fake.defaultNameMutex.RUnlock()
	return len(fake.defaultNameArgsForCall)
}

func (fake *FakeReleaseDir) DefaultNameCalls(stub func() (string, error)) {
	fake.defaultNameMutex.Lock()
	defer fake.defaultNameMutex.Unlock()
	fake.DefaultNameStub = stub
}

func (fake *FakeReleaseDir) DefaultNameReturns(result1 string, result2 error) {
	fake.defaultNameMutex.Lock()
	defer fake.defaultNameMutex.Unlock()
	fake.DefaultNameStub = nil
	fake.defaultNameReturns = struct {
		result1 string
		result2 error
	}{result1, result2}
}

func (fake *FakeReleaseDir) DefaultNameReturnsOnCall(i int, result1 string, result2 error) {
	fake.defaultNameMutex.Lock()
	defer fake.defaultNameMutex.Unlock()
	fake.DefaultNameStub = nil
	if fake.defaultNameReturnsOnCall == nil {
		fake.defaultNameReturnsOnCall = make(map[int]struct {
			result1 string
			result2 error
		})
	}
	fake.defaultNameReturnsOnCall[i] = struct {
		result1 string
		result2 error
	}{result1, result2}
}

func (fake *FakeReleaseDir) FinalizeRelease(arg1 release.Release, arg2 bool) error {
	fake.finalizeReleaseMutex.Lock()
	ret, specificReturn := fake.finalizeReleaseReturnsOnCall[len(fake.finalizeReleaseArgsForCall)]
	fake.finalizeReleaseArgsForCall = append(fake.finalizeReleaseArgsForCall, struct {
		arg1 release.Release
		arg2 bool
	}{arg1, arg2})
	stub := fake.FinalizeReleaseStub
	fakeReturns := fake.finalizeReleaseReturns
	fake.recordInvocation("FinalizeRelease", []interface{}{arg1, arg2})
	fake.finalizeReleaseMutex.Unlock()
	if stub != nil {
		return stub(arg1, arg2)
	}
	if specificReturn {
		return ret.result1
	}
	return fakeReturns.result1
}

func (fake *FakeReleaseDir) FinalizeReleaseCallCount() int {
	fake.finalizeReleaseMutex.RLock()
	defer fake.finalizeReleaseMutex.RUnlock()
	return len(fake.finalizeReleaseArgsForCall)
}

func (fake *FakeReleaseDir) FinalizeReleaseCalls(stub func(release.Release, bool) error) {
	fake.finalizeReleaseMutex.Lock()
	defer fake.finalizeReleaseMutex.Unlock()
	fake.FinalizeReleaseStub = stub
}

func (fake *FakeReleaseDir) FinalizeReleaseArgsForCall(i int) (release.Release, bool) {
	fake.finalizeReleaseMutex.RLock()
	defer fake.finalizeReleaseMutex.RUnlock()
	argsForCall := fake.finalizeReleaseArgsForCall[i]
	return argsForCall.arg1, argsForCall.arg2
}

func (fake *FakeReleaseDir) FinalizeReleaseReturns(result1 error) {
	fake.finalizeReleaseMutex.Lock()
	defer fake.finalizeReleaseMutex.Unlock()
	fake.FinalizeReleaseStub = nil
	fake.finalizeReleaseReturns = struct {
		result1 error
	}{result1}
}

func (fake *FakeReleaseDir) FinalizeReleaseReturnsOnCall(i int, result1 error) {
	fake.finalizeReleaseMutex.Lock()
	defer fake.finalizeReleaseMutex.Unlock()
	fake.FinalizeReleaseStub = nil
	if fake.finalizeReleaseReturnsOnCall == nil {
		fake.finalizeReleaseReturnsOnCall = make(map[int]struct {
			result1 error
		})
	}
	fake.finalizeReleaseReturnsOnCall[i] = struct {
		result1 error
	}{result1}
}

func (fake *FakeReleaseDir) FindRelease(arg1 string, arg2 version.Version) (release.Release, error) {
	fake.findReleaseMutex.Lock()
	ret, specificReturn := fake.findReleaseReturnsOnCall[len(fake.findReleaseArgsForCall)]
	fake.findReleaseArgsForCall = append(fake.findReleaseArgsForCall, struct {
		arg1 string
		arg2 version.Version
	}{arg1, arg2})
	stub := fake.FindReleaseStub
	fakeReturns := fake.findReleaseReturns
	fake.recordInvocation("FindRelease", []interface{}{arg1, arg2})
	fake.findReleaseMutex.Unlock()
	if stub != nil {
		return stub(arg1, arg2)
	}
	if specificReturn {
		return ret.result1, ret.result2
	}
	return fakeReturns.result1, fakeReturns.result2
}

func (fake *FakeReleaseDir) FindReleaseCallCount() int {
	fake.findReleaseMutex.RLock()
	defer fake.findReleaseMutex.RUnlock()
	return len(fake.findReleaseArgsForCall)
}

func (fake *FakeReleaseDir) FindReleaseCalls(stub func(string, version.Version) (release.Release, error)) {
	fake.findReleaseMutex.Lock()
	defer fake.findReleaseMutex.Unlock()
	fake.FindReleaseStub = stub
}

func (fake *FakeReleaseDir) FindReleaseArgsForCall(i int) (string, version.Version) {
	fake.findReleaseMutex.RLock()
	defer fake.findReleaseMutex.RUnlock()
	argsForCall := fake.findReleaseArgsForCall[i]
	return argsForCall.arg1, argsForCall.arg2
}

func (fake *FakeReleaseDir) FindReleaseReturns(result1 release.Release, result2 error) {
	fake.findReleaseMutex.Lock()
	defer fake.findReleaseMutex.Unlock()
	fake.FindReleaseStub = nil
	fake.findReleaseReturns = struct {
		result1 release.Release
		result2 error
	}{result1, result2}
}

func (fake *FakeReleaseDir) FindReleaseReturnsOnCall(i int, result1 release.Release, result2 error) {
	fake.findReleaseMutex.Lock()
	defer fake.findReleaseMutex.Unlock()
	fake.FindReleaseStub = nil
	if fake.findReleaseReturnsOnCall == nil {
		fake.findReleaseReturnsOnCall = make(map[int]struct {
			result1 release.Release
			result2 error
		})
	}
	fake.findReleaseReturnsOnCall[i] = struct {
		result1 release.Release
		result2 error
	}{result1, result2}
}

func (fake *FakeReleaseDir) GenerateJob(arg1 string) error {
	fake.generateJobMutex.Lock()
	ret, specificReturn := fake.generateJobReturnsOnCall[len(fake.generateJobArgsForCall)]
	fake.generateJobArgsForCall = append(fake.generateJobArgsForCall, struct {
		arg1 string
	}{arg1})
	stub := fake.GenerateJobStub
	fakeReturns := fake.generateJobReturns
	fake.recordInvocation("GenerateJob", []interface{}{arg1})
	fake.generateJobMutex.Unlock()
	if stub != nil {
		return stub(arg1)
	}
	if specificReturn {
		return ret.result1
	}
	return fakeReturns.result1
}

func (fake *FakeReleaseDir) GenerateJobCallCount() int {
	fake.generateJobMutex.RLock()
	defer fake.generateJobMutex.RUnlock()
	return len(fake.generateJobArgsForCall)
}

func (fake *FakeReleaseDir) GenerateJobCalls(stub func(string) error) {
	fake.generateJobMutex.Lock()
	defer fake.generateJobMutex.Unlock()
	fake.GenerateJobStub = stub
}

func (fake *FakeReleaseDir) GenerateJobArgsForCall(i int) string {
	fake.generateJobMutex.RLock()
	defer fake.generateJobMutex.RUnlock()
	argsForCall := fake.generateJobArgsForCall[i]
	return argsForCall.arg1
}

func (fake *FakeReleaseDir) GenerateJobReturns(result1 error) {
	fake.generateJobMutex.Lock()
	defer fake.generateJobMutex.Unlock()
	fake.GenerateJobStub = nil
	fake.generateJobReturns = struct {
		result1 error
	}{result1}
}

func (fake *FakeReleaseDir) GenerateJobReturnsOnCall(i int, result1 error) {
	fake.generateJobMutex.Lock()
	defer fake.generateJobMutex.Unlock()
	fake.GenerateJobStub = nil
	if fake.generateJobReturnsOnCall == nil {
		fake.generateJobReturnsOnCall = make(map[int]struct {
			result1 error
		})
	}
	fake.generateJobReturnsOnCall[i] = struct {
		result1 error
	}{result1}
}

func (fake *FakeReleaseDir) GeneratePackage(arg1 string) error {
	fake.generatePackageMutex.Lock()
	ret, specificReturn := fake.generatePackageReturnsOnCall[len(fake.generatePackageArgsForCall)]
	fake.generatePackageArgsForCall = append(fake.generatePackageArgsForCall, struct {
		arg1 string
	}{arg1})
	stub := fake.GeneratePackageStub
	fakeReturns := fake.generatePackageReturns
	fake.recordInvocation("GeneratePackage", []interface{}{arg1})
	fake.generatePackageMutex.Unlock()
	if stub != nil {
		return stub(arg1)
	}
	if specificReturn {
		return ret.result1
	}
	return fakeReturns.result1
}

func (fake *FakeReleaseDir) GeneratePackageCallCount() int {
	fake.generatePackageMutex.RLock()
	defer fake.generatePackageMutex.RUnlock()
	return len(fake.generatePackageArgsForCall)
}

func (fake *FakeReleaseDir) GeneratePackageCalls(stub func(string) error) {
	fake.generatePackageMutex.Lock()
	defer fake.generatePackageMutex.Unlock()
	fake.GeneratePackageStub = stub
}

func (fake *FakeReleaseDir) GeneratePackageArgsForCall(i int) string {
	fake.generatePackageMutex.RLock()
	defer fake.generatePackageMutex.RUnlock()
	argsForCall := fake.generatePackageArgsForCall[i]
	return argsForCall.arg1
}

func (fake *FakeReleaseDir) GeneratePackageReturns(result1 error) {
	fake.generatePackageMutex.Lock()
	defer fake.generatePackageMutex.Unlock()
	fake.GeneratePackageStub = nil
	fake.generatePackageReturns = struct {
		result1 error
	}{result1}
}

func (fake *FakeReleaseDir) GeneratePackageReturnsOnCall(i int, result1 error) {
	fake.generatePackageMutex.Lock()
	defer fake.generatePackageMutex.Unlock()
	fake.GeneratePackageStub = nil
	if fake.generatePackageReturnsOnCall == nil {
		fake.generatePackageReturnsOnCall = make(map[int]struct {
			result1 error
		})
	}
	fake.generatePackageReturnsOnCall[i] = struct {
		result1 error
	}{result1}
}

func (fake *FakeReleaseDir) Init(arg1 bool) error {
	fake.initMutex.Lock()
	ret, specificReturn := fake.initReturnsOnCall[len(fake.initArgsForCall)]
	fake.initArgsForCall = append(fake.initArgsForCall, struct {
		arg1 bool
	}{arg1})
	stub := fake.InitStub
	fakeReturns := fake.initReturns
	fake.recordInvocation("Init", []interface{}{arg1})
	fake.initMutex.Unlock()
	if stub != nil {
		return stub(arg1)
	}
	if specificReturn {
		return ret.result1
	}
	return fakeReturns.result1
}

func (fake *FakeReleaseDir) InitCallCount() int {
	fake.initMutex.RLock()
	defer fake.initMutex.RUnlock()
	return len(fake.initArgsForCall)
}

func (fake *FakeReleaseDir) InitCalls(stub func(bool) error) {
	fake.initMutex.Lock()
	defer fake.initMutex.Unlock()
	fake.InitStub = stub
}

func (fake *FakeReleaseDir) InitArgsForCall(i int) bool {
	fake.initMutex.RLock()
	defer fake.initMutex.RUnlock()
	argsForCall := fake.initArgsForCall[i]
	return argsForCall.arg1
}

func (fake *FakeReleaseDir) InitReturns(result1 error) {
	fake.initMutex.Lock()
	defer fake.initMutex.Unlock()
	fake.InitStub = nil
	fake.initReturns = struct {
		result1 error
	}{result1}
}

func (fake *FakeReleaseDir) InitReturnsOnCall(i int, result1 error) {
	fake.initMutex.Lock()
	defer fake.initMutex.Unlock()
	fake.InitStub = nil
	if fake.initReturnsOnCall == nil {
		fake.initReturnsOnCall = make(map[int]struct {
			result1 error
		})
	}
	fake.initReturnsOnCall[i] = struct {
		result1 error
	}{result1}
}

func (fake *FakeReleaseDir) NextDevVersion(arg1 string, arg2 bool) (version.Version, error) {
	fake.nextDevVersionMutex.Lock()
	ret, specificReturn := fake.nextDevVersionReturnsOnCall[len(fake.nextDevVersionArgsForCall)]
	fake.nextDevVersionArgsForCall = append(fake.nextDevVersionArgsForCall, struct {
		arg1 string
		arg2 bool
	}{arg1, arg2})
	stub := fake.NextDevVersionStub
	fakeReturns := fake.nextDevVersionReturns
	fake.recordInvocation("NextDevVersion", []interface{}{arg1, arg2})
	fake.nextDevVersionMutex.Unlock()
	if stub != nil {
		return stub(arg1, arg2)
	}
	if specificReturn {
		return ret.result1, ret.result2
	}
	return fakeReturns.result1, fakeReturns.result2
}

func (fake *FakeReleaseDir) NextDevVersionCallCount() int {
	fake.nextDevVersionMutex.RLock()
	defer fake.nextDevVersionMutex.RUnlock()
	return len(fake.nextDevVersionArgsForCall)
}

func (fake *FakeReleaseDir) NextDevVersionCalls(stub func(string, bool) (version.Version, error)) {
	fake.nextDevVersionMutex.Lock()
	defer fake.nextDevVersionMutex.Unlock()
	fake.NextDevVersionStub = stub
}

func (fake *FakeReleaseDir) NextDevVersionArgsForCall(i int) (string, bool) {
	fake.nextDevVersionMutex.RLock()
	defer fake.nextDevVersionMutex.RUnlock()
	argsForCall := fake.nextDevVersionArgsForCall[i]
	return argsForCall.arg1, argsForCall.arg2
}

func (fake *FakeReleaseDir) NextDevVersionReturns(result1 version.Version, result2 error) {
	fake.nextDevVersionMutex.Lock()
	defer fake.nextDevVersionMutex.Unlock()
	fake.NextDevVersionStub = nil
	fake.nextDevVersionReturns = struct {
		result1 version.Version
		result2 error
	}{result1, result2}
}

func (fake *FakeReleaseDir) NextDevVersionReturnsOnCall(i int, result1 version.Version, result2 error) {
	fake.nextDevVersionMutex.Lock()
	defer fake.nextDevVersionMutex.Unlock()
	fake.NextDevVersionStub = nil
	if fake.nextDevVersionReturnsOnCall == nil {
		fake.nextDevVersionReturnsOnCall = make(map[int]struct {
			result1 version.Version
			result2 error
		})
	}
	fake.nextDevVersionReturnsOnCall[i] = struct {
		result1 version.Version
		result2 error
	}{result1, result2}
}

func (fake *FakeReleaseDir) NextFinalVersion(arg1 string) (version.Version, error) {
	fake.nextFinalVersionMutex.Lock()
	ret, specificReturn := fake.nextFinalVersionReturnsOnCall[len(fake.nextFinalVersionArgsForCall)]
	fake.nextFinalVersionArgsForCall = append(fake.nextFinalVersionArgsForCall, struct {
		arg1 string
	}{arg1})
	stub := fake.NextFinalVersionStub
	fakeReturns := fake.nextFinalVersionReturns
	fake.recordInvocation("NextFinalVersion", []interface{}{arg1})
	fake.nextFinalVersionMutex.Unlock()
	if stub != nil {
		return stub(arg1)
	}
	if specificReturn {
		return ret.result1, ret.result2
	}
	return fakeReturns.result1, fakeReturns.result2
}

func (fake *FakeReleaseDir) NextFinalVersionCallCount() int {
	fake.nextFinalVersionMutex.RLock()
	defer fake.nextFinalVersionMutex.RUnlock()
	return len(fake.nextFinalVersionArgsForCall)
}

func (fake *FakeReleaseDir) NextFinalVersionCalls(stub func(string) (version.Version, error)) {
	fake.nextFinalVersionMutex.Lock()
	defer fake.nextFinalVersionMutex.Unlock()
	fake.NextFinalVersionStub = stub
}

func (fake *FakeReleaseDir) NextFinalVersionArgsForCall(i int) string {
	fake.nextFinalVersionMutex.RLock()
	defer fake.nextFinalVersionMutex.RUnlock()
	argsForCall := fake.nextFinalVersionArgsForCall[i]
	return argsForCall.arg1
}

func (fake *FakeReleaseDir) NextFinalVersionReturns(result1 version.Version, result2 error) {
	fake.nextFinalVersionMutex.Lock()
	defer fake.nextFinalVersionMutex.Unlock()
	fake.NextFinalVersionStub = nil
	fake.nextFinalVersionReturns = struct {
		result1 version.Version
		result2 error
	}{result1, result2}
}

func (fake *FakeReleaseDir) NextFinalVersionReturnsOnCall(i int, result1 version.Version, result2 error) {
	fake.nextFinalVersionMutex.Lock()
	defer fake.nextFinalVersionMutex.Unlock()
	fake.NextFinalVersionStub = nil
	if fake.nextFinalVersionReturnsOnCall == nil {
		fake.nextFinalVersionReturnsOnCall = make(map[int]struct {
			result1 version.Version
			result2 error
		})
	}
	fake.nextFinalVersionReturnsOnCall[i] = struct {
		result1 version.Version
		result2 error
	}{result1, result2}
}

func (fake *FakeReleaseDir) Reset() error {
	fake.resetMutex.Lock()
	ret, specificReturn := fake.resetReturnsOnCall[len(fake.resetArgsForCall)]
	fake.resetArgsForCall = append(fake.resetArgsForCall, struct {
	}{})
	stub := fake.ResetStub
	fakeReturns := fake.resetReturns
	fake.recordInvocation("Reset", []interface{}{})
	fake.resetMutex.Unlock()
	if stub != nil {
		return stub()
	}
	if specificReturn {
		return ret.result1
	}
	return fakeReturns.result1
}

func (fake *FakeReleaseDir) ResetCallCount() int {
	fake.resetMutex.RLock()
	defer fake.resetMutex.RUnlock()
	return len(fake.resetArgsForCall)
}

func (fake *FakeReleaseDir) ResetCalls(stub func() error) {
	fake.resetMutex.Lock()
	defer fake.resetMutex.Unlock()
	fake.ResetStub = stub
}

func (fake *FakeReleaseDir) ResetReturns(result1 error) {
	fake.resetMutex.Lock()
	defer fake.resetMutex.Unlock()
	fake.ResetStub = nil
	fake.resetReturns = struct {
		result1 error
	}{result1}
}

func (fake *FakeReleaseDir) ResetReturnsOnCall(i int, result1 error) {
	fake.resetMutex.Lock()
	defer fake.resetMutex.Unlock()
	fake.ResetStub = nil
	if fake.resetReturnsOnCall == nil {
		fake.resetReturnsOnCall = make(map[int]struct {
			result1 error
		})
	}
	fake.resetReturnsOnCall[i] = struct {
		result1 error
	}{result1}
}

func (fake *FakeReleaseDir) VendorPackage(arg1 *pkg.Package, arg2 string) error {
	fake.vendorPackageMutex.Lock()
	ret, specificReturn := fake.vendorPackageReturnsOnCall[len(fake.vendorPackageArgsForCall)]
	fake.vendorPackageArgsForCall = append(fake.vendorPackageArgsForCall, struct {
		arg1 *pkg.Package
		arg2 string
	}{arg1, arg2})
	stub := fake.VendorPackageStub
	fakeReturns := fake.vendorPackageReturns
	fake.recordInvocation("VendorPackage", []interface{}{arg1, arg2})
	fake.vendorPackageMutex.Unlock()
	if stub != nil {
		return stub(arg1, arg2)
	}
	if specificReturn {
		return ret.result1
	}
	return fakeReturns.result1
}

func (fake *FakeReleaseDir) VendorPackageCallCount() int {
	fake.vendorPackageMutex.RLock()
	defer fake.vendorPackageMutex.RUnlock()
	return len(fake.vendorPackageArgsForCall)
}

func (fake *FakeReleaseDir) VendorPackageCalls(stub func(*pkg.Package, string) error) {
	fake.vendorPackageMutex.Lock()
	defer fake.vendorPackageMutex.Unlock()
	fake.VendorPackageStub = stub
}

func (fake *FakeReleaseDir) VendorPackageArgsForCall(i int) (*pkg.Package, string) {
	fake.vendorPackageMutex.RLock()
	defer fake.vendorPackageMutex.RUnlock()
	argsForCall := fake.vendorPackageArgsForCall[i]
	return argsForCall.arg1, argsForCall.arg2
}

func (fake *FakeReleaseDir) VendorPackageReturns(result1 error) {
	fake.vendorPackageMutex.Lock()
	defer fake.vendorPackageMutex.Unlock()
	fake.VendorPackageStub = nil
	fake.vendorPackageReturns = struct {
		result1 error
	}{result1}
}

func (fake *FakeReleaseDir) VendorPackageReturnsOnCall(i int, result1 error) {
	fake.vendorPackageMutex.Lock()
	defer fake.vendorPackageMutex.Unlock()
	fake.VendorPackageStub = nil
	if fake.vendorPackageReturnsOnCall == nil {
		fake.vendorPackageReturnsOnCall = make(map[int]struct {
			result1 error
		})
	}
	fake.vendorPackageReturnsOnCall[i] = struct {
		result1 error
	}{result1}
}

func (fake *FakeReleaseDir) Invocations() map[string][][]interface{} {
	fake.invocationsMutex.RLock()
	defer fake.invocationsMutex.RUnlock()
	fake.buildReleaseMutex.RLock()
	defer fake.buildReleaseMutex.RUnlock()
	fake.defaultNameMutex.RLock()
	defer fake.defaultNameMutex.RUnlock()
	fake.finalizeReleaseMutex.RLock()
	defer fake.finalizeReleaseMutex.RUnlock()
	fake.findReleaseMutex.RLock()
	defer fake.findReleaseMutex.RUnlock()
	fake.generateJobMutex.RLock()
	defer fake.generateJobMutex.RUnlock()
	fake.generatePackageMutex.RLock()
	defer fake.generatePackageMutex.RUnlock()
	fake.initMutex.RLock()
	defer fake.initMutex.RUnlock()
	fake.nextDevVersionMutex.RLock()
	defer fake.nextDevVersionMutex.RUnlock()
	fake.nextFinalVersionMutex.RLock()
	defer fake.nextFinalVersionMutex.RUnlock()
	fake.resetMutex.RLock()
	defer fake.resetMutex.RUnlock()
	fake.vendorPackageMutex.RLock()
	defer fake.vendorPackageMutex.RUnlock()
	copiedInvocations := map[string][][]interface{}{}
	for key, value := range fake.invocations {
		copiedInvocations[key] = value
	}
	return copiedInvocations
}

func (fake *FakeReleaseDir) 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 _ releasedir.ReleaseDir = new(FakeReleaseDir)
