@@ -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,15 +125,16 @@ 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 })
127132
128133 When ("getting buildpacks is successful" , func () {
129- When ("No stack is specified" , func () {
134+ When ("No stack or lifecycle is specified" , func () {
130135 BeforeEach (func () {
131136 buildpackStack = ""
137+ buildpackLifecycle = ""
132138 buildpackName = "my-buildpack"
133139
134140 ccBuildpack := resources.Buildpack {Name : "my-buildpack" , GUID : "some-guid" }
@@ -144,7 +150,7 @@ var _ = Describe("Buildpack", func() {
144150 Expect (buildpack ).To (Equal (resources.Buildpack {Name : "my-buildpack" , GUID : "some-guid" }))
145151 })
146152
147- It ("Does not pass a stack query to the client" , func () {
153+ It ("Does not pass a stack or lifecycle query to the client" , func () {
148154 Expect (fakeCloudControllerClient .GetBuildpacksCallCount ()).To (Equal (1 ))
149155 queries := fakeCloudControllerClient .GetBuildpacksArgsForCall (0 )
150156 Expect (queries ).To (ConsistOf (
@@ -156,10 +162,11 @@ var _ = Describe("Buildpack", func() {
156162 })
157163 })
158164
159- When ("A stack is specified" , func () {
165+ When ("only a stack is specified" , func () {
160166 BeforeEach (func () {
161167 buildpackStack = "good-stack"
162168 buildpackName = "my-buildpack"
169+ buildpackLifecycle = ""
163170
164171 ccBuildpack := resources.Buildpack {Name : "my-buildpack" , GUID : "some-guid" , Stack : "good-stack" }
165172 fakeCloudControllerClient .GetBuildpacksReturns (
@@ -174,7 +181,7 @@ var _ = Describe("Buildpack", func() {
174181 Expect (buildpack ).To (Equal (resources.Buildpack {Name : "my-buildpack" , GUID : "some-guid" , Stack : "good-stack" }))
175182 })
176183
177- It ("Does pass a stack query to the client" , func () {
184+ It ("Only passes a stack query to the client" , func () {
178185 Expect (fakeCloudControllerClient .GetBuildpacksCallCount ()).To (Equal (1 ))
179186 queries := fakeCloudControllerClient .GetBuildpacksArgsForCall (0 )
180187 Expect (queries ).To (ConsistOf (
@@ -189,6 +196,78 @@ var _ = Describe("Buildpack", func() {
189196 ))
190197 })
191198 })
199+ When ("only a lifecycle is specified" , func () {
200+ BeforeEach (func () {
201+ buildpackLifecycle = "good-lifecycle"
202+ buildpackStack = ""
203+ buildpackName = "my-buildpack"
204+
205+ ccBuildpack := resources.Buildpack {Name : "my-buildpack" , GUID : "some-guid" , Lifecycle : "good-lifecycle" }
206+ fakeCloudControllerClient .GetBuildpacksReturns (
207+ []resources.Buildpack {ccBuildpack },
208+ ccv3.Warnings {"some-warning-1" , "some-warning-2" },
209+ nil )
210+ })
211+
212+ It ("Returns the proper buildpack" , func () {
213+ Expect (executeErr ).ToNot (HaveOccurred ())
214+ Expect (warnings ).To (ConsistOf ("some-warning-1" , "some-warning-2" ))
215+ Expect (buildpack ).To (Equal (resources.Buildpack {Name : "my-buildpack" , GUID : "some-guid" , Lifecycle : "good-lifecycle" }))
216+ })
217+
218+ It ("Only passes a lifecycle query to the client" , func () {
219+ Expect (fakeCloudControllerClient .GetBuildpacksCallCount ()).To (Equal (1 ))
220+ queries := fakeCloudControllerClient .GetBuildpacksArgsForCall (0 )
221+ Expect (queries ).To (ConsistOf (
222+ ccv3.Query {
223+ Key : ccv3 .NameFilter ,
224+ Values : []string {buildpackName },
225+ },
226+ ccv3.Query {
227+ Key : ccv3 .LifecycleFilter ,
228+ Values : []string {buildpackLifecycle },
229+ },
230+ ))
231+ })
232+ })
233+ When ("When stack and lifecycle are specified" , func () {
234+ BeforeEach (func () {
235+ buildpackLifecycle = "good-lifecycle"
236+ buildpackStack = "good-stack"
237+ buildpackName = "my-buildpack"
238+
239+ ccBuildpack := resources.Buildpack {Name : "my-buildpack" , GUID : "some-guid" , Lifecycle : "good-lifecycle" , Stack : "good-stack" }
240+ fakeCloudControllerClient .GetBuildpacksReturns (
241+ []resources.Buildpack {ccBuildpack },
242+ ccv3.Warnings {"some-warning-1" , "some-warning-2" },
243+ nil )
244+ })
245+
246+ It ("Returns the proper buildpack" , func () {
247+ Expect (executeErr ).ToNot (HaveOccurred ())
248+ Expect (warnings ).To (ConsistOf ("some-warning-1" , "some-warning-2" ))
249+ Expect (buildpack ).To (Equal (resources.Buildpack {Name : "my-buildpack" , GUID : "some-guid" , Lifecycle : "good-lifecycle" , Stack : "good-stack" }))
250+ })
251+
252+ It ("Only passes a lifecycle query to the client" , func () {
253+ Expect (fakeCloudControllerClient .GetBuildpacksCallCount ()).To (Equal (1 ))
254+ queries := fakeCloudControllerClient .GetBuildpacksArgsForCall (0 )
255+ Expect (queries ).To (ConsistOf (
256+ ccv3.Query {
257+ Key : ccv3 .NameFilter ,
258+ Values : []string {buildpackName },
259+ },
260+ ccv3.Query {
261+ Key : ccv3 .LifecycleFilter ,
262+ Values : []string {buildpackLifecycle },
263+ },
264+ ccv3.Query {
265+ Key : ccv3 .StackFilter ,
266+ Values : []string {buildpackStack },
267+ },
268+ ))
269+ })
270+ })
192271 })
193272 })
194273
@@ -338,9 +417,10 @@ var _ = Describe("Buildpack", func() {
338417
339418 Describe ("UpdateBuildpackByNameAndStack" , func () {
340419 var (
341- buildpackName = "my-buildpack"
342- buildpackStack = "my-stack"
343- buildpack = resources.Buildpack {
420+ buildpackName = "my-buildpack"
421+ buildpackStack = "my-stack"
422+ buildpackLifecycle = "cnb"
423+ buildpack = resources.Buildpack {
344424 Stack : "new-stack" ,
345425 }
346426
@@ -350,7 +430,7 @@ var _ = Describe("Buildpack", func() {
350430 )
351431
352432 JustBeforeEach (func () {
353- retBuildpack , warnings , executeErr = actor .UpdateBuildpackByNameAndStack (buildpackName , buildpackStack , buildpack )
433+ retBuildpack , warnings , executeErr = actor .UpdateBuildpackByNameAndStackAndLifecycle (buildpackName , buildpackStack , buildpackLifecycle , buildpack )
354434 })
355435
356436 When ("it is successful" , func () {
@@ -377,6 +457,10 @@ var _ = Describe("Buildpack", func() {
377457 Key : ccv3 .StackFilter ,
378458 Values : []string {buildpackStack },
379459 },
460+ ccv3.Query {
461+ Key : ccv3 .LifecycleFilter ,
462+ Values : []string {buildpackLifecycle },
463+ },
380464 ))
381465
382466 paramBuildpack := fakeCloudControllerClient .UpdateBuildpackArgsForCall (0 )
@@ -651,18 +735,19 @@ var _ = Describe("Buildpack", func() {
651735 })
652736 })
653737
654- Describe ("DeleteBuildpackByNameAndStack " , func () {
738+ Describe ("DeleteBuildpackByNameAndStackAndLifecycle " , func () {
655739 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
740+ buildpackName = "buildpack-name"
741+ buildpackStack = "buildpack-stack"
742+ buildpackLifecycle = "buildpack-stack"
743+ buildpackGUID = "buildpack-guid"
744+ jobURL = "buildpack-delete-job-url"
745+ warnings Warnings
746+ executeErr error
662747 )
663748
664749 JustBeforeEach (func () {
665- warnings , executeErr = actor .DeleteBuildpackByNameAndStack (buildpackName , buildpackStack )
750+ warnings , executeErr = actor .DeleteBuildpackByNameAndStackAndLifecycle (buildpackName , buildpackStack , buildpackLifecycle )
666751 })
667752
668753 When ("getting the buildpack fails" , func () {
@@ -686,6 +771,10 @@ var _ = Describe("Buildpack", func() {
686771 Key : ccv3 .StackFilter ,
687772 Values : []string {buildpackStack },
688773 },
774+ ccv3.Query {
775+ Key : ccv3 .LifecycleFilter ,
776+ Values : []string {buildpackLifecycle },
777+ },
689778 ))
690779 })
691780 })
0 commit comments