@@ -34,6 +34,7 @@ var _ = Describe("unbind-service Command", func() {
3434 fakeSpaceName = "fake-space-name"
3535 fakeSpaceGUID = "fake-space-guid"
3636 fakeBindingGUID = "fake-binding-guid"
37+ fakeBindingGUID2 = "fake-binding-guid-2"
3738 )
3839
3940 BeforeEach (func () {
@@ -60,7 +61,6 @@ var _ = Describe("unbind-service Command", func() {
6061
6162 fakeActor .GetCurrentUserReturns (configv3.User {Name : fakeUserName }, nil )
6263
63- // Default: one binding found and deletion succeeds without stream
6464 fakeActor .ListServiceAppBindingsReturns (
6565 []resources.ServiceCredentialBinding {{GUID : fakeBindingGUID }},
6666 v7action.Warnings {"fake warning" },
@@ -88,18 +88,20 @@ var _ = Describe("unbind-service Command", func() {
8888 Expect (actualSpace ).To (BeTrue ())
8989 })
9090
91- It ("lists bindings then delegates deletion to the actor by GUID" , func () {
92- Expect (fakeActor .ListServiceAppBindingsCallCount ()).To (Equal (1 ))
93- Expect (fakeActor .ListServiceAppBindingsArgsForCall (0 )).To (Equal (v7action.ListServiceAppBindingParams {
94- SpaceGUID : fakeSpaceGUID ,
95- ServiceInstanceName : fakeServiceInstanceName ,
96- AppName : fakeAppName ,
97- }))
98-
99- Expect (fakeActor .DeleteServiceAppBindingCallCount ()).To (Equal (1 ))
100- Expect (fakeActor .DeleteServiceAppBindingArgsForCall (0 )).To (Equal (v7action.DeleteServiceAppBindingParams {
101- ServiceBindingGUID : fakeBindingGUID ,
102- }))
91+ Context ("one binding exists" , func () {
92+ It ("lists binding then delegates deletion to the actor by GUID" , func () {
93+ Expect (fakeActor .ListServiceAppBindingsCallCount ()).To (Equal (1 ))
94+ Expect (fakeActor .ListServiceAppBindingsArgsForCall (0 )).To (Equal (v7action.ListServiceAppBindingParams {
95+ SpaceGUID : fakeSpaceGUID ,
96+ ServiceInstanceName : fakeServiceInstanceName ,
97+ AppName : fakeAppName ,
98+ }))
99+
100+ Expect (fakeActor .DeleteServiceAppBindingCallCount ()).To (Equal (1 ))
101+ Expect (fakeActor .DeleteServiceAppBindingArgsForCall (0 )).To (Equal (v7action.DeleteServiceAppBindingParams {
102+ ServiceBindingGUID : fakeBindingGUID ,
103+ }))
104+ })
103105 })
104106
105107 Describe ("intro message" , func () {
@@ -112,7 +114,7 @@ var _ = Describe("unbind-service Command", func() {
112114 ))
113115
114116 Expect (testUI .Out ).To (Say (
115- `Unbinding app %s from service %s in org %s / space %s as %s\.{3} \n` ,
117+ `Unbinding app %s from service %s in org %s / space %s as %s\.\.\. \n` ,
116118 fakeAppName ,
117119 fakeServiceInstanceName ,
118120 fakeOrgName ,
@@ -122,7 +124,7 @@ var _ = Describe("unbind-service Command", func() {
122124 })
123125 })
124126
125- When ("binding did not exist" , func () {
127+ When ("binding does not exist" , func () {
126128 BeforeEach (func () {
127129 fakeActor .ListServiceAppBindingsReturns (
128130 nil ,
@@ -362,4 +364,31 @@ var _ = Describe("unbind-service Command", func() {
362364 Expect (executeErr ).To (MatchError ("bad thing" ))
363365 })
364366 })
367+
368+ Context ("multiple bindings exist" , func () {
369+ BeforeEach (func () {
370+ fakeActor .ListServiceAppBindingsReturns (
371+ []resources.ServiceCredentialBinding {{GUID : fakeBindingGUID }, {GUID : fakeBindingGUID2 }},
372+ v7action.Warnings {"fake warning" },
373+ nil ,
374+ )
375+ })
376+
377+ It ("deletes each binding by GUID and prints messages for both" , func () {
378+ Expect (fakeActor .DeleteServiceAppBindingCallCount ()).To (Equal (2 ))
379+
380+ firstArgs := fakeActor .DeleteServiceAppBindingArgsForCall (0 )
381+ secondArgs := fakeActor .DeleteServiceAppBindingArgsForCall (1 )
382+ Expect ([]string {firstArgs .ServiceBindingGUID , secondArgs .ServiceBindingGUID }).To (ConsistOf (fakeBindingGUID , fakeBindingGUID2 ))
383+
384+ Expect (testUI .Out ).To (SatisfyAll (
385+ Say (`Deleting service binding %s\.+\n` , fakeBindingGUID ),
386+ Say (`OK\n` ),
387+ Say (`Deleting service binding %s\.+\n` , fakeBindingGUID2 ),
388+ Say (`OK\n` ),
389+ ))
390+
391+ Expect (testUI .Err ).To (Say ("fake warning" ))
392+ })
393+ })
365394})
0 commit comments