github.com/arunkumar7540/cli@v6.45.0+incompatible/actor/v7pushaction/update_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  
    10  	. "github.com/onsi/ginkgo"
    11  	. "github.com/onsi/gomega"
    12  	. "github.com/onsi/gomega/gstruct"
    13  )
    14  
    15  var _ = Describe("UpdateApplication", func() {
    16  	var (
    17  		actor       *Actor
    18  		fakeV7Actor *v7pushactionfakes.FakeV7Actor
    19  
    20  		paramPlan PushPlan
    21  
    22  		returnedPlan PushPlan
    23  		warnings     Warnings
    24  		executeErr   error
    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  		returnedPlan, warnings, executeErr = actor.UpdateApplication(paramPlan, nil, nil)
    39  	})
    40  
    41  	When("the apps needs an update", func() {
    42  		BeforeEach(func() {
    43  			paramPlan.ApplicationNeedsUpdate = true
    44  		})
    45  
    46  		When("updating is successful", func() {
    47  			BeforeEach(func() {
    48  				fakeV7Actor.UpdateApplicationReturns(
    49  					v7action.Application{
    50  						Name:                "some-app",
    51  						GUID:                "some-app-guid",
    52  						LifecycleBuildpacks: []string{"some-buildpack-1"},
    53  					},
    54  					v7action.Warnings{"some-app-update-warnings"},
    55  					nil)
    56  			})
    57  
    58  			It("puts the updated application in the stream", func() {
    59  				Expect(executeErr).NotTo(HaveOccurred())
    60  				Expect(warnings).To(ConsistOf("some-app-update-warnings"))
    61  
    62  				Expect(returnedPlan).To(MatchFields(IgnoreExtras,
    63  					Fields{
    64  						"Application": Equal(v7action.Application{
    65  							Name:                "some-app",
    66  							GUID:                "some-app-guid",
    67  							LifecycleBuildpacks: []string{"some-buildpack-1"},
    68  						}),
    69  					}))
    70  			})
    71  		})
    72  
    73  		When("updating errors", func() {
    74  			var expectedErr error
    75  
    76  			BeforeEach(func() {
    77  				expectedErr = errors.New("some-error")
    78  				fakeV7Actor.UpdateApplicationReturns(
    79  					v7action.Application{},
    80  					v7action.Warnings{"some-app-update-warnings"},
    81  					expectedErr)
    82  			})
    83  
    84  			It("returns the warnings and error", func() {
    85  				Expect(executeErr).To(MatchError(expectedErr))
    86  				Expect(warnings).To(ConsistOf("some-app-update-warnings"))
    87  			})
    88  		})
    89  	})
    90  })