github.com/nimakaviani/cli@v6.37.1-0.20180619223813-e734901a73fa+incompatible/actor/pushaction/domain_test.go (about) 1 package pushaction_test 2 3 import ( 4 "errors" 5 6 "code.cloudfoundry.org/cli/actor/actionerror" 7 . "code.cloudfoundry.org/cli/actor/pushaction" 8 "code.cloudfoundry.org/cli/actor/pushaction/pushactionfakes" 9 "code.cloudfoundry.org/cli/actor/v2action" 10 11 . "github.com/onsi/ginkgo" 12 . "github.com/onsi/gomega" 13 ) 14 15 var _ = Describe("Domains", func() { 16 var ( 17 actor *Actor 18 fakeV2Actor *pushactionfakes.FakeV2Actor 19 ) 20 21 BeforeEach(func() { 22 fakeV2Actor = new(pushactionfakes.FakeV2Actor) 23 actor = NewActor(fakeV2Actor, nil, nil) 24 }) 25 26 Describe("DefaultDomain", func() { 27 var ( 28 orgGUID string 29 defaultDomain v2action.Domain 30 warnings Warnings 31 executeErr error 32 ) 33 34 BeforeEach(func() { 35 orgGUID = "some-org-guid" 36 }) 37 38 JustBeforeEach(func() { 39 defaultDomain, warnings, executeErr = actor.DefaultDomain(orgGUID) 40 }) 41 42 Context("when retrieving the domains is successful", func() { 43 BeforeEach(func() { 44 fakeV2Actor.GetOrganizationDomainsReturns([]v2action.Domain{ 45 { 46 Name: "private-domain.com", 47 GUID: "some-private-domain-guid", 48 }, 49 { 50 Name: "private-domain-2.com", 51 GUID: "some-private-domain-guid-2", 52 }, 53 { 54 Name: "shared-domain.com", 55 GUID: "some-shared-domain-guid", 56 }, 57 }, 58 v2action.Warnings{"private-domain-warnings", "shared-domain-warnings"}, 59 nil, 60 ) 61 }) 62 63 It("returns the first domain and warnings", func() { 64 Expect(executeErr).ToNot(HaveOccurred()) 65 Expect(warnings).To(ConsistOf("private-domain-warnings", "shared-domain-warnings")) 66 Expect(defaultDomain).To(Equal(v2action.Domain{ 67 Name: "private-domain.com", 68 GUID: "some-private-domain-guid", 69 })) 70 71 Expect(fakeV2Actor.GetOrganizationDomainsCallCount()).To(Equal(1)) 72 Expect(fakeV2Actor.GetOrganizationDomainsArgsForCall(0)).To(Equal(orgGUID)) 73 }) 74 }) 75 76 Context("no domains exist", func() { 77 BeforeEach(func() { 78 fakeV2Actor.GetOrganizationDomainsReturns([]v2action.Domain{}, v2action.Warnings{"private-domain-warnings", "shared-domain-warnings"}, nil) 79 }) 80 81 It("returns the first shared domain and warnings", func() { 82 Expect(executeErr).To(MatchError(actionerror.NoDomainsFoundError{OrganizationGUID: orgGUID})) 83 Expect(warnings).To(ConsistOf("private-domain-warnings", "shared-domain-warnings")) 84 }) 85 }) 86 87 Context("when retrieving the domains errors", func() { 88 var expectedErr error 89 90 BeforeEach(func() { 91 expectedErr = errors.New("whoops") 92 fakeV2Actor.GetOrganizationDomainsReturns([]v2action.Domain{}, v2action.Warnings{"private-domain-warnings", "shared-domain-warnings"}, expectedErr) 93 }) 94 95 It("returns errors and warnings", func() { 96 Expect(executeErr).To(MatchError(expectedErr)) 97 Expect(warnings).To(ConsistOf("private-domain-warnings", "shared-domain-warnings")) 98 }) 99 }) 100 }) 101 })