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  })