github.com/cloudfoundry/cli@v7.1.0+incompatible/actor/v7action/info_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 . "github.com/onsi/ginkgo" 10 . "github.com/onsi/gomega" 11 ) 12 13 var _ = Describe("Info Actions", func() { 14 var ( 15 actor *Actor 16 fakeCloudControllerClient *v7actionfakes.FakeCloudControllerClient 17 ) 18 19 BeforeEach(func() { 20 fakeCloudControllerClient = new(v7actionfakes.FakeCloudControllerClient) 21 actor = NewActor(fakeCloudControllerClient, nil, nil, nil, nil, nil) 22 }) 23 24 Describe("GetLogCacheEndpoint", func() { 25 When("getting info is successful", func() { 26 BeforeEach(func() { 27 fakeCloudControllerClient.GetInfoReturns( 28 ccv3.Info{ 29 Links: ccv3.InfoLinks{ 30 LogCache: ccv3.APILink{HREF: "some-log-cache-url"}, 31 }, 32 }, 33 nil, 34 ccv3.Warnings{"warning-1", "warning-2"}, 35 nil, 36 ) 37 }) 38 39 It("returns all warnings and the log cache url", func() { 40 logCacheURL, warnings, err := actor.GetLogCacheEndpoint() 41 Expect(err).ToNot(HaveOccurred()) 42 43 Expect(warnings).To(ConsistOf("warning-1", "warning-2")) 44 45 Expect(fakeCloudControllerClient.GetInfoCallCount()).To(Equal(1)) 46 Expect(logCacheURL).To(Equal("some-log-cache-url")) 47 }) 48 }) 49 50 When("the cloud controller client returns an error", func() { 51 var expectedErr error 52 53 BeforeEach(func() { 54 expectedErr = errors.New("I am a CloudControllerClient Error") 55 fakeCloudControllerClient.GetInfoReturns( 56 ccv3.Info{}, 57 nil, 58 ccv3.Warnings{"warning-1", "warning-2"}, 59 expectedErr, 60 ) 61 }) 62 63 It("returns the same error and all warnings", func() { 64 _, warnings, err := actor.GetLogCacheEndpoint() 65 Expect(err).To(MatchError(expectedErr)) 66 Expect(warnings).To(ConsistOf("warning-1", "warning-2")) 67 }) 68 69 }) 70 }) 71 })