github.com/nimakaviani/cli@v6.37.1-0.20180619223813-e734901a73fa+incompatible/actor/v3action/organization_test.go (about) 1 package v3action_test 2 3 import ( 4 "errors" 5 6 "code.cloudfoundry.org/cli/actor/actionerror" 7 . "code.cloudfoundry.org/cli/actor/v3action" 8 "code.cloudfoundry.org/cli/actor/v3action/v3actionfakes" 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 *v3actionfakes.FakeCloudControllerClient 19 ) 20 21 BeforeEach(func() { 22 fakeCloudControllerClient = new(v3actionfakes.FakeCloudControllerClient) 23 actor = NewActor(fakeCloudControllerClient, nil, nil, nil) 24 }) 25 26 Describe("GetOrganizationByName", func() { 27 Context("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(Equal(Warnings{"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 Context("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 Context("when the org does not exist", func() { 77 BeforeEach(func() { 78 fakeCloudControllerClient.GetOrganizationsReturns( 79 []ccv3.Organization{}, 80 ccv3.Warnings{"some-warning"}, 81 nil, 82 ) 83 }) 84 85 It("returns an OrganizationNotFoundError and the warnings", func() { 86 _, warnings, err := actor.GetOrganizationByName("some-org-name") 87 Expect(warnings).To(ConsistOf("some-warning")) 88 Expect(err).To(MatchError(actionerror.OrganizationNotFoundError{Name: "some-org-name"})) 89 }) 90 }) 91 })