github.com/arunkumar7540/cli@v6.45.0+incompatible/command/v7/create_service_broker_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 "code.cloudfoundry.org/cli/util/ui" 14 . "github.com/onsi/ginkgo" 15 . "github.com/onsi/gomega" 16 . "github.com/onsi/gomega/gbytes" 17 ) 18 19 var _ = Describe("create-service-broker Command", func() { 20 var ( 21 cmd *v7.CreateServiceBrokerCommand 22 testUI *ui.UI 23 fakeConfig *commandfakes.FakeConfig 24 fakeSharedActor *commandfakes.FakeSharedActor 25 fakeActor *v7fakes.FakeCreateServiceBrokerActor 26 input *Buffer 27 binaryName string 28 executeErr error 29 30 args = flag.ServiceBrokerArgs{ 31 ServiceBroker: "service-broker-name", 32 Username: "username", 33 Password: "password", 34 URL: "https://example.org/super-broker", 35 } 36 ) 37 38 BeforeEach(func() { 39 input = NewBuffer() 40 testUI = ui.NewTestUI(input, NewBuffer(), NewBuffer()) 41 fakeConfig = new(commandfakes.FakeConfig) 42 fakeSharedActor = new(commandfakes.FakeSharedActor) 43 fakeActor = new(v7fakes.FakeCreateServiceBrokerActor) 44 fakeActor.CreateServiceBrokerReturns(v7action.Warnings{"some default warning"}, nil) 45 46 binaryName = "faceman" 47 fakeConfig.BinaryNameReturns(binaryName) 48 49 cmd = &v7.CreateServiceBrokerCommand{ 50 UI: testUI, 51 Config: fakeConfig, 52 SharedActor: fakeSharedActor, 53 Actor: fakeActor, 54 55 RequiredArgs: args, 56 } 57 }) 58 59 JustBeforeEach(func() { 60 executeErr = cmd.Execute(nil) 61 }) 62 63 When("checking target fails", func() { 64 BeforeEach(func() { 65 fakeSharedActor.CheckTargetReturns(actionerror.NoOrganizationTargetedError{BinaryName: binaryName}) 66 }) 67 68 It("returns an error", func() { 69 Expect(executeErr).To(MatchError(actionerror.NoOrganizationTargetedError{BinaryName: binaryName})) 70 71 Expect(fakeSharedActor.CheckTargetCallCount()).To(Equal(1)) 72 checkTargetedOrg, checkTargetedSpace := fakeSharedActor.CheckTargetArgsForCall(0) 73 Expect(checkTargetedOrg).To(BeFalse()) 74 Expect(checkTargetedSpace).To(BeFalse()) 75 }) 76 }) 77 78 When("the user is not logged in", func() { 79 var expectedErr error 80 81 BeforeEach(func() { 82 expectedErr = errors.New("some current user error") 83 fakeConfig.CurrentUserReturns(configv3.User{}, expectedErr) 84 }) 85 86 It("return an error", func() { 87 Expect(executeErr).To(Equal(expectedErr)) 88 }) 89 }) 90 91 When("the user is logged in", func() { 92 BeforeEach(func() { 93 fakeConfig.CurrentUserReturns(configv3.User{Name: "steve"}, nil) 94 }) 95 96 It("displays a message with the username", func() { 97 Expect(testUI.Out).To(Say("Creating service broker %s as %s...", args.ServiceBroker, "steve")) 98 }) 99 100 It("calls the CreateServiceBrokerActor", func() { 101 Expect(fakeActor.CreateServiceBrokerCallCount()).To(Equal(1)) 102 credentials := fakeActor.CreateServiceBrokerArgsForCall(0) 103 Expect(credentials).To(Equal(v7action.ServiceBrokerCredentials{ 104 Name: args.ServiceBroker, 105 URL: args.URL, 106 Username: args.Username, 107 Password: args.Password, 108 SpaceGUID: "", 109 })) 110 }) 111 112 It("displays the warnings", func() { 113 Expect(testUI.Err).To(Say("some default warning")) 114 }) 115 116 It("displays OK", func() { 117 Expect(testUI.Out).To(Say("OK")) 118 }) 119 120 When("calling the CreateServiceBrokerActor returns an error", func() { 121 BeforeEach(func() { 122 fakeActor.CreateServiceBrokerReturns(v7action.Warnings{"service-broker-warnings"}, errors.New("fake create-service-broker error")) 123 }) 124 125 It("prints the error and warnings", func() { 126 Expect(testUI.Out).NotTo(Say("OK")) 127 Expect(executeErr).To(MatchError("fake create-service-broker error")) 128 Expect(testUI.Err).To(Say("service-broker-warnings")) 129 }) 130 }) 131 }) 132 })