@@ -149,51 +149,78 @@ var _ = Describe("update-stack Command", func() {
149149 Expect (fakeActor .GetStackByNameArgsForCall (0 )).To (Equal ("some-stack" ))
150150
151151 Expect (fakeActor .UpdateStackCallCount ()).To (Equal (1 ))
152- guid , state := fakeActor .UpdateStackArgsForCall (0 )
152+ guid , state , reason := fakeActor .UpdateStackArgsForCall (0 )
153153 Expect (guid ).To (Equal ("stack-guid" ))
154154 Expect (state ).To (Equal (resources .StackStateDeprecated ))
155+ Expect (reason ).To (Equal ("" ))
155156 })
156157 })
157158 })
158159 })
159160
160- Context ("when state values are provided in different cases" , func () {
161- It ("accepts 'active' and capitalizes it" , func () {
162- cmd .State = "active"
163- fakeActor .GetStackByNameReturns (resources.Stack {GUID : "guid" }, v7action.Warnings {}, nil )
164- fakeActor .UpdateStackReturns (resources.Stack {Name : "some-stack" , State : resources .StackStateActive }, v7action.Warnings {}, nil )
161+ Context ("when state values are provided in different cases" , func () {
162+ It ("accepts 'active' and capitalizes it" , func () {
163+ cmd .State = "active"
164+ fakeActor .GetStackByNameReturns (resources.Stack {GUID : "guid" }, v7action.Warnings {}, nil )
165+ fakeActor .UpdateStackReturns (resources.Stack {Name : "some-stack" , State : resources .StackStateActive }, v7action.Warnings {}, nil )
165166
166- executeErr = cmd .Execute (args )
167+ executeErr = cmd .Execute (args )
167168
168- Expect (executeErr ).ToNot (HaveOccurred ())
169- _ , state := fakeActor .UpdateStackArgsForCall (0 )
170- Expect (state ).To (Equal (resources .StackStateActive ))
171- })
169+ Expect (executeErr ).ToNot (HaveOccurred ())
170+ _ , state , _ := fakeActor .UpdateStackArgsForCall (0 )
171+ Expect (state ).To (Equal (resources .StackStateActive ))
172+ })
172173
173- It ("accepts 'RESTRICTED' and keeps it capitalized" , func () {
174- cmd .State = "RESTRICTED"
175- fakeActor .GetStackByNameReturns (resources.Stack {GUID : "guid" }, v7action.Warnings {}, nil )
176- fakeActor .UpdateStackReturns (resources.Stack {Name : "some-stack" , State : resources .StackStateRestricted }, v7action.Warnings {}, nil )
174+ It ("accepts 'RESTRICTED' and keeps it capitalized" , func () {
175+ cmd .State = "RESTRICTED"
176+ fakeActor .GetStackByNameReturns (resources.Stack {GUID : "guid" }, v7action.Warnings {}, nil )
177+ fakeActor .UpdateStackReturns (resources.Stack {Name : "some-stack" , State : resources .StackStateRestricted }, v7action.Warnings {}, nil )
177178
178- executeErr = cmd .Execute (args )
179+ executeErr = cmd .Execute (args )
179180
180- Expect (executeErr ).ToNot (HaveOccurred ())
181- _ , state := fakeActor .UpdateStackArgsForCall (0 )
182- Expect (state ).To (Equal (resources .StackStateRestricted ))
183- })
181+ Expect (executeErr ).ToNot (HaveOccurred ())
182+ _ , state , _ := fakeActor .UpdateStackArgsForCall (0 )
183+ Expect (state ).To (Equal (resources .StackStateRestricted ))
184+ })
184185
185- It ("accepts 'Disabled' and capitalizes it" , func () {
186- cmd .State = "Disabled"
187- fakeActor .GetStackByNameReturns (resources.Stack {GUID : "guid" }, v7action.Warnings {}, nil )
188- fakeActor .UpdateStackReturns (resources.Stack {Name : "some-stack" , State : resources .StackStateDisabled }, v7action.Warnings {}, nil )
186+ It ("accepts 'Disabled' and capitalizes it" , func () {
187+ cmd .State = "Disabled"
188+ fakeActor .GetStackByNameReturns (resources.Stack {GUID : "guid" }, v7action.Warnings {}, nil )
189+ fakeActor .UpdateStackReturns (resources.Stack {Name : "some-stack" , State : resources .StackStateDisabled }, v7action.Warnings {}, nil )
189190
190- executeErr = cmd .Execute (args )
191+ executeErr = cmd .Execute (args )
191192
192- Expect (executeErr ).ToNot (HaveOccurred ())
193- _ , state := fakeActor .UpdateStackArgsForCall (0 )
194- Expect (state ).To (Equal (resources .StackStateDisabled ))
195- })
193+ Expect (executeErr ).ToNot (HaveOccurred ())
194+ _ , state , _ := fakeActor .UpdateStackArgsForCall (0 )
195+ Expect (state ).To (Equal (resources .StackStateDisabled ))
196196 })
197197 })
198+
199+ Context ("when the reason flag is provided" , func () {
200+ BeforeEach (func () {
201+ cmd .State = "deprecated"
202+ cmd .Reason = "Use cflinuxfs4 instead"
203+ fakeActor .GetStackByNameReturns (resources.Stack {GUID : "guid" }, v7action.Warnings {}, nil )
204+ fakeActor .UpdateStackReturns (resources.Stack {
205+ Name : "some-stack" ,
206+ Description : "some description" ,
207+ State : resources .StackStateDeprecated ,
208+ StateReason : "Use cflinuxfs4 instead" ,
209+ }, v7action.Warnings {}, nil )
210+ })
211+
212+ It ("passes the reason to the actor and displays it" , func () {
213+ executeErr = cmd .Execute (args )
214+
215+ Expect (executeErr ).ToNot (HaveOccurred ())
216+
217+ Expect (fakeActor .UpdateStackCallCount ()).To (Equal (1 ))
218+ _ , _ , reason := fakeActor .UpdateStackArgsForCall (0 )
219+ Expect (reason ).To (Equal ("Use cflinuxfs4 instead" ))
220+
221+ Expect (testUI .Out ).To (Say (`reason:\s+Use cflinuxfs4 instead` ))
222+ })
223+ })
224+ })
198225})
199226
0 commit comments