"fmt" "github.com/cloudfoundry/cli/cf/api/applications/applicationsfakes" "github.com/cloudfoundry/cli/plugin/models" . "github.com/cloudfoundry/cli/testhelpers/matchers" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("service command", func() { var ( ui *testterm.FakeUI deps commandregistry.Dependency flagContext flags.FlagContext reqFactory *requirementsfakes.FakeFactory loginRequirement requirements.Requirement targetedSpaceRequirement requirements.Requirement serviceInstanceRequirement *requirementsfakes.FakeServiceInstanceRequirement pluginCall bool cmd *service.ShowService ) BeforeEach(func() { ui = &testterm.FakeUI{} pluginCall = false appRepo := new(applicationsfakes.FakeRepository) appRepo.GetAppStub = func(appGUID string) (models.Application, error) { if appGUID == "app1-guid" { return models.Application{ ApplicationFields: models.ApplicationFields{
testconfig "github.com/cloudfoundry/cli/testhelpers/configuration" testterm "github.com/cloudfoundry/cli/testhelpers/terminal" . "github.com/cloudfoundry/cli/testhelpers/matchers" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("UpdateUserProvidedService", func() { var ( ui *testterm.FakeUI configRepo coreconfig.Repository serviceInstanceRepo *apifakes.FakeUserProvidedServiceInstanceRepository cmd commandregistry.Command deps commandregistry.Dependency factory *requirementsfakes.FakeFactory flagContext flags.FlagContext loginRequirement requirements.Requirement minAPIVersionRequirement requirements.Requirement serviceInstanceRequirement *requirementsfakes.FakeServiceInstanceRequirement ) BeforeEach(func() { ui = &testterm.FakeUI{} configRepo = testconfig.NewRepositoryWithDefaults() serviceInstanceRepo = new(apifakes.FakeUserProvidedServiceInstanceRepository) repoLocator := deps.RepoLocator.SetUserProvidedServiceInstanceRepository(serviceInstanceRepo) deps = commandregistry.Dependency{ UI: ui,
commandregistry.Commands.SetCommand(commandregistry.Commands.FindCommand("create-service-key").SetDependency(deps, pluginCall)) } BeforeEach(func() { ui = &testterm.FakeUI{} config = testconfig.NewRepositoryWithDefaults() serviceRepo = &apifakes.FakeServiceRepository{} serviceInstance := models.ServiceInstance{} serviceInstance.GUID = "fake-instance-guid" serviceInstance.Name = "fake-service-instance" serviceRepo.FindInstanceByNameReturns(serviceInstance, nil) serviceKeyRepo = apifakes.NewFakeServiceKeyRepo() requirementsFactory = new(requirementsfakes.FakeFactory) requirementsFactory.NewLoginRequirementReturns(requirements.Passing{}) requirementsFactory.NewTargetedSpaceRequirementReturns(requirements.Passing{}) serviceInstanceReq := new(requirementsfakes.FakeServiceInstanceRequirement) requirementsFactory.NewServiceInstanceRequirementReturns(serviceInstanceReq) serviceInstanceReq.GetServiceInstanceReturns(serviceInstance) }) var callCreateService = func(args []string) bool { return testcmd.RunCLICommand("create-service-key", args, requirementsFactory, updateCommandDependency, false, ui) } Describe("requirements", func() { It("fails when not logged in", func() { requirementsFactory.NewLoginRequirementReturns(requirements.Failing{Message: "not logged in"}) Expect(callCreateService([]string{"fake-service-instance", "fake-service-key"})).To(BeFalse()) }) It("requires two arguments to run", func() {
ApplicationFields: models.ApplicationFields{ Name: "my-app", GUID: "my-app-guid", }, } serviceInstance = models.ServiceInstance{ ServiceInstanceFields: models.ServiceInstanceFields{ Name: "my-service", GUID: "my-service-guid", }, } applicationReq := new(requirementsfakes.FakeApplicationRequirement) applicationReq.GetApplicationReturns(app) requirementsFactory.NewApplicationRequirementReturns(applicationReq) serviceInstanceReq := new(requirementsfakes.FakeServiceInstanceRequirement) serviceInstanceReq.GetServiceInstanceReturns(serviceInstance) requirementsFactory.NewServiceInstanceRequirementReturns(serviceInstanceReq) }) It("binds a service instance to an app", func() { callBindService([]string{"my-app", "my-service"}) Expect(ui.Outputs()).To(ContainSubstrings( []string{"Binding service", "my-service", "my-app", "my-org", "my-space", "my-user"}, []string{"OK"}, []string{"TIP", "my-app"}, )) Expect(serviceBindingRepo.CreateCallCount()).To(Equal(1)) serviceInstanceGUID, applicationGUID, _ := serviceBindingRepo.CreateArgsForCall(0)