github.com/sleungcy/cli@v7.1.0+incompatible/actor/v2action/shared_domain_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/ccv2" 9 10 . "github.com/onsi/ginkgo" 11 . "github.com/onsi/gomega" 12 ) 13 14 var _ = Describe("Shared Domain Actions", func() { 15 var ( 16 actor *Actor 17 fakeCloudControllerClient *v2actionfakes.FakeCloudControllerClient 18 executeErr error 19 domainName string 20 routerGroup RouterGroup 21 warnings Warnings 22 isInternal bool 23 ) 24 25 BeforeEach(func() { 26 isInternal = false 27 fakeCloudControllerClient = new(v2actionfakes.FakeCloudControllerClient) 28 actor = NewActor(fakeCloudControllerClient, nil, nil) 29 }) 30 31 Describe("CreateSharedDomain", func() { 32 BeforeEach(func() { 33 domainName = "some-domain-name" 34 routerGroup = RouterGroup{ 35 GUID: "some-guid", 36 } 37 }) 38 39 JustBeforeEach(func() { 40 warnings, executeErr = actor.CreateSharedDomain(domainName, routerGroup, isInternal) 41 }) 42 43 It("should call the appropriate method on the client", func() { 44 Expect(fakeCloudControllerClient.CreateSharedDomainCallCount()).To(Equal(1)) 45 domain, routerGrouId, internal := fakeCloudControllerClient.CreateSharedDomainArgsForCall(0) 46 Expect(domain).To(Equal(domainName)) 47 Expect(routerGrouId).To(Equal(routerGroup.GUID)) 48 Expect(internal).To(BeFalse()) 49 }) 50 51 When("the call fails", func() { 52 var expectedError error 53 BeforeEach(func() { 54 expectedError = errors.New("something terrible has happened") 55 fakeCloudControllerClient.CreateSharedDomainReturns( 56 ccv2.Warnings{"some warning", "another warning"}, 57 expectedError, 58 ) 59 }) 60 It("should return the appropriate error", func() { 61 Expect(executeErr).To(MatchError(expectedError)) 62 }) 63 64 It("should return all warnings", func() { 65 Expect(warnings).To(ConsistOf("some warning", "another warning")) 66 }) 67 }) 68 69 When("the call succeeeds", func() { 70 BeforeEach(func() { 71 fakeCloudControllerClient.CreateSharedDomainReturns( 72 ccv2.Warnings{"some warning", "another warning"}, 73 nil, 74 ) 75 }) 76 77 When("the internal flag is passed", func() { 78 BeforeEach(func() { 79 isInternal = true 80 }) 81 It("passes the internal flag", func() { 82 Expect(fakeCloudControllerClient.CreateSharedDomainCallCount()).To(Equal(1)) 83 domain, routerGrouId, isInternal := fakeCloudControllerClient.CreateSharedDomainArgsForCall(0) 84 Expect(domain).To(Equal(domainName)) 85 Expect(routerGrouId).To(Equal(routerGroup.GUID)) 86 Expect(isInternal).To(BeTrue()) 87 }) 88 }) 89 90 It("returns the all warnings and no error", func() { 91 Expect(executeErr).ToNot(HaveOccurred()) 92 Expect(warnings).To(ConsistOf("some warning", "another warning")) 93 }) 94 }) 95 }) 96 })