var ( ui *testterm.FakeUI config core_config.Repository cmd *ServiceKeys requirementsFactory *testreq.FakeReqFactory serviceRepo *testapi.FakeServiceRepo serviceKeyRepo *testapi.FakeServiceKeyRepo ) BeforeEach(func() { ui = &testterm.FakeUI{} config = testconfig.NewRepositoryWithDefaults() serviceRepo = &testapi.FakeServiceRepo{} serviceInstance := models.ServiceInstance{} serviceInstance.Guid = "fake-instance-guid" serviceRepo.FindInstanceByNameMap = generic.NewMap() serviceRepo.FindInstanceByNameMap.Set("fake-service-instance", serviceInstance) serviceKeyRepo = testapi.NewFakeServiceKeyRepo() cmd = NewListServiceKeys(ui, config, serviceRepo, serviceKeyRepo) requirementsFactory = &testreq.FakeReqFactory{LoginSuccess: true, TargetedSpaceSuccess: true, ServiceInstanceNotFound: false} requirementsFactory.ServiceInstance = serviceInstance }) var callListServiceKeys = func(args []string) bool { return testcmd.RunCommand(cmd, args, requirementsFactory) } Describe("requirements", func() { It("fails when not logged in", func() { requirementsFactory = &testreq.FakeReqFactory{LoginSuccess: false} Expect(callListServiceKeys([]string{"fake-service-instance", "fake-service-key"})).To(BeFalse())
)) 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)) Expect(serviceBinder.AppsToBind[0].Name).To(Equal("app1"))