func (builder Builder) attachPlansToService(service models.ServiceOffering) (models.ServiceOffering, error) { plans, err := builder.planBuilder.GetPlansForService(service.Guid) if err != nil { return models.ServiceOffering{}, err } service.Plans = plans return service, nil }
func (resource ServiceOfferingResource) ToModel() models.ServiceOffering { offering := models.ServiceOffering{ ServiceOfferingFields: resource.ToFields(), } for _, p := range resource.Entity.ServicePlans { offering.Plans = append(offering.Plans, models.ServicePlanFields{ Name: p.Entity.Name, Guid: p.Metadata.Guid, }, ) } return offering }
config = testconfig.NewRepositoryWithDefaults() requirementsFactory = new(requirementsfakes.FakeFactory) requirementsFactory.NewLoginRequirementReturns(requirements.Passing{}) requirementsFactory.NewTargetedSpaceRequirementReturns(requirements.Passing{}) requirementsFactory.NewMinAPIVersionRequirementReturns(requirements.Passing{Type: "minAPIVersionReq"}) serviceRepo = new(apifakes.FakeServiceRepository) planBuilder = new(planbuilderfakes.FakePlanBuilder) offering1 = models.ServiceOffering{} offering1.Label = "cleardb" offering1.Plans = []models.ServicePlanFields{{ Name: "spark", GUID: "cleardb-spark-guid", }, { Name: "flare", GUID: "cleardb-flare-guid", }, } }) var callUpdateService = func(args []string) bool { return testcmd.RunCLICommand("update-service", args, requirementsFactory, updateCommandDependency, false, ui) } Describe("requirements", func() { It("passes when logged in and a space is targeted", func() { Expect(callUpdateService([]string{"cleardb"})).To(BeTrue()) })
offering1 models.ServiceOffering offering2 models.ServiceOffering ) BeforeEach(func() { ui = &testterm.FakeUI{} config = testconfig.NewRepositoryWithDefaults() requirementsFactory = &testreq.FakeReqFactory{LoginSuccess: true, TargetedSpaceSuccess: true} serviceRepo = &testapi.FakeServiceRepo{} cmd = NewCreateService(ui, config, serviceRepo) offering1 = models.ServiceOffering{} offering1.Label = "cleardb" offering1.Plans = []models.ServicePlanFields{{ Name: "spark", Guid: "cleardb-spark-guid", }} offering2 = models.ServiceOffering{} offering2.Label = "postgres" serviceRepo.FindServiceOfferingsForSpaceByLabelReturns.ServiceOfferings = []models.ServiceOffering{offering1, offering2} }) var callCreateService = func(args []string) { testcmd.RunCommand(cmd, args, requirementsFactory) } Describe("requirements", func() { It("passes when logged in and a space is targeted", func() { callCreateService([]string{"cleardb", "spark", "my-cleardb-service"})
BeforeEach(func() { ui = &testterm.FakeUI{} config = testconfig.NewRepositoryWithDefaults() requirementsFactory = new(requirementsfakes.FakeFactory) requirementsFactory.NewLoginRequirementReturns(requirements.Passing{}) requirementsFactory.NewTargetedSpaceRequirementReturns(requirements.Passing{}) serviceRepo = new(apifakes.FakeServiceRepository) serviceBuilder = new(servicebuilderfakes.FakeServiceBuilder) offering1 = models.ServiceOffering{} offering1.Label = "cleardb" offering1.Plans = []models.ServicePlanFields{{ Name: "spark", GUID: "cleardb-spark-guid", Free: true, }, { Name: "expensive", GUID: "luxury-guid", Free: false, }} offering2 = models.ServiceOffering{} offering2.Label = "postgres" serviceBuilder.GetServicesByNameForSpaceWithPlansReturns(models.ServiceOfferings([]models.ServiceOffering{offering1, offering2}), nil) }) var callCreateService = func(args []string) bool { return testcmd.RunCLICommand("create-service", args, requirementsFactory, updateCommandDependency, false, ui) }