[]string{"Binding", "example.com"}, )) Expect(ui.Outputs).ToNot(ContainSubstrings([]string{"existing-app.example.com"})) Expect(routeRepo.FindByHostAndDomainCalledWith.Domain.Name).To(Equal("example.com")) Expect(routeRepo.FindByHostAndDomainCalledWith.Host).To(Equal("")) Expect(routeRepo.CreatedHost).To(Equal("")) Expect(routeRepo.CreatedDomainGuid).To(Equal("domain-guid")) }) }) }) Describe("service instances", func() { BeforeEach(func() { serviceRepo.FindInstanceByNameMap = generic.NewMap(map[interface{}]interface{}{ "global-service": maker.NewServiceInstance("global-service"), "app1-service": maker.NewServiceInstance("app1-service"), "app2-service": maker.NewServiceInstance("app2-service"), }) manifestRepo.ReadManifestReturns.Manifest = manifestWithServicesAndEnv() }) Context("when the service is not bound", func() { BeforeEach(func() { appRepo.ReadReturns.Error = errors.NewModelNotFoundError("App", "the-app") }) It("binds service instances to the app", func() { callPush() Expect(len(serviceBinder.AppsToBind)).To(Equal(4))
err := repo.PurgeServiceOffering(offering) Expect(err).NotTo(HaveOccurred()) Expect(testHandler).To(HaveAllRequestsCalled()) }) }) Describe("PurgeServiceInstance", func() { It("purges service instances", func() { setupTestServer(testnet.TestRequest{ Method: "DELETE", Path: "/v2/service_instances/instance-guid?purge=true", Response: testnet.TestResponse{ Status: 204, }}) instance := maker.NewServiceInstance("schrodinger") instance.Guid = "instance-guid" err := repo.PurgeServiceInstance(instance) Expect(err).NotTo(HaveOccurred()) Expect(testHandler).To(HaveAllRequestsCalled()) }) }) Describe("getting the count of service instances for a service plan", func() { var planGuid = "abc123" It("returns the number of service instances", func() { setupTestServer(testapi.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "GET", Path: fmt.Sprintf("/v2/service_plans/%s/service_instances?results-per-page=1", planGuid),
[]string{"Binding", "example.com"}, )) Expect(ui.Outputs).ToNot(ContainSubstrings([]string{"existing-app.example.com"})) Expect(routeRepo.FindByHostAndDomainCalledWith.Domain.Name).To(Equal("example.com")) Expect(routeRepo.FindByHostAndDomainCalledWith.Host).To(Equal("")) Expect(routeRepo.CreatedHost).To(Equal("")) Expect(routeRepo.CreatedDomainGuid).To(Equal("domain-guid")) }) }) }) Describe("service instances", func() { BeforeEach(func() { serviceRepo.FindInstanceByNameStub = func(name string) (models.ServiceInstance, error) { return maker.NewServiceInstance(name), nil } appRepo.CreateStub = func(params models.AppParams) (models.Application, error) { a := models.Application{} a.Name = *params.Name return a, nil } manifestRepo.ReadManifestReturns.Manifest = manifestWithServicesAndEnv() }) Context("when the service is not bound", func() { BeforeEach(func() { appRepo.ReadReturns(models.Application{}, errors.NewModelNotFoundError("App", "the-app"))
[]string{"Incorrect Usage", "Requires", "argument"}, )) }) }) It("exits when the user does not acknowledge the confirmation", func() { ui.Inputs = []string{"no"} runCommand([]string{"the-service-name"}) Expect(serviceRepo.FindInstanceByNameCalled).To(Equal(true)) Expect(serviceRepo.PurgeServiceInstanceCalled).To(Equal(false)) }) It("does not prompt with confirmation when -f is passed", func() { instance := maker.NewServiceInstance("the-service-name") serviceRepo.FindInstanceByNameServiceInstance = instance runCommand( []string{"-f", "the-service-name"}, ) Expect(len(ui.Prompts)).To(Equal(0)) Expect(serviceRepo.PurgedServiceInstance).To(Equal(instance)) Expect(serviceRepo.PurgeServiceInstanceCalled).To(Equal(true)) }) It("fails with an error message when finding the instance fails", func() { serviceRepo.FindInstanceByNameErr = true runCommand(