@@ -28,23 +28,24 @@ var _ = Describe("Buildpack", func() {
2828 actor , fakeCloudControllerClient , _ , _ , _ , _ , _ = NewTestActor ()
2929 })
3030
31- Describe ("GetBuildpackByNameAndStack " , func () {
31+ Describe ("GetBuildpackByNameAndStackAndLifecycle " , func () {
3232 var (
33- buildpackName = "buildpack-1"
34- buildpackStack = "stack-name"
35- buildpack resources.Buildpack
36- warnings Warnings
37- executeErr error
33+ buildpackName = "buildpack-1"
34+ buildpackStack = "stack-name"
35+ buildpackLifecycle = "buildpack"
36+ buildpack resources.Buildpack
37+ warnings Warnings
38+ executeErr error
3839 )
3940
4041 JustBeforeEach (func () {
41- buildpack , warnings , executeErr = actor .GetBuildpackByNameAndStack (buildpackName , buildpackStack )
42+ buildpack , warnings , executeErr = actor .GetBuildpackByNameAndStackAndLifecycle (buildpackName , buildpackStack , buildpackLifecycle )
4243 })
4344
4445 When ("getting buildpacks fails" , func () {
4546 BeforeEach (func () {
46-
4747 buildpackStack = "real-good-stack"
48+ buildpackLifecycle = "some-lifecycle"
4849 fakeCloudControllerClient .GetBuildpacksReturns (
4950 nil ,
5051 ccv3.Warnings {"some-warning-1" , "some-warning-2" },
@@ -65,6 +66,10 @@ var _ = Describe("Buildpack", func() {
6566 Key : ccv3 .StackFilter ,
6667 Values : []string {buildpackStack },
6768 },
69+ ccv3.Query {
70+ Key : ccv3 .LifecycleFilter ,
71+ Values : []string {buildpackLifecycle },
72+ },
6873 ))
6974 })
7075 })
@@ -120,7 +125,7 @@ var _ = Describe("Buildpack", func() {
120125 })
121126
122127 It ("returns warnings and a BuildpackNotFoundError" , func () {
123- Expect (executeErr ).To (MatchError (actionerror.BuildpackNotFoundError {BuildpackName : buildpackName , StackName : buildpackStack }))
128+ Expect (executeErr ).To (MatchError (actionerror.BuildpackNotFoundError {BuildpackName : buildpackName , StackName : buildpackStack , Lifecycle : buildpackLifecycle }))
124129 Expect (warnings ).To (ConsistOf ("some-warning-1" , "some-warning-2" ))
125130 })
126131 })
@@ -152,10 +157,43 @@ var _ = Describe("Buildpack", func() {
152157 Key : ccv3 .NameFilter ,
153158 Values : []string {buildpackName },
154159 },
160+ ccv3.Query {
161+ Key : ccv3 .LifecycleFilter ,
162+ Values : []string {buildpackLifecycle },
163+ },
155164 ))
156165 })
157166 })
158167
168+ When ("No lifecycle is specified" , func () {
169+ BeforeEach (func () {
170+ buildpackLifecycle = ""
171+ buildpackName = "my-buildpack"
172+
173+ ccBuildpack := resources.Buildpack {Name : "my-buildpack" , GUID : "some-guid" }
174+ fakeCloudControllerClient .GetBuildpacksReturns (
175+ []resources.Buildpack {ccBuildpack },
176+ ccv3.Warnings {"some-warning-1" , "some-warning-2" },
177+ nil )
178+ })
179+
180+ It ("Returns the proper buildpack" , func () {
181+ Expect (executeErr ).ToNot (HaveOccurred ())
182+ Expect (warnings ).To (ConsistOf ("some-warning-1" , "some-warning-2" ))
183+ Expect (buildpack ).To (Equal (resources.Buildpack {Name : "my-buildpack" , GUID : "some-guid" }))
184+ })
185+
186+ It ("Does not pass a lifecycle query to the client" , func () {
187+ Expect (fakeCloudControllerClient .GetBuildpacksCallCount ()).To (Equal (1 ))
188+ queries := fakeCloudControllerClient .GetBuildpacksArgsForCall (0 )
189+ Expect (queries ).To (ConsistOf (
190+ ccv3.Query {
191+ Key : ccv3 .NameFilter ,
192+ Values : []string {buildpackName },
193+ },
194+ ))
195+ })
196+ })
159197 When ("A stack is specified" , func () {
160198 BeforeEach (func () {
161199 buildpackStack = "good-stack"
@@ -189,6 +227,39 @@ var _ = Describe("Buildpack", func() {
189227 ))
190228 })
191229 })
230+ When ("A lifecycle is specified" , func () {
231+ BeforeEach (func () {
232+ buildpackLifecycle = "good-lifecycle"
233+ buildpackName = "my-buildpack"
234+
235+ ccBuildpack := resources.Buildpack {Name : "my-buildpack" , GUID : "some-guid" , Lifecycle : "good-lifecycle" }
236+ fakeCloudControllerClient .GetBuildpacksReturns (
237+ []resources.Buildpack {ccBuildpack },
238+ ccv3.Warnings {"some-warning-1" , "some-warning-2" },
239+ nil )
240+ })
241+
242+ It ("Returns the proper buildpack" , func () {
243+ Expect (executeErr ).ToNot (HaveOccurred ())
244+ Expect (warnings ).To (ConsistOf ("some-warning-1" , "some-warning-2" ))
245+ Expect (buildpack ).To (Equal (resources.Buildpack {Name : "my-buildpack" , GUID : "some-guid" , Lifecycle : "good-lifecycle" }))
246+ })
247+
248+ It ("Does pass a lifecycle query to the client" , func () {
249+ Expect (fakeCloudControllerClient .GetBuildpacksCallCount ()).To (Equal (1 ))
250+ queries := fakeCloudControllerClient .GetBuildpacksArgsForCall (0 )
251+ Expect (queries ).To (ConsistOf (
252+ ccv3.Query {
253+ Key : ccv3 .NameFilter ,
254+ Values : []string {buildpackName },
255+ },
256+ ccv3.Query {
257+ Key : ccv3 .LifecycleFilter ,
258+ Values : []string {buildpackLifecycle },
259+ },
260+ ))
261+ })
262+ })
192263 })
193264 })
194265
@@ -338,9 +409,10 @@ var _ = Describe("Buildpack", func() {
338409
339410 Describe ("UpdateBuildpackByNameAndStack" , func () {
340411 var (
341- buildpackName = "my-buildpack"
342- buildpackStack = "my-stack"
343- buildpack = resources.Buildpack {
412+ buildpackName = "my-buildpack"
413+ buildpackStack = "my-stack"
414+ buildpackLifecycle = "cnb"
415+ buildpack = resources.Buildpack {
344416 Stack : "new-stack" ,
345417 }
346418
@@ -350,7 +422,7 @@ var _ = Describe("Buildpack", func() {
350422 )
351423
352424 JustBeforeEach (func () {
353- retBuildpack , warnings , executeErr = actor .UpdateBuildpackByNameAndStack (buildpackName , buildpackStack , buildpack )
425+ retBuildpack , warnings , executeErr = actor .UpdateBuildpackByNameAndStackAndLifecycle (buildpackName , buildpackStack , buildpackLifecycle , buildpack )
354426 })
355427
356428 When ("it is successful" , func () {
@@ -377,6 +449,10 @@ var _ = Describe("Buildpack", func() {
377449 Key : ccv3 .StackFilter ,
378450 Values : []string {buildpackStack },
379451 },
452+ ccv3.Query {
453+ Key : ccv3 .LifecycleFilter ,
454+ Values : []string {buildpackLifecycle },
455+ },
380456 ))
381457
382458 paramBuildpack := fakeCloudControllerClient .UpdateBuildpackArgsForCall (0 )
@@ -651,18 +727,19 @@ var _ = Describe("Buildpack", func() {
651727 })
652728 })
653729
654- Describe ("DeleteBuildpackByNameAndStack " , func () {
730+ Describe ("DeleteBuildpackByNameAndStackAndLifecycle " , func () {
655731 var (
656- buildpackName = "buildpack-name"
657- buildpackStack = "buildpack-stack"
658- buildpackGUID = "buildpack-guid"
659- jobURL = "buildpack-delete-job-url"
660- warnings Warnings
661- executeErr error
732+ buildpackName = "buildpack-name"
733+ buildpackStack = "buildpack-stack"
734+ buildpackLifecycle = "buildpack-stack"
735+ buildpackGUID = "buildpack-guid"
736+ jobURL = "buildpack-delete-job-url"
737+ warnings Warnings
738+ executeErr error
662739 )
663740
664741 JustBeforeEach (func () {
665- warnings , executeErr = actor .DeleteBuildpackByNameAndStack (buildpackName , buildpackStack )
742+ warnings , executeErr = actor .DeleteBuildpackByNameAndStackAndLifecycle (buildpackName , buildpackStack , buildpackLifecycle )
666743 })
667744
668745 When ("getting the buildpack fails" , func () {
@@ -686,6 +763,10 @@ var _ = Describe("Buildpack", func() {
686763 Key : ccv3 .StackFilter ,
687764 Values : []string {buildpackStack },
688765 },
766+ ccv3.Query {
767+ Key : ccv3 .LifecycleFilter ,
768+ Values : []string {buildpackLifecycle },
769+ },
689770 ))
690771 })
691772 })
0 commit comments