github.com/lukasheimann/cloudfoundrycli@v7.1.0+incompatible/actor/v7action/relationship_list_test.go (about)

     1  package v7action_test
     2  
     3  import (
     4  	"errors"
     5  
     6  	. "code.cloudfoundry.org/cli/actor/v7action"
     7  	"code.cloudfoundry.org/cli/actor/v7action/v7actionfakes"
     8  	"code.cloudfoundry.org/cli/api/cloudcontroller/ccv3"
     9  	"code.cloudfoundry.org/cli/resources"
    10  	. "github.com/onsi/ginkgo"
    11  	. "github.com/onsi/gomega"
    12  )
    13  
    14  var _ = Describe("Relationship List Actions", func() {
    15  	var (
    16  		actor                     *Actor
    17  		fakeCloudControllerClient *v7actionfakes.FakeCloudControllerClient
    18  	)
    19  
    20  	BeforeEach(func() {
    21  		fakeCloudControllerClient = new(v7actionfakes.FakeCloudControllerClient)
    22  		actor = NewActor(fakeCloudControllerClient, nil, nil, nil, nil, nil)
    23  	})
    24  
    25  	Describe("ShareServiceInstanceToSpaces", func() {
    26  		var (
    27  			serviceInstanceGUID string
    28  			shareToSpaceGUID    string
    29  
    30  			relationshipList resources.RelationshipList
    31  			warnings         Warnings
    32  			shareErr         error
    33  		)
    34  
    35  		BeforeEach(func() {
    36  			serviceInstanceGUID = "some-service-instance-guid"
    37  			shareToSpaceGUID = "some-space-guid"
    38  		})
    39  
    40  		JustBeforeEach(func() {
    41  			relationshipList, warnings, shareErr = actor.ShareServiceInstanceToSpaces(
    42  				serviceInstanceGUID,
    43  				[]string{shareToSpaceGUID})
    44  		})
    45  
    46  		When("no errors occur sharing the service instance", func() {
    47  			var returnedRelationshipList resources.RelationshipList
    48  
    49  			BeforeEach(func() {
    50  				returnedRelationshipList = resources.RelationshipList{
    51  					GUIDs: []string{"some-space-guid"},
    52  				}
    53  				fakeCloudControllerClient.ShareServiceInstanceToSpacesReturns(
    54  					returnedRelationshipList,
    55  					ccv3.Warnings{"share-service-instance-warning"},
    56  					nil)
    57  			})
    58  
    59  			It("does not return an error and returns warnings", func() {
    60  				Expect(shareErr).ToNot(HaveOccurred())
    61  				Expect(relationshipList).To(Equal(returnedRelationshipList))
    62  				Expect(warnings).To(ConsistOf("share-service-instance-warning"))
    63  
    64  				Expect(fakeCloudControllerClient.ShareServiceInstanceToSpacesCallCount()).To(Equal(1))
    65  				serviceInstanceGUIDArg, spaceGUIDsArg := fakeCloudControllerClient.ShareServiceInstanceToSpacesArgsForCall(0)
    66  				Expect(serviceInstanceGUIDArg).To(Equal(serviceInstanceGUID))
    67  				Expect(spaceGUIDsArg).To(Equal([]string{shareToSpaceGUID}))
    68  			})
    69  		})
    70  
    71  		When("an error occurs sharing the service instance", func() {
    72  			var expectedErr error
    73  
    74  			BeforeEach(func() {
    75  				expectedErr = errors.New("share service instance error")
    76  				fakeCloudControllerClient.ShareServiceInstanceToSpacesReturns(
    77  					resources.RelationshipList{},
    78  					ccv3.Warnings{"share-service-instance-warning"},
    79  					expectedErr)
    80  			})
    81  
    82  			It("returns the error and warnings", func() {
    83  				Expect(shareErr).To(MatchError(expectedErr))
    84  				Expect(warnings).To(ConsistOf("share-service-instance-warning"))
    85  			})
    86  		})
    87  	})
    88  })