@@ -26,32 +26,32 @@ var _ = Describe("MetadataBuilder", func() {
2626 handcraftReader = & fakes.HandcraftReader {}
2727 logger = & fakes.Logger {}
2828
29+ releaseManifestReader .ReadCall .Stub = func (path string ) (builder.ReleaseManifest , error ) {
30+ switch path {
31+ case "/path/to/release-1.tgz" :
32+ return builder.ReleaseManifest {
33+ Name : "release-1" ,
34+ Version : "version-1" ,
35+ }, nil
36+ case "/path/to/release-2.tgz" :
37+ return builder.ReleaseManifest {
38+ Name : "release-2" ,
39+ Version : "version-2" ,
40+ }, nil
41+ default :
42+ return builder.ReleaseManifest {}, fmt .Errorf ("could not read release %q" , path )
43+ }
44+ }
45+ stemcellManifestReader .ReadCall .Returns .StemcellManifest = builder.StemcellManifest {
46+ Version : "2332" ,
47+ OperatingSystem : "ubuntu-trusty" ,
48+ }
49+
2950 tileBuilder = builder .NewMetadataBuilder (releaseManifestReader , stemcellManifestReader , handcraftReader , logger )
3051 })
3152
3253 Describe ("Build" , func () {
3354 It ("creates a metadata with the correct information" , func () {
34- releaseManifestReader .ReadCall .Stub = func (path string ) (builder.ReleaseManifest , error ) {
35- switch path {
36- case "/path/to/release-1.tgz" :
37- return builder.ReleaseManifest {
38- Name : "release-1" ,
39- Version : "version-1" ,
40- }, nil
41- case "/path/to/release-2.tgz" :
42- return builder.ReleaseManifest {
43- Name : "release-2" ,
44- Version : "version-2" ,
45- }, nil
46- default :
47- return builder.ReleaseManifest {}, fmt .Errorf ("could not read release %q" , path )
48- }
49- }
50- stemcellManifestReader .ReadCall .Returns .StemcellManifest = builder.StemcellManifest {
51- Version : "2332" ,
52- OperatingSystem : "ubuntu-trusty" ,
53- }
54-
5555 handcraftReader .ReadCall .Returns .Handcraft = builder.Handcraft {
5656 "metadata_version" : "some-metadata-version" ,
5757 "provides_product_versions" : "some-provides-product-versions" ,
@@ -125,22 +125,6 @@ releases:
125125
126126 Context ("when the runtime config doesn't contain releases" , func () {
127127 It ("doesn't change the runtime config" , func () {
128- releaseManifestReader .ReadCall .Stub = func (path string ) (builder.ReleaseManifest , error ) {
129- switch path {
130- case "/path/to/release-1.tgz" :
131- return builder.ReleaseManifest {
132- Name : "release-1" ,
133- Version : "version-1" ,
134- }, nil
135- default :
136- return builder.ReleaseManifest {}, fmt .Errorf ("could not read release %q" , path )
137- }
138- }
139- stemcellManifestReader .ReadCall .Returns .StemcellManifest = builder.StemcellManifest {
140- Version : "2332" ,
141- OperatingSystem : "ubuntu-trusty" ,
142- }
143-
144128 handcraftReader .ReadCall .Returns .Handcraft = builder.Handcraft {
145129 "metadata_version" : "some-metadata-version" ,
146130 "provides_product_versions" : "some-provides-product-versions" ,
@@ -179,6 +163,7 @@ releases:
179163 Context ("failure cases" , func () {
180164 Context ("when the release tarball cannot be read" , func () {
181165 It ("returns an error" , func () {
166+ releaseManifestReader .ReadCall .Stub = nil
182167 releaseManifestReader .ReadCall .Returns .Error = errors .New ("failed to read release tarball" )
183168
184169 _ , err := tileBuilder .Build ([]string {"release-1.tgz" }, "" , "" , "" , "" )
@@ -206,64 +191,32 @@ releases:
206191
207192 Context ("when the runtime config references a non-existent release" , func () {
208193 It ("returns an error" , func () {
209- releaseManifestReader .ReadCall .Stub = func (path string ) (builder.ReleaseManifest , error ) {
210- switch path {
211- case "/path/to/release-1.tgz" :
212- return builder.ReleaseManifest {
213- Name : "release-1" ,
214- Version : "version-1" ,
215- }, nil
216- default :
217- return builder.ReleaseManifest {}, fmt .Errorf ("could not read release %q" , path )
218- }
219- }
220- stemcellManifestReader .ReadCall .Returns .StemcellManifest = builder.StemcellManifest {
221- Version : "2332" ,
222- OperatingSystem : "ubuntu-trusty" ,
223- }
224-
225194 handcraftReader .ReadCall .Returns .Handcraft = builder.Handcraft {
226195 "metadata_version" : "some-metadata-version" ,
227196 "provides_product_versions" : "some-provides-product-versions" ,
228197 "runtime_configs" : []interface {}{
229198 map [interface {}]interface {}{
230199 "name" : "MY-RUNTIME-CONFIG" ,
231200 "runtime_config" : `releases:
232- - name: release-2
201+ - name: non-existent-release
233202addons:
234203- name: MY-ADDON-NAME
235204 jobs:
236205 - name: MY-RUNTIME-CONFIG-JOB
237- release: release-2 ` ,
206+ release: non-existent-release ` ,
238207 },
239208 },
240209 }
241210
242211 _ , err := tileBuilder .Build ([]string {
243212 "/path/to/release-1.tgz" ,
244213 }, "/path/to/test-stemcell.tgz" , "/some/path/handcraft.yml" , "cool-product" , "1.2.3" )
245- Expect (err ).To (MatchError ("runtime config MY-RUNTIME-CONFIG references unknown release release-2 " ))
214+ Expect (err ).To (MatchError ("runtime config MY-RUNTIME-CONFIG references unknown release non-existent-release " ))
246215 })
247216 })
248217
249218 Context ("when the runtime config contains yaml that isn't well-formed" , func () {
250219 It ("returns an error" , func () {
251- releaseManifestReader .ReadCall .Stub = func (path string ) (builder.ReleaseManifest , error ) {
252- switch path {
253- case "/path/to/release-1.tgz" :
254- return builder.ReleaseManifest {
255- Name : "release-1" ,
256- Version : "version-1" ,
257- }, nil
258- default :
259- return builder.ReleaseManifest {}, fmt .Errorf ("could not read release %q" , path )
260- }
261- }
262- stemcellManifestReader .ReadCall .Returns .StemcellManifest = builder.StemcellManifest {
263- Version : "2332" ,
264- OperatingSystem : "ubuntu-trusty" ,
265- }
266-
267220 handcraftReader .ReadCall .Returns .Handcraft = builder.Handcraft {
268221 "metadata_version" : "some-metadata-version" ,
269222 "provides_product_versions" : "some-provides-product-versions" ,
0 commit comments