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() { Expect(callCreateService([]string{})).To(BeFalse()) Expect(callCreateService([]string{"fake-arg-one"})).To(BeFalse())
}, }, ServicePlan: models.ServicePlanFields{ GUID: "plan-guid", Name: "plan-name", }, ServiceOffering: models.ServiceOfferingFields{ Label: "mysql", DocumentationURL: "http://documentation.url", Description: "the-description", }, } }) JustBeforeEach(func() { serviceInstanceRequirement.GetServiceInstanceReturns(serviceInstance) cmd.SetDependency(deps, pluginCall) cmd.Requirements(reqFactory, flagContext) cmd.Execute(flagContext) }) Context("when invoked by a plugin", func() { var ( pluginModel *plugin_models.GetService_Model ) BeforeEach(func() { pluginModel = &plugin_models.GetService_Model{} deps.PluginModels.Service = pluginModel pluginCall = true err := flagContext.Parse("service1")
}) }) }) Describe("Execute", func() { BeforeEach(func() { err := flagContext.Parse("service-instance") Expect(err).NotTo(HaveOccurred()) cmd.Requirements(factory, flagContext) }) Context("when the service instance is not user-provided", func() { BeforeEach(func() { serviceInstanceRequirement.GetServiceInstanceReturns(models.ServiceInstance{ ServicePlan: models.ServicePlanFields{ GUID: "service-plan-guid", }, }) }) It("fails with error", func() { Expect(func() { cmd.Execute(flagContext) }).To(Panic()) Expect(ui.Outputs).To(ContainSubstrings( []string{"FAILED"}, []string{"Service Instance is not user provided"}, )) }) }) Context("when the service instance is user-provided", func() { var serviceInstance models.ServiceInstance