github.com/mook-as/cf-cli@v7.0.0-beta.28.0.20200120190804-b91c115fae48+incompatible/actor/v7pushaction/restart_application_test.go (about) 1 package v7pushaction_test 2 3 import ( 4 "errors" 5 6 "code.cloudfoundry.org/cli/actor/v7action" 7 . "code.cloudfoundry.org/cli/actor/v7pushaction" 8 "code.cloudfoundry.org/cli/actor/v7pushaction/v7pushactionfakes" 9 "code.cloudfoundry.org/cli/api/cloudcontroller/ccv3/constant" 10 . "github.com/onsi/ginkgo" 11 . "github.com/onsi/gomega" 12 ) 13 14 var _ = Describe("RestartApplication", func() { 15 var ( 16 actor *Actor 17 fakeV7Actor *v7pushactionfakes.FakeV7Actor 18 19 paramPlan PushPlan 20 21 warnings Warnings 22 executeErr error 23 24 events []Event 25 ) 26 27 BeforeEach(func() { 28 actor, fakeV7Actor, _ = getTestPushActor() 29 30 paramPlan = PushPlan{ 31 Application: v7action.Application{ 32 GUID: "some-app-guid", 33 }, 34 } 35 }) 36 37 JustBeforeEach(func() { 38 events = EventFollower(func(eventStream chan<- *PushEvent) { 39 _, warnings, executeErr = actor.RestartApplication(paramPlan, eventStream, nil) 40 }) 41 }) 42 43 It("Restarts the app", func() { 44 Expect(fakeV7Actor.RestartApplicationCallCount()).To(Equal(1)) 45 Expect(fakeV7Actor.RestartApplicationArgsForCall(0)).To(Equal("some-app-guid")) 46 }) 47 48 When("Restarting the app succeeds", func() { 49 BeforeEach(func() { 50 fakeV7Actor.RestartApplicationReturns(v7action.Warnings{"some-restarting-warning"}, nil) 51 paramPlan.Application.State = constant.ApplicationStarted 52 }) 53 54 When("the noWait flag is set", func() { 55 BeforeEach(func() { 56 paramPlan.NoWait = true 57 }) 58 59 It("calls PollStart with true", func() { 60 Expect(fakeV7Actor.PollStartCallCount()).To(Equal(1)) 61 actualAppGUID, givenNoWait := fakeV7Actor.PollStartArgsForCall(0) 62 Expect(givenNoWait).To(Equal(true)) 63 Expect(actualAppGUID).To(Equal("some-app-guid")) 64 }) 65 }) 66 67 It("calls pollStart", func() { 68 Expect(fakeV7Actor.PollStartCallCount()).To(Equal(1)) 69 actualAppGUID, givenNoWait := fakeV7Actor.PollStartArgsForCall(0) 70 Expect(givenNoWait).To(Equal(false)) 71 Expect(actualAppGUID).To(Equal("some-app-guid")) 72 }) 73 74 When("pollStart errors", func() { 75 BeforeEach(func() { 76 fakeV7Actor.PollStartReturns( 77 v7action.Warnings{"poll-start-warning"}, 78 errors.New("poll-start-error"), 79 ) 80 }) 81 82 It("returns errors and warnings", func() { 83 Expect(executeErr).To(MatchError("poll-start-error")) 84 Expect(warnings).To(ConsistOf("some-restarting-warning", "poll-start-warning")) 85 }) 86 87 }) 88 89 When("pollStart succeeds", func() { 90 BeforeEach(func() { 91 fakeV7Actor.PollStartReturns( 92 v7action.Warnings{"poll-start-warning"}, 93 nil, 94 ) 95 }) 96 97 It("Uploads a package and exits", func() { 98 Expect(executeErr).ToNot(HaveOccurred()) 99 Expect(warnings).To(ConsistOf("some-restarting-warning", "poll-start-warning")) 100 Expect(events).To(ConsistOf(RestartingApplication, RestartingApplicationComplete)) 101 }) 102 }) 103 }) 104 105 When("Restarting the app fails", func() { 106 BeforeEach(func() { 107 fakeV7Actor.RestartApplicationReturns(v7action.Warnings{"some-restarting-warning"}, errors.New("bummer")) 108 }) 109 110 It("returns errors and warnings", func() { 111 Expect(executeErr).To(MatchError("bummer")) 112 Expect(warnings).To(ConsistOf("some-restarting-warning")) 113 Expect(events).To(ConsistOf(RestartingApplication)) 114 }) 115 }) 116 117 })