github.com/franc20/ayesa_sap@v7.0.0-beta.28.0.20200124003224-302d4d52fa6c+incompatible/actor/v7action/organization_summary_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/clock" 10 11 . "github.com/onsi/ginkgo" 12 . "github.com/onsi/gomega" 13 ) 14 15 var _ = Describe("Organization Summary Actions", func() { 16 var ( 17 actor *Actor 18 fakeCloudControllerClient *v7actionfakes.FakeCloudControllerClient 19 orgSummary OrganizationSummary 20 warnings Warnings 21 err error 22 expectedErr error 23 ) 24 25 BeforeEach(func() { 26 fakeCloudControllerClient = new(v7actionfakes.FakeCloudControllerClient) 27 actor = NewActor(fakeCloudControllerClient, nil, nil, nil, clock.NewClock()) 28 }) 29 30 JustBeforeEach(func() { 31 orgSummary, warnings, err = actor.GetOrganizationSummaryByName("some-org") 32 }) 33 34 Describe("GetOrganizationSummaryByName", func() { 35 When("no errors are encountered", func() { 36 BeforeEach(func() { 37 fakeCloudControllerClient.GetOrganizationsReturns( 38 []ccv3.Organization{ 39 { 40 GUID: "some-org-guid", 41 Name: "some-org", 42 }, 43 }, 44 ccv3.Warnings{"get-org-warning-1", "get-org-warning-2"}, 45 nil) 46 47 fakeCloudControllerClient.GetOrganizationDomainsReturns( 48 []ccv3.Domain{ 49 { 50 GUID: "shared-domain-guid-2", 51 Name: "shared-domain-2", 52 }, 53 { 54 GUID: "shared-domain-guid-1", 55 Name: "shared-domain-1", 56 }, 57 }, 58 ccv3.Warnings{"domain-warning-1", "domain-warning-2"}, 59 nil) 60 61 fakeCloudControllerClient.GetSpacesReturns( 62 []ccv3.Space{ 63 { 64 GUID: "space-2-guid", 65 Name: "space-2", 66 }, 67 { 68 GUID: "space-1-guid", 69 Name: "space-1", 70 }, 71 }, 72 ccv3.Warnings{"space-warning-1", "space-warning-2"}, 73 nil) 74 75 fakeCloudControllerClient.GetOrganizationDefaultIsolationSegmentReturns( 76 ccv3.Relationship{ 77 GUID: "default-iso-seg-guid", 78 }, 79 ccv3.Warnings{"iso-seg-warning-1", "iso-seg-warning-2"}, 80 nil) 81 }) 82 83 It("returns the organization summary and all warnings", func() { 84 Expect(fakeCloudControllerClient.GetOrganizationsCallCount()).To(Equal(1)) 85 Expect(fakeCloudControllerClient.GetOrganizationsArgsForCall(0)[0].Values).To(ConsistOf("some-org")) 86 Expect(fakeCloudControllerClient.GetOrganizationDomainsCallCount()).To(Equal(1)) 87 orgGuid, labelSelector := fakeCloudControllerClient.GetOrganizationDomainsArgsForCall(0) 88 Expect(orgGuid).To(Equal("some-org-guid")) 89 Expect(labelSelector).To(Equal([]ccv3.Query{})) 90 Expect(fakeCloudControllerClient.GetSpacesCallCount()).To(Equal(1)) 91 Expect(fakeCloudControllerClient.GetSpacesArgsForCall(0)[0].Values).To(ConsistOf("some-org-guid")) 92 93 Expect(orgSummary).To(Equal(OrganizationSummary{ 94 Organization: Organization{ 95 Name: "some-org", 96 GUID: "some-org-guid", 97 }, 98 DomainNames: []string{"shared-domain-1", "shared-domain-2"}, 99 SpaceNames: []string{"space-1", "space-2"}, 100 DefaultIsolationSegmentGUID: "default-iso-seg-guid", 101 })) 102 Expect(warnings).To(ConsistOf( 103 "get-org-warning-1", 104 "get-org-warning-2", 105 "domain-warning-1", 106 "domain-warning-2", 107 "space-warning-1", 108 "space-warning-2", 109 "iso-seg-warning-1", 110 "iso-seg-warning-2", 111 )) 112 Expect(err).NotTo(HaveOccurred()) 113 }) 114 }) 115 116 When("an error is encountered getting the organization", func() { 117 BeforeEach(func() { 118 expectedErr = errors.New("get-orgs-error") 119 fakeCloudControllerClient.GetOrganizationsReturns( 120 []ccv3.Organization{}, 121 ccv3.Warnings{ 122 "get-org-warning-1", 123 "get-org-warning-2", 124 }, 125 expectedErr, 126 ) 127 }) 128 129 It("returns the error and all warnings", func() { 130 Expect(err).To(MatchError(expectedErr)) 131 Expect(warnings).To(ConsistOf("get-org-warning-1", "get-org-warning-2")) 132 }) 133 }) 134 135 When("the organization exists", func() { 136 BeforeEach(func() { 137 fakeCloudControllerClient.GetOrganizationsReturns( 138 []ccv3.Organization{ 139 {GUID: "some-org-guid"}, 140 }, 141 ccv3.Warnings{ 142 "get-org-warning-1", 143 "get-org-warning-2", 144 }, 145 nil, 146 ) 147 }) 148 149 When("an error is encountered getting the organization domains", func() { 150 BeforeEach(func() { 151 expectedErr = errors.New("domains error") 152 fakeCloudControllerClient.GetOrganizationDomainsReturns([]ccv3.Domain{}, ccv3.Warnings{"domains warning"}, expectedErr) 153 }) 154 155 It("returns that error and all warnings", func() { 156 Expect(err).To(MatchError(expectedErr)) 157 Expect(warnings).To(ConsistOf("get-org-warning-1", "get-org-warning-2", "domains warning")) 158 }) 159 }) 160 161 When("an error is encountered getting the organization spaces", func() { 162 BeforeEach(func() { 163 expectedErr = errors.New("cc-get-spaces-error") 164 fakeCloudControllerClient.GetSpacesReturns( 165 []ccv3.Space{}, 166 ccv3.Warnings{"spaces warning"}, 167 expectedErr, 168 ) 169 }) 170 171 It("returns the error and all warnings", func() { 172 Expect(err).To(MatchError(expectedErr)) 173 Expect(warnings).To(ConsistOf("get-org-warning-1", "get-org-warning-2", "spaces warning")) 174 }) 175 }) 176 }) 177 }) 178 })