forked from cloudfoundry/bosh-cli
-
Notifications
You must be signed in to change notification settings - Fork 0
/
fake_disk_repo.go
143 lines (114 loc) · 3.38 KB
/
fake_disk_repo.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
package fakes
import (
biconfig "github.com/cloudfoundry/bosh-cli/config"
biproperty "github.com/cloudfoundry/bosh-utils/property"
)
type FakeDiskRepo struct {
UpdateCurrentInputs []DiskRepoUpdateCurrentInput
updateErr error
findCurrentOutput diskRepoFindCurrentOutput
SaveInputs []DiskRepoSaveInput
saveOutput diskRepoSaveOutput
findOutput map[string]diskRepoFindOutput
DeleteInputs []DiskRepoDeleteInput
DeleteErr error
allOutput diskRepoAllOutput
}
type DiskRepoUpdateCurrentInput struct {
DiskID string
}
type diskRepoFindCurrentOutput struct {
diskRecord biconfig.DiskRecord
found bool
err error
}
type DiskRepoSaveInput struct {
CID string
Size int
CloudProperties biproperty.Map
}
type diskRepoSaveOutput struct {
diskRecord biconfig.DiskRecord
err error
}
type DiskRepoDeleteInput struct {
DiskRecord biconfig.DiskRecord
}
type diskRepoFindOutput struct {
diskRecord biconfig.DiskRecord
found bool
err error
}
type diskRepoAllOutput struct {
diskRecords []biconfig.DiskRecord
err error
}
func NewFakeDiskRepo() *FakeDiskRepo {
return &FakeDiskRepo{
UpdateCurrentInputs: []DiskRepoUpdateCurrentInput{},
SaveInputs: []DiskRepoSaveInput{},
DeleteInputs: []DiskRepoDeleteInput{},
findOutput: map[string]diskRepoFindOutput{},
}
}
func (r *FakeDiskRepo) UpdateCurrent(diskID string) error {
r.UpdateCurrentInputs = append(r.UpdateCurrentInputs, DiskRepoUpdateCurrentInput{
DiskID: diskID,
})
return r.updateErr
}
func (r *FakeDiskRepo) FindCurrent() (biconfig.DiskRecord, bool, error) {
return r.findCurrentOutput.diskRecord, r.findCurrentOutput.found, r.findCurrentOutput.err
}
func (r *FakeDiskRepo) ClearCurrent() error {
return nil
}
func (r *FakeDiskRepo) Save(cid string, size int, cloudProperties biproperty.Map) (biconfig.DiskRecord, error) {
r.SaveInputs = append(r.SaveInputs, DiskRepoSaveInput{
CID: cid,
Size: size,
CloudProperties: cloudProperties,
})
return r.saveOutput.diskRecord, r.saveOutput.err
}
func (r *FakeDiskRepo) Find(cid string) (biconfig.DiskRecord, bool, error) {
return r.findOutput[cid].diskRecord, r.findOutput[cid].found, r.findOutput[cid].err
}
func (r *FakeDiskRepo) All() ([]biconfig.DiskRecord, error) {
return r.allOutput.diskRecords, r.allOutput.err
}
func (r *FakeDiskRepo) Delete(diskRecord biconfig.DiskRecord) error {
r.DeleteInputs = append(r.DeleteInputs, DiskRepoDeleteInput{
DiskRecord: diskRecord,
})
return r.DeleteErr
}
func (r *FakeDiskRepo) SetUpdateBehavior(err error) {
r.updateErr = err
}
func (r *FakeDiskRepo) SetFindCurrentBehavior(diskRecord biconfig.DiskRecord, found bool, err error) {
r.findCurrentOutput = diskRepoFindCurrentOutput{
diskRecord: diskRecord,
found: found,
err: err,
}
}
func (r *FakeDiskRepo) SetSaveBehavior(diskRecord biconfig.DiskRecord, found bool, err error) {
r.saveOutput = diskRepoSaveOutput{
diskRecord: diskRecord,
err: err,
}
}
func (r *FakeDiskRepo) SetFindBehavior(cid string, diskRecord biconfig.DiskRecord, found bool, err error) {
r.findOutput[cid] = diskRepoFindOutput{
diskRecord: diskRecord,
found: found,
err: err,
}
}
func (r *FakeDiskRepo) SetAllBehavior(diskRecords []biconfig.DiskRecord, err error) {
r.allOutput = diskRepoAllOutput{
diskRecords: diskRecords,
err: err,
}
}