1// Code generated by counterfeiter. DO NOT EDIT.
2package schedulerfakes
3
4import (
5	"sync"
6
7	"github.com/concourse/concourse/atc"
8	"github.com/concourse/concourse/atc/db"
9	"github.com/concourse/concourse/atc/scheduler"
10)
11
12type FakeBuildPlanner struct {
13	CreateStub        func(atc.StepConfig, db.SchedulerResources, atc.VersionedResourceTypes, []db.BuildInput) (atc.Plan, error)
14	createMutex       sync.RWMutex
15	createArgsForCall []struct {
16		arg1 atc.StepConfig
17		arg2 db.SchedulerResources
18		arg3 atc.VersionedResourceTypes
19		arg4 []db.BuildInput
20	}
21	createReturns struct {
22		result1 atc.Plan
23		result2 error
24	}
25	createReturnsOnCall map[int]struct {
26		result1 atc.Plan
27		result2 error
28	}
29	invocations      map[string][][]interface{}
30	invocationsMutex sync.RWMutex
31}
32
33func (fake *FakeBuildPlanner) Create(arg1 atc.StepConfig, arg2 db.SchedulerResources, arg3 atc.VersionedResourceTypes, arg4 []db.BuildInput) (atc.Plan, error) {
34	var arg4Copy []db.BuildInput
35	if arg4 != nil {
36		arg4Copy = make([]db.BuildInput, len(arg4))
37		copy(arg4Copy, arg4)
38	}
39	fake.createMutex.Lock()
40	ret, specificReturn := fake.createReturnsOnCall[len(fake.createArgsForCall)]
41	fake.createArgsForCall = append(fake.createArgsForCall, struct {
42		arg1 atc.StepConfig
43		arg2 db.SchedulerResources
44		arg3 atc.VersionedResourceTypes
45		arg4 []db.BuildInput
46	}{arg1, arg2, arg3, arg4Copy})
47	fake.recordInvocation("Create", []interface{}{arg1, arg2, arg3, arg4Copy})
48	fake.createMutex.Unlock()
49	if fake.CreateStub != nil {
50		return fake.CreateStub(arg1, arg2, arg3, arg4)
51	}
52	if specificReturn {
53		return ret.result1, ret.result2
54	}
55	fakeReturns := fake.createReturns
56	return fakeReturns.result1, fakeReturns.result2
57}
58
59func (fake *FakeBuildPlanner) CreateCallCount() int {
60	fake.createMutex.RLock()
61	defer fake.createMutex.RUnlock()
62	return len(fake.createArgsForCall)
63}
64
65func (fake *FakeBuildPlanner) CreateCalls(stub func(atc.StepConfig, db.SchedulerResources, atc.VersionedResourceTypes, []db.BuildInput) (atc.Plan, error)) {
66	fake.createMutex.Lock()
67	defer fake.createMutex.Unlock()
68	fake.CreateStub = stub
69}
70
71func (fake *FakeBuildPlanner) CreateArgsForCall(i int) (atc.StepConfig, db.SchedulerResources, atc.VersionedResourceTypes, []db.BuildInput) {
72	fake.createMutex.RLock()
73	defer fake.createMutex.RUnlock()
74	argsForCall := fake.createArgsForCall[i]
75	return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3, argsForCall.arg4
76}
77
78func (fake *FakeBuildPlanner) CreateReturns(result1 atc.Plan, result2 error) {
79	fake.createMutex.Lock()
80	defer fake.createMutex.Unlock()
81	fake.CreateStub = nil
82	fake.createReturns = struct {
83		result1 atc.Plan
84		result2 error
85	}{result1, result2}
86}
87
88func (fake *FakeBuildPlanner) CreateReturnsOnCall(i int, result1 atc.Plan, result2 error) {
89	fake.createMutex.Lock()
90	defer fake.createMutex.Unlock()
91	fake.CreateStub = nil
92	if fake.createReturnsOnCall == nil {
93		fake.createReturnsOnCall = make(map[int]struct {
94			result1 atc.Plan
95			result2 error
96		})
97	}
98	fake.createReturnsOnCall[i] = struct {
99		result1 atc.Plan
100		result2 error
101	}{result1, result2}
102}
103
104func (fake *FakeBuildPlanner) Invocations() map[string][][]interface{} {
105	fake.invocationsMutex.RLock()
106	defer fake.invocationsMutex.RUnlock()
107	fake.createMutex.RLock()
108	defer fake.createMutex.RUnlock()
109	copiedInvocations := map[string][][]interface{}{}
110	for key, value := range fake.invocations {
111		copiedInvocations[key] = value
112	}
113	return copiedInvocations
114}
115
116func (fake *FakeBuildPlanner) recordInvocation(key string, args []interface{}) {
117	fake.invocationsMutex.Lock()
118	defer fake.invocationsMutex.Unlock()
119	if fake.invocations == nil {
120		fake.invocations = map[string][][]interface{}{}
121	}
122	if fake.invocations[key] == nil {
123		fake.invocations[key] = [][]interface{}{}
124	}
125	fake.invocations[key] = append(fake.invocations[key], args)
126}
127
128var _ scheduler.BuildPlanner = new(FakeBuildPlanner)
129