// This file was generated by counterfeiter
package fakes

import (
	"sync"
)

type SecurityGroupInstallationCLIAdapter struct {
	DeleteSecurityGroupStub        func(name string) error
	deleteSecurityGroupMutex       sync.RWMutex
	deleteSecurityGroupArgsForCall []struct {
		name string
	}
	deleteSecurityGroupReturns struct {
		result1 error
	}
	deleteSecurityGroupReturnsOnCall map[int]struct {
		result1 error
	}
	CreateSecurityGroupStub        func(name, body string) error
	createSecurityGroupMutex       sync.RWMutex
	createSecurityGroupArgsForCall []struct {
		name string
		body string
	}
	createSecurityGroupReturns struct {
		result1 error
	}
	createSecurityGroupReturnsOnCall map[int]struct {
		result1 error
	}
	BindSecurityGroupStub        func(asgName, orgName, spaceName string) error
	bindSecurityGroupMutex       sync.RWMutex
	bindSecurityGroupArgsForCall []struct {
		asgName   string
		orgName   string
		spaceName string
	}
	bindSecurityGroupReturns struct {
		result1 error
	}
	bindSecurityGroupReturnsOnCall map[int]struct {
		result1 error
	}
	invocations      map[string][][]interface{}
	invocationsMutex sync.RWMutex
}

func (fake *SecurityGroupInstallationCLIAdapter) DeleteSecurityGroup(name string) error {
	fake.deleteSecurityGroupMutex.Lock()
	ret, specificReturn := fake.deleteSecurityGroupReturnsOnCall[len(fake.deleteSecurityGroupArgsForCall)]
	fake.deleteSecurityGroupArgsForCall = append(fake.deleteSecurityGroupArgsForCall, struct {
		name string
	}{name})
	fake.recordInvocation("DeleteSecurityGroup", []interface{}{name})
	fake.deleteSecurityGroupMutex.Unlock()
	if fake.DeleteSecurityGroupStub != nil {
		return fake.DeleteSecurityGroupStub(name)
	}
	if specificReturn {
		return ret.result1
	}
	return fake.deleteSecurityGroupReturns.result1
}

func (fake *SecurityGroupInstallationCLIAdapter) DeleteSecurityGroupCallCount() int {
	fake.deleteSecurityGroupMutex.RLock()
	defer fake.deleteSecurityGroupMutex.RUnlock()
	return len(fake.deleteSecurityGroupArgsForCall)
}

func (fake *SecurityGroupInstallationCLIAdapter) DeleteSecurityGroupArgsForCall(i int) string {
	fake.deleteSecurityGroupMutex.RLock()
	defer fake.deleteSecurityGroupMutex.RUnlock()
	return fake.deleteSecurityGroupArgsForCall[i].name
}

func (fake *SecurityGroupInstallationCLIAdapter) DeleteSecurityGroupReturns(result1 error) {
	fake.DeleteSecurityGroupStub = nil
	fake.deleteSecurityGroupReturns = struct {
		result1 error
	}{result1}
}

func (fake *SecurityGroupInstallationCLIAdapter) DeleteSecurityGroupReturnsOnCall(i int, result1 error) {
	fake.DeleteSecurityGroupStub = nil
	if fake.deleteSecurityGroupReturnsOnCall == nil {
		fake.deleteSecurityGroupReturnsOnCall = make(map[int]struct {
			result1 error
		})
	}
	fake.deleteSecurityGroupReturnsOnCall[i] = struct {
		result1 error
	}{result1}
}

func (fake *SecurityGroupInstallationCLIAdapter) CreateSecurityGroup(name string, body string) error {
	fake.createSecurityGroupMutex.Lock()
	ret, specificReturn := fake.createSecurityGroupReturnsOnCall[len(fake.createSecurityGroupArgsForCall)]
	fake.createSecurityGroupArgsForCall = append(fake.createSecurityGroupArgsForCall, struct {
		name string
		body string
	}{name, body})
	fake.recordInvocation("CreateSecurityGroup", []interface{}{name, body})
	fake.createSecurityGroupMutex.Unlock()
	if fake.CreateSecurityGroupStub != nil {
		return fake.CreateSecurityGroupStub(name, body)
	}
	if specificReturn {
		return ret.result1
	}
	return fake.createSecurityGroupReturns.result1
}

func (fake *SecurityGroupInstallationCLIAdapter) CreateSecurityGroupCallCount() int {
	fake.createSecurityGroupMutex.RLock()
	defer fake.createSecurityGroupMutex.RUnlock()
	return len(fake.createSecurityGroupArgsForCall)
}

func (fake *SecurityGroupInstallationCLIAdapter) CreateSecurityGroupArgsForCall(i int) (string, string) {
	fake.createSecurityGroupMutex.RLock()
	defer fake.createSecurityGroupMutex.RUnlock()
	return fake.createSecurityGroupArgsForCall[i].name, fake.createSecurityGroupArgsForCall[i].body
}

func (fake *SecurityGroupInstallationCLIAdapter) CreateSecurityGroupReturns(result1 error) {
	fake.CreateSecurityGroupStub = nil
	fake.createSecurityGroupReturns = struct {
		result1 error
	}{result1}
}

func (fake *SecurityGroupInstallationCLIAdapter) CreateSecurityGroupReturnsOnCall(i int, result1 error) {
	fake.CreateSecurityGroupStub = nil
	if fake.createSecurityGroupReturnsOnCall == nil {
		fake.createSecurityGroupReturnsOnCall = make(map[int]struct {
			result1 error
		})
	}
	fake.createSecurityGroupReturnsOnCall[i] = struct {
		result1 error
	}{result1}
}

func (fake *SecurityGroupInstallationCLIAdapter) BindSecurityGroup(asgName string, orgName string, spaceName string) error {
	fake.bindSecurityGroupMutex.Lock()
	ret, specificReturn := fake.bindSecurityGroupReturnsOnCall[len(fake.bindSecurityGroupArgsForCall)]
	fake.bindSecurityGroupArgsForCall = append(fake.bindSecurityGroupArgsForCall, struct {
		asgName   string
		orgName   string
		spaceName string
	}{asgName, orgName, spaceName})
	fake.recordInvocation("BindSecurityGroup", []interface{}{asgName, orgName, spaceName})
	fake.bindSecurityGroupMutex.Unlock()
	if fake.BindSecurityGroupStub != nil {
		return fake.BindSecurityGroupStub(asgName, orgName, spaceName)
	}
	if specificReturn {
		return ret.result1
	}
	return fake.bindSecurityGroupReturns.result1
}

func (fake *SecurityGroupInstallationCLIAdapter) BindSecurityGroupCallCount() int {
	fake.bindSecurityGroupMutex.RLock()
	defer fake.bindSecurityGroupMutex.RUnlock()
	return len(fake.bindSecurityGroupArgsForCall)
}

func (fake *SecurityGroupInstallationCLIAdapter) BindSecurityGroupArgsForCall(i int) (string, string, string) {
	fake.bindSecurityGroupMutex.RLock()
	defer fake.bindSecurityGroupMutex.RUnlock()
	return fake.bindSecurityGroupArgsForCall[i].asgName, fake.bindSecurityGroupArgsForCall[i].orgName, fake.bindSecurityGroupArgsForCall[i].spaceName
}

func (fake *SecurityGroupInstallationCLIAdapter) BindSecurityGroupReturns(result1 error) {
	fake.BindSecurityGroupStub = nil
	fake.bindSecurityGroupReturns = struct {
		result1 error
	}{result1}
}

func (fake *SecurityGroupInstallationCLIAdapter) BindSecurityGroupReturnsOnCall(i int, result1 error) {
	fake.BindSecurityGroupStub = nil
	if fake.bindSecurityGroupReturnsOnCall == nil {
		fake.bindSecurityGroupReturnsOnCall = make(map[int]struct {
			result1 error
		})
	}
	fake.bindSecurityGroupReturnsOnCall[i] = struct {
		result1 error
	}{result1}
}

func (fake *SecurityGroupInstallationCLIAdapter) Invocations() map[string][][]interface{} {
	fake.invocationsMutex.RLock()
	defer fake.invocationsMutex.RUnlock()
	fake.deleteSecurityGroupMutex.RLock()
	defer fake.deleteSecurityGroupMutex.RUnlock()
	fake.createSecurityGroupMutex.RLock()
	defer fake.createSecurityGroupMutex.RUnlock()
	fake.bindSecurityGroupMutex.RLock()
	defer fake.bindSecurityGroupMutex.RUnlock()
	return fake.invocations
}

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