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