github.com/ablease/cli@v6.37.1-0.20180613014814-3adbb7d7fb19+incompatible/actor/v2action/space_quota_test.go (about) 1 package v2action_test 2 3 import ( 4 "errors" 5 6 "code.cloudfoundry.org/cli/actor/actionerror" 7 . "code.cloudfoundry.org/cli/actor/v2action" 8 "code.cloudfoundry.org/cli/actor/v2action/v2actionfakes" 9 "code.cloudfoundry.org/cli/api/cloudcontroller/ccerror" 10 "code.cloudfoundry.org/cli/api/cloudcontroller/ccv2" 11 . "github.com/onsi/ginkgo" 12 . "github.com/onsi/gomega" 13 ) 14 15 var _ = Describe("SpaceQuota Actions", func() { 16 var ( 17 actor *Actor 18 fakeCloudControllerClient *v2actionfakes.FakeCloudControllerClient 19 ) 20 21 BeforeEach(func() { 22 fakeCloudControllerClient = new(v2actionfakes.FakeCloudControllerClient) 23 actor = NewActor(fakeCloudControllerClient, nil, nil) 24 }) 25 26 Describe("GetSpaceQuota", func() { 27 Context("when the space quota exists", func() { 28 BeforeEach(func() { 29 fakeCloudControllerClient.GetSpaceQuotaDefinitionReturns( 30 ccv2.SpaceQuota{ 31 GUID: "some-space-quota-guid", 32 Name: "some-space-quota", 33 }, 34 ccv2.Warnings{"warning-1"}, 35 nil, 36 ) 37 }) 38 39 It("returns the space quota and warnings", func() { 40 spaceQuota, warnings, err := actor.GetSpaceQuota("some-space-quota-guid") 41 Expect(err).ToNot(HaveOccurred()) 42 Expect(spaceQuota).To(Equal(SpaceQuota{ 43 GUID: "some-space-quota-guid", 44 Name: "some-space-quota", 45 })) 46 Expect(warnings).To(ConsistOf("warning-1")) 47 48 Expect(fakeCloudControllerClient.GetSpaceQuotaDefinitionCallCount()).To(Equal(1)) 49 Expect(fakeCloudControllerClient.GetSpaceQuotaDefinitionArgsForCall(0)).To(Equal( 50 "some-space-quota-guid")) 51 }) 52 }) 53 54 Context("when the space quota does not exist", func() { 55 BeforeEach(func() { 56 fakeCloudControllerClient.GetSpaceQuotaDefinitionReturns(ccv2.SpaceQuota{}, nil, ccerror.ResourceNotFoundError{}) 57 }) 58 59 It("returns an SpaceQuotaNotFoundError", func() { 60 _, _, err := actor.GetSpaceQuota("some-space-quota-guid") 61 Expect(err).To(MatchError(actionerror.SpaceQuotaNotFoundError{GUID: "some-space-quota-guid"})) 62 }) 63 }) 64 65 Context("when the cloud controller client returns an error", func() { 66 var expectedErr error 67 68 BeforeEach(func() { 69 expectedErr = errors.New("some space quota error") 70 fakeCloudControllerClient.GetSpaceQuotaDefinitionReturns(ccv2.SpaceQuota{}, ccv2.Warnings{"warning-1", "warning-2"}, expectedErr) 71 }) 72 73 It("returns the error and warnings", func() { 74 _, warnings, err := actor.GetSpaceQuota("some-space-quota-guid") 75 Expect(err).To(MatchError(expectedErr)) 76 Expect(warnings).To(ConsistOf("warning-1", "warning-2")) 77 }) 78 }) 79 }) 80 })