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