github.com/cloudfoundry-community/cloudfoundry-cli@v6.44.1-0.20240130060226-cda5ed8e89a5+incompatible/actor/v7pushaction/update_application_settings_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("UpdateApplicationSettings", func() { 15 var ( 16 actor *Actor 17 fakeV7Actor *v7pushactionfakes.FakeV7Actor 18 19 paramPlans []PushPlan 20 21 returnedPlans []PushPlan 22 warnings Warnings 23 executeErr error 24 25 spaceGUID string 26 ) 27 28 BeforeEach(func() { 29 actor, _, fakeV7Actor, _ = getTestPushActor() 30 31 spaceGUID = "space" 32 33 paramPlans = []PushPlan{ 34 {SpaceGUID: spaceGUID, Application: v7action.Application{Name: "app-name-0"}}, 35 {SpaceGUID: spaceGUID, Application: v7action.Application{Name: "app-name-1"}}, 36 {SpaceGUID: spaceGUID, Application: v7action.Application{Name: "app-name-2"}}, 37 } 38 }) 39 40 JustBeforeEach(func() { 41 returnedPlans, warnings, executeErr = actor.UpdateApplicationSettings(paramPlans) 42 }) 43 44 Describe("application", func() { 45 When("the applications exist", func() { 46 var apps []v7action.Application 47 48 BeforeEach(func() { 49 apps = []v7action.Application{ 50 { 51 GUID: "app-guid-0", 52 Name: "app-name-0", 53 State: constant.ApplicationStarted, 54 }, 55 { 56 GUID: "app-guid-1", 57 Name: "app-name-1", 58 State: constant.ApplicationStarted, 59 }, 60 { 61 GUID: "app-guid-2", 62 Name: "app-name-2", 63 State: constant.ApplicationStopped, 64 }, 65 } 66 fakeV7Actor.GetApplicationsByNamesAndSpaceReturns(apps, v7action.Warnings{"plural-get-warning"}, nil) 67 }) 68 69 It("returns multiple push returnedPlans", func() { 70 Expect(executeErr).ToNot(HaveOccurred()) 71 Expect(warnings).To(ConsistOf("plural-get-warning")) 72 Expect(returnedPlans).To(HaveLen(3)) 73 74 Expect(returnedPlans[0].Application.Name).To(Equal("app-name-0")) 75 Expect(returnedPlans[1].Application.Name).To(Equal("app-name-1")) 76 Expect(returnedPlans[2].Application.Name).To(Equal("app-name-2")) 77 Expect(returnedPlans[0].Application.GUID).To(Equal("app-guid-0")) 78 Expect(returnedPlans[1].Application.GUID).To(Equal("app-guid-1")) 79 Expect(returnedPlans[2].Application.GUID).To(Equal("app-guid-2")) 80 Expect(returnedPlans[0].Application.State).To(Equal(constant.ApplicationStarted)) 81 Expect(returnedPlans[1].Application.State).To(Equal(constant.ApplicationStarted)) 82 Expect(returnedPlans[2].Application.State).To(Equal(constant.ApplicationStopped)) 83 84 Expect(fakeV7Actor.GetApplicationsByNamesAndSpaceCallCount()).To(Equal(1)) 85 argumentAppNames, argumentSpaceGUID := fakeV7Actor.GetApplicationsByNamesAndSpaceArgsForCall(0) 86 Expect(argumentAppNames).To(ConsistOf("app-name-0", "app-name-1", "app-name-2")) 87 Expect(argumentSpaceGUID).To(Equal(spaceGUID)) 88 }) 89 }) 90 91 When("getting the app errors", func() { 92 BeforeEach(func() { 93 fakeV7Actor.GetApplicationsByNamesAndSpaceReturns([]v7action.Application{}, v7action.Warnings{"some-app-warning"}, errors.New("bad-get-error")) 94 }) 95 96 It("errors", func() { 97 Expect(executeErr).To(MatchError(errors.New("bad-get-error"))) 98 Expect(warnings).To(ConsistOf("some-app-warning")) 99 }) 100 }) 101 }) 102 })