github.com/cloudfoundry-community/cloudfoundry-cli@v6.44.1-0.20240130060226-cda5ed8e89a5+incompatible/actor/v7action/organization_test.go (about)

     1  package v7action_test
     2  
     3  import (
     4  	"code.cloudfoundry.org/cli/resources"
     5  	"errors"
     6  
     7  	"code.cloudfoundry.org/cli/actor/actionerror"
     8  	. "code.cloudfoundry.org/cli/actor/v7action"
     9  	"code.cloudfoundry.org/cli/actor/v7action/v7actionfakes"
    10  	"code.cloudfoundry.org/cli/api/cloudcontroller/ccv3"
    11  
    12  	. "github.com/onsi/ginkgo"
    13  	. "github.com/onsi/gomega"
    14  )
    15  
    16  var _ = Describe("Organization Actions", func() {
    17  	var (
    18  		actor                     *Actor
    19  		fakeCloudControllerClient *v7actionfakes.FakeCloudControllerClient
    20  	)
    21  
    22  	BeforeEach(func() {
    23  		fakeCloudControllerClient = new(v7actionfakes.FakeCloudControllerClient)
    24  		actor = NewActor(fakeCloudControllerClient, nil, nil, nil)
    25  	})
    26  
    27  	Describe("GetOrganizationByName", func() {
    28  		When("the org exists", func() {
    29  			BeforeEach(func() {
    30  				fakeCloudControllerClient.GetOrganizationsReturns(
    31  					[]resources.Organization{
    32  						{
    33  							Name: "some-org-name",
    34  							GUID: "some-org-guid",
    35  						},
    36  					},
    37  					ccv3.Warnings{"some-warning"},
    38  					nil,
    39  				)
    40  			})
    41  
    42  			It("returns the organization and warnings", func() {
    43  				org, warnings, err := actor.GetOrganizationByName("some-org-name")
    44  				Expect(err).ToNot(HaveOccurred())
    45  				Expect(org).To(Equal(Organization{
    46  					Name: "some-org-name",
    47  					GUID: "some-org-guid",
    48  				}))
    49  				Expect(warnings).To(ConsistOf("some-warning"))
    50  
    51  				Expect(fakeCloudControllerClient.GetOrganizationsCallCount()).To(Equal(1))
    52  				Expect(fakeCloudControllerClient.GetOrganizationsArgsForCall(0)).To(ConsistOf(
    53  					ccv3.Query{Key: ccv3.NameFilter, Values: []string{"some-org-name"}},
    54  				))
    55  			})
    56  		})
    57  
    58  		When("the cloud controller client returns an error", func() {
    59  			var expectedError error
    60  
    61  			BeforeEach(func() {
    62  				expectedError = errors.New("I am a CloudControllerClient Error")
    63  				fakeCloudControllerClient.GetOrganizationsReturns(
    64  					[]resources.Organization{},
    65  					ccv3.Warnings{"some-warning"},
    66  					expectedError)
    67  			})
    68  
    69  			It("returns the warnings and the error", func() {
    70  				_, warnings, err := actor.GetOrganizationByName("some-org-name")
    71  				Expect(warnings).To(ConsistOf("some-warning"))
    72  				Expect(err).To(MatchError(expectedError))
    73  			})
    74  		})
    75  	})
    76  
    77  	When("the org does not exist", func() {
    78  		BeforeEach(func() {
    79  			fakeCloudControllerClient.GetOrganizationsReturns(
    80  				[]resources.Organization{},
    81  				ccv3.Warnings{"some-warning"},
    82  				nil,
    83  			)
    84  		})
    85  
    86  		It("returns an OrganizationNotFoundError and the warnings", func() {
    87  			_, warnings, err := actor.GetOrganizationByName("some-org-name")
    88  			Expect(warnings).To(ConsistOf("some-warning"))
    89  			Expect(err).To(MatchError(actionerror.OrganizationNotFoundError{Name: "some-org-name"}))
    90  		})
    91  	})
    92  })