github.com/arunkumar7540/cli@v6.45.0+incompatible/actor/v7action/organization_test.go (about)

     1  package v7action_test
     2  
     3  import (
     4  	"errors"
     5  
     6  	"code.cloudfoundry.org/cli/actor/actionerror"
     7  	. "code.cloudfoundry.org/cli/actor/v7action"
     8  	"code.cloudfoundry.org/cli/actor/v7action/v7actionfakes"
     9  	"code.cloudfoundry.org/cli/api/cloudcontroller/ccv3"
    10  
    11  	. "github.com/onsi/ginkgo"
    12  	. "github.com/onsi/gomega"
    13  )
    14  
    15  var _ = Describe("Organization Actions", func() {
    16  	var (
    17  		actor                     *Actor
    18  		fakeCloudControllerClient *v7actionfakes.FakeCloudControllerClient
    19  	)
    20  
    21  	BeforeEach(func() {
    22  		fakeCloudControllerClient = new(v7actionfakes.FakeCloudControllerClient)
    23  		actor = NewActor(fakeCloudControllerClient, nil, nil, nil)
    24  	})
    25  
    26  	Describe("GetOrganizationByName", func() {
    27  		When("the org exists", func() {
    28  			BeforeEach(func() {
    29  				fakeCloudControllerClient.GetOrganizationsReturns(
    30  					[]ccv3.Organization{
    31  						{
    32  							Name: "some-org-name",
    33  							GUID: "some-org-guid",
    34  						},
    35  					},
    36  					ccv3.Warnings{"some-warning"},
    37  					nil,
    38  				)
    39  			})
    40  
    41  			It("returns the organization and warnings", func() {
    42  				org, warnings, err := actor.GetOrganizationByName("some-org-name")
    43  				Expect(err).ToNot(HaveOccurred())
    44  				Expect(org).To(Equal(Organization{
    45  					Name: "some-org-name",
    46  					GUID: "some-org-guid",
    47  				}))
    48  				Expect(warnings).To(ConsistOf("some-warning"))
    49  
    50  				Expect(fakeCloudControllerClient.GetOrganizationsCallCount()).To(Equal(1))
    51  				Expect(fakeCloudControllerClient.GetOrganizationsArgsForCall(0)).To(ConsistOf(
    52  					ccv3.Query{Key: ccv3.NameFilter, Values: []string{"some-org-name"}},
    53  				))
    54  			})
    55  		})
    56  
    57  		When("the cloud controller client returns an error", func() {
    58  			var expectedError error
    59  
    60  			BeforeEach(func() {
    61  				expectedError = errors.New("I am a CloudControllerClient Error")
    62  				fakeCloudControllerClient.GetOrganizationsReturns(
    63  					[]ccv3.Organization{},
    64  					ccv3.Warnings{"some-warning"},
    65  					expectedError)
    66  			})
    67  
    68  			It("returns the warnings and the error", func() {
    69  				_, warnings, err := actor.GetOrganizationByName("some-org-name")
    70  				Expect(warnings).To(ConsistOf("some-warning"))
    71  				Expect(err).To(MatchError(expectedError))
    72  			})
    73  		})
    74  	})
    75  
    76  	Describe("GetDefaultDomain", func() {
    77  		var (
    78  			domain     Domain
    79  			warnings   Warnings
    80  			executeErr error
    81  
    82  			orgGUID = "org-guid"
    83  		)
    84  
    85  		JustBeforeEach(func() {
    86  			domain, warnings, executeErr = actor.GetDefaultDomain(orgGUID)
    87  		})
    88  
    89  		When("the api call is successful", func() {
    90  			BeforeEach(func() {
    91  				fakeCloudControllerClient.GetDefaultDomainReturns(
    92  					ccv3.Domain{
    93  						Name: "some-domain-name",
    94  						GUID: "some-domain-guid",
    95  					},
    96  					ccv3.Warnings{"some-warning"},
    97  					nil,
    98  				)
    99  			})
   100  
   101  			It("returns the domain and warnings", func() {
   102  				Expect(executeErr).ToNot(HaveOccurred())
   103  				Expect(domain).To(Equal(Domain{
   104  					Name: "some-domain-name",
   105  					GUID: "some-domain-guid",
   106  				}))
   107  				Expect(warnings).To(ConsistOf("some-warning"))
   108  
   109  				Expect(fakeCloudControllerClient.GetDefaultDomainCallCount()).To(Equal(1))
   110  				Expect(fakeCloudControllerClient.GetDefaultDomainArgsForCall(0)).To(Equal(orgGUID))
   111  			})
   112  		})
   113  
   114  		When("the cloud controller client returns an error", func() {
   115  			var expectedError error
   116  
   117  			BeforeEach(func() {
   118  				expectedError = errors.New("I am a CloudControllerClient Error")
   119  				fakeCloudControllerClient.GetDefaultDomainReturns(
   120  					ccv3.Domain{},
   121  					ccv3.Warnings{"some-warning"},
   122  					expectedError)
   123  			})
   124  
   125  			It("returns the warnings and the error", func() {
   126  				Expect(warnings).To(ConsistOf("some-warning"))
   127  				Expect(executeErr).To(MatchError(expectedError))
   128  			})
   129  		})
   130  	})
   131  
   132  	When("the org does not exist", func() {
   133  		BeforeEach(func() {
   134  			fakeCloudControllerClient.GetOrganizationsReturns(
   135  				[]ccv3.Organization{},
   136  				ccv3.Warnings{"some-warning"},
   137  				nil,
   138  			)
   139  		})
   140  
   141  		It("returns an OrganizationNotFoundError and the warnings", func() {
   142  			_, warnings, err := actor.GetOrganizationByName("some-org-name")
   143  			Expect(warnings).To(ConsistOf("some-warning"))
   144  			Expect(err).To(MatchError(actionerror.OrganizationNotFoundError{Name: "some-org-name"}))
   145  		})
   146  	})
   147  })