github.com/franc20/ayesa_sap@v7.0.0-beta.28.0.20200124003224-302d4d52fa6c+incompatible/actor/v7action/organization_quota_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 . "github.com/onsi/ginkgo" 11 . "github.com/onsi/gomega" 12 ) 13 14 var _ = Describe("Organization Quota Actions", func() { 15 var ( 16 actor *Actor 17 fakeCloudControllerClient *v7actionfakes.FakeCloudControllerClient 18 ) 19 20 BeforeEach(func() { 21 actor, fakeCloudControllerClient, _, _, _, _ = NewTestActor() 22 }) 23 24 Describe("GetOrganizationQuotas", func() { 25 var ( 26 quotas []OrganizationQuota 27 warnings Warnings 28 executeErr error 29 ) 30 31 JustBeforeEach(func() { 32 quotas, warnings, executeErr = actor.GetOrganizationQuotas() 33 }) 34 35 When("getting organization quotas", func() { 36 BeforeEach(func() { 37 fakeCloudControllerClient.GetOrganizationQuotasReturns( 38 []ccv3.OrgQuota{ 39 ccv3.OrgQuota{ 40 GUID: "quota-guid", 41 Name: "kiwi", 42 }, 43 ccv3.OrgQuota{ 44 GUID: "quota-2-guid", 45 Name: "strawberry", 46 }, 47 }, 48 ccv3.Warnings{"some-quota-warning"}, 49 nil, 50 ) 51 }) 52 53 It("queries the API and returns organization quotas", func() { 54 Expect(executeErr).ToNot(HaveOccurred()) 55 56 Expect(fakeCloudControllerClient.GetOrganizationQuotasCallCount()).To(Equal(1)) 57 58 Expect(quotas).To(ConsistOf( 59 OrganizationQuota{ 60 GUID: "quota-guid", 61 Name: "kiwi", 62 }, 63 OrganizationQuota{ 64 GUID: "quota-2-guid", 65 Name: "strawberry", 66 }, 67 )) 68 Expect(warnings).To(ConsistOf("some-quota-warning")) 69 }) 70 }) 71 }) 72 73 Describe("GetOrganizationQuotaByName", func() { 74 var ( 75 quotaName string 76 quota OrganizationQuota 77 warnings Warnings 78 executeErr error 79 ) 80 81 BeforeEach(func() { 82 quotaName = "quota-name" 83 }) 84 85 JustBeforeEach(func() { 86 quota, warnings, executeErr = actor.GetOrganizationQuotaByName(quotaName) 87 }) 88 89 When("when the API layer call returns an error", func() { 90 BeforeEach(func() { 91 fakeCloudControllerClient.GetOrganizationQuotasReturns( 92 []ccv3.OrgQuota{}, 93 ccv3.Warnings{"some-quota-warning"}, 94 errors.New("list-error"), 95 ) 96 }) 97 98 It("returns the error and prints warnings", func() { 99 Expect(fakeCloudControllerClient.GetOrganizationQuotasCallCount()).To(Equal(1)) 100 101 Expect(warnings).To(ConsistOf("some-quota-warning")) 102 Expect(executeErr).To(MatchError("list-error")) 103 Expect(quota).To(Equal(OrganizationQuota{})) 104 }) 105 }) 106 107 When("when the org quota could not be found", func() { 108 BeforeEach(func() { 109 fakeCloudControllerClient.GetOrganizationQuotasReturns( 110 []ccv3.OrgQuota{}, 111 ccv3.Warnings{"some-quota-warning"}, 112 nil, 113 ) 114 }) 115 116 It("returns the error and prints warnings", func() { 117 Expect(fakeCloudControllerClient.GetOrganizationQuotasCallCount()).To(Equal(1)) 118 119 Expect(warnings).To(ConsistOf("some-quota-warning")) 120 Expect(executeErr).To(MatchError(actionerror.OrganizationQuotaNotFoundForNameError{Name: quotaName})) 121 Expect(quota).To(Equal(OrganizationQuota{})) 122 }) 123 }) 124 125 When("getting a single quota by name", func() { 126 BeforeEach(func() { 127 fakeCloudControllerClient.GetOrganizationQuotasReturns( 128 []ccv3.OrgQuota{ 129 ccv3.OrgQuota{ 130 GUID: "quota-guid", 131 Name: quotaName, 132 }, 133 }, 134 ccv3.Warnings{"some-quota-warning"}, 135 nil, 136 ) 137 }) 138 139 It("queries the API and returns the matching organization quota", func() { 140 Expect(executeErr).ToNot(HaveOccurred()) 141 142 Expect(fakeCloudControllerClient.GetOrganizationQuotasCallCount()).To(Equal(1)) 143 query := fakeCloudControllerClient.GetOrganizationQuotasArgsForCall(0) 144 Expect(query).To(ConsistOf( 145 ccv3.Query{Key: ccv3.NameFilter, Values: []string{quotaName}}, 146 )) 147 148 Expect(warnings).To(ConsistOf("some-quota-warning")) 149 Expect(quota).To(Equal(OrganizationQuota{GUID: "quota-guid", Name: quotaName})) 150 }) 151 }) 152 }) 153 })