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