github.com/orange-cloudfoundry/cli@v7.1.0+incompatible/command/v7/share_private_domain_command_test.go (about) 1 package v7_test 2 3 import ( 4 "errors" 5 6 "code.cloudfoundry.org/cli/actor/actionerror" 7 "code.cloudfoundry.org/cli/actor/v7action" 8 "code.cloudfoundry.org/cli/command/commandfakes" 9 "code.cloudfoundry.org/cli/command/flag" 10 . "code.cloudfoundry.org/cli/command/v7" 11 "code.cloudfoundry.org/cli/command/v7/v7fakes" 12 "code.cloudfoundry.org/cli/util/configv3" 13 14 "code.cloudfoundry.org/cli/util/ui" 15 16 . "github.com/onsi/ginkgo" 17 . "github.com/onsi/gomega" 18 . "github.com/onsi/gomega/gbytes" 19 ) 20 21 var _ = Describe("share-private-domain command", func() { 22 var ( 23 cmd SharePrivateDomainCommand 24 DomainName = "some-domain-name" 25 OrgName = "some-org-name" 26 fakeActor *v7fakes.FakeActor 27 fakeConfig *commandfakes.FakeConfig 28 fakeSharedActor *commandfakes.FakeSharedActor 29 testUI *ui.UI 30 binaryName string 31 32 executeErr error 33 ) 34 35 BeforeEach(func() { 36 testUI = ui.NewTestUI(nil, NewBuffer(), NewBuffer()) 37 fakeActor = new(v7fakes.FakeActor) 38 fakeConfig = new(commandfakes.FakeConfig) 39 fakeSharedActor = new(commandfakes.FakeSharedActor) 40 cmd = SharePrivateDomainCommand{ 41 BaseCommand: BaseCommand{ 42 Actor: fakeActor, 43 UI: testUI, 44 Config: fakeConfig, 45 SharedActor: fakeSharedActor, 46 }, 47 } 48 cmd.RequiredArgs = flag.OrgDomain{ 49 Organization: OrgName, 50 Domain: DomainName, 51 } 52 binaryName = "faceman" 53 fakeConfig.BinaryNameReturns(binaryName) 54 55 }) 56 57 JustBeforeEach(func() { 58 executeErr = cmd.Execute(nil) 59 }) 60 61 When("the user is not logged in", func() { 62 BeforeEach(func() { 63 fakeSharedActor.CheckTargetReturns(actionerror.NotLoggedInError{}) 64 }) 65 66 It("checks target and returns the error", func() { 67 Expect(fakeSharedActor.CheckTargetCallCount()).To(Equal(1)) 68 checkedOrg, checkedSpace := fakeSharedActor.CheckTargetArgsForCall(0) 69 Expect(checkedOrg).To(Equal(false)) 70 Expect(checkedSpace).To(Equal(false)) 71 72 Expect(executeErr).To(MatchError(actionerror.NotLoggedInError{})) 73 }) 74 }) 75 76 When("getting the current user fails", func() { 77 BeforeEach(func() { 78 fakeConfig.CurrentUserReturns(configv3.User{}, errors.New("current-user-error")) 79 }) 80 81 It("returns an error", func() { 82 Expect(fakeSharedActor.CheckTargetCallCount()).To(Equal(1)) 83 checkedOrg, checkedSpace := fakeSharedActor.CheckTargetArgsForCall(0) 84 Expect(checkedOrg).To(Equal(false)) 85 Expect(checkedSpace).To(Equal(false)) 86 87 Expect(executeErr).To(MatchError(errors.New("current-user-error"))) 88 }) 89 }) 90 91 When("the environment is setup correctly", func() { 92 BeforeEach(func() { 93 fakeConfig.CurrentUserReturns(configv3.User{Name: "the-user"}, nil) 94 }) 95 96 It("should print text indicating it is sharing a domain", func() { 97 Expect(executeErr).NotTo(HaveOccurred()) 98 Expect(testUI.Out).To(Say(`Sharing domain %s with org %s as the-user\.\.\.`, DomainName, OrgName)) 99 }) 100 101 When("sharing the domain errors", func() { 102 BeforeEach(func() { 103 fakeActor.SharePrivateDomainReturns(v7action.Warnings{"warnings-1", "warnings-2"}, errors.New("err-share-domain")) 104 }) 105 106 It("returns an error and displays warnings", func() { 107 Expect(executeErr).To(MatchError("err-share-domain")) 108 Expect(testUI.Err).To(Say("warnings-1")) 109 Expect(testUI.Err).To(Say("warnings-2")) 110 }) 111 }) 112 113 When("sharing the domain is successful", func() { 114 BeforeEach(func() { 115 fakeActor.SharePrivateDomainReturns(v7action.Warnings{"warnings-1", "warnings-2"}, nil) 116 }) 117 118 It("prints all warnings and OK", func() { 119 Expect(executeErr).ToNot(HaveOccurred()) 120 Expect(testUI.Err).To(Say("warnings-1")) 121 Expect(testUI.Err).To(Say("warnings-2")) 122 Expect(testUI.Out).To(Say("OK")) 123 }) 124 125 It("shares the domain", func() { 126 Expect(fakeActor.SharePrivateDomainCallCount()).To(Equal(1)) 127 expectedDomainName, expectedOrgName := fakeActor.SharePrivateDomainArgsForCall(0) 128 Expect(expectedDomainName).To(Equal(DomainName)) 129 Expect(expectedOrgName).To(Equal(OrgName)) 130 }) 131 }) 132 }) 133 134 })