actor.FilterBrokersReturns([]models.ServiceBroker{ serviceBroker1, serviceBroker2, }, nil, ) }) It("refreshes the auth token", func() { runCommand() Expect(authRepo.RefreshAuthTokenCallCount()).To(Equal(1)) }) Context("when refreshing the auth token fails", func() { It("fails and returns the error", func() { authRepo.RefreshAuthTokenReturns("", errors.New("Refreshing went wrong")) runCommand() Expect(ui.Outputs).To(ContainSubstrings( []string{"Refreshing went wrong"}, []string{"FAILED"}, )) }) }) Context("When no flags are provided", func() { It("tells the user it is obtaining the service access", func() { runCommand() Expect(ui.Outputs).To(ContainSubstrings( []string{"Getting service access as", "my-user"}, ))
return testcmd.RunCliCommand("oauth-token", []string{}, requirementsFactory, updateCommandDependency, false) } Describe("requirements", func() { It("fails when the user is not logged in", func() { Expect(runCommand()).ToNot(HavePassedRequirements()) }) }) Describe("when logged in", func() { BeforeEach(func() { requirementsFactory.LoginSuccess = true }) It("fails if oauth refresh fails", func() { authRepo.RefreshAuthTokenReturns("", errors.New("Could not refresh")) runCommand() Expect(ui.Outputs).To(ContainSubstrings( []string{"FAILED"}, []string{"Could not refresh"}, )) }) It("returns to the user the oauth token after a refresh", func() { authRepo.RefreshAuthTokenReturns("1234567890", nil) runCommand() Expect(ui.Outputs).To(ContainSubstrings( []string{"1234567890"}, ))
}) }) Describe("when logged in", func() { BeforeEach(func() { requirementsFactory.LoginSuccess = true }) It("refreshes the auth token", func() { runCommand([]string{"service"}) Expect(tokenRefresher.RefreshAuthTokenCallCount()).To(Equal(1)) }) Context("when refreshing the auth token fails", func() { It("fails and returns the error", func() { tokenRefresher.RefreshAuthTokenReturns("", errors.New("Refreshing went wrong")) runCommand([]string{"service"}) Expect(ui.Outputs).To(ContainSubstrings( []string{"Refreshing went wrong"}, []string{"FAILED"}, )) }) }) Context("when the named service exists", func() { It("tells the user if all plans were already private", func() { actor.UpdateAllPlansForServiceReturns(true, nil) Expect(runCommand([]string{"service"})).To(BeTrue()) Expect(ui.Outputs).To(ContainSubstrings(
Describe("Passing requirements", func() { BeforeEach(func() { requirementsFactory.LoginSuccess = true requirementsFactory.TargetedSpaceSuccess = true }) Context("refreshing the auth token", func() { It("makes a call for the app token", func() { runCommand("source-app", "target-app") Expect(authRepo.RefreshAuthTokenCallCount()).To(Equal(1)) }) Context("when refreshing the auth token fails", func() { BeforeEach(func() { authRepo.RefreshAuthTokenReturns("", errors.New("I accidentally the UAA")) }) It("it displays an error", func() { runCommand("source-app", "target-app") Expect(ui.Outputs).To(ContainSubstrings( []string{"FAILED"}, []string{"accidentally the UAA"}, )) }) }) Describe("when retrieving the app token succeeds", func() { var ( sourceApp, targetApp models.Application )
pingCli(rpcService.Port()) }) It("refreshes the token", func() { client, err = rpc.Dial("tcp", "127.0.0.1:"+rpcService.Port()) Expect(err).ToNot(HaveOccurred()) var result string err = client.Call("CliRpcCmd.AccessToken", "", &result) Expect(err).ToNot(HaveOccurred()) Expect(authRepo.RefreshAuthTokenCallCount()).To(Equal(1)) }) It("returns the access token", func() { authRepo.RefreshAuthTokenReturns("fake-access-token", nil) client, err = rpc.Dial("tcp", "127.0.0.1:"+rpcService.Port()) Expect(err).ToNot(HaveOccurred()) var result string err = client.Call("CliRpcCmd.AccessToken", "", &result) Expect(err).ToNot(HaveOccurred()) Expect(result).To(Equal("fake-access-token")) }) It("returns the error from refreshing the access token", func() { authRepo.RefreshAuthTokenReturns("", errors.New("refresh error")) client, err = rpc.Dial("tcp", "127.0.0.1:"+rpcService.Port()) Expect(err).ToNot(HaveOccurred())
Expect(endpointRepo.UpdateEndpointArgsForCall(0)).To(Equal("fake-api-endpoint")) }) Context("when updating the endpoint succeeds", func() { BeforeEach(func() { endpointRepo.UpdateEndpointReturns("updated-endpoint", nil) }) It("tries to refresh the auth token", func() { cmd.Execute(flagContext) Expect(authRepo.RefreshAuthTokenCallCount()).To(Equal(1)) }) Context("when refreshing the token fails with an error", func() { BeforeEach(func() { authRepo.RefreshAuthTokenReturns("", errors.New("auth-error")) }) It("fails with error", func() { Expect(func() { cmd.Execute(flagContext) }).To(Panic()) Expect(ui.Outputs).To(ContainSubstrings( []string{"FAILED"}, []string{"Error refreshing oauth token"}, )) }) }) Context("when refreshing the token succeeds", func() { BeforeEach(func() { authRepo.RefreshAuthTokenReturns("auth-token", nil) })