}) }) Context("when creating the route fails", func() { BeforeEach(func() { routeRepo.CreateInSpaceReturns(models.Route{}, errors.New("create-error")) err := flagContext.Parse("space-name", "domain-name", "--port", "9090", "--hostname", "hostname", "--path", "/path") Expect(err).NotTo(HaveOccurred()) }) It("attempts to find the route", func() { Expect(err).To(HaveOccurred()) Expect(routeRepo.FindCallCount()).To(Equal(1)) host, domain, path, port := routeRepo.FindArgsForCall(0) Expect(host).To(Equal("hostname")) Expect(domain.Name).To(Equal("domain-name")) Expect(path).To(Equal("/path")) Expect(port).To(Equal(9090)) }) Context("when finding the route fails", func() { BeforeEach(func() { routeRepo.FindReturns(models.Route{}, errors.New("find-error")) }) It("fails with the original error", func() { Expect(err).To(HaveOccurred()) Expect(err.Error()).To(Equal("create-error")) })
BeforeEach(func() { err := flagContext.Parse("domain-name", "service-instance") Expect(err).NotTo(HaveOccurred()) cmd.Requirements(factory, flagContext) ui.Inputs = []string{"n"} }) JustBeforeEach(func() { runCLIErr = cmd.Execute(flagContext) }) It("tries to find the route", func() { Expect(runCLIErr).NotTo(HaveOccurred()) Expect(routeRepo.FindCallCount()).To(Equal(1)) host, domain, path, port := routeRepo.FindArgsForCall(0) Expect(host).To(Equal("")) Expect(domain).To(Equal(fakeDomain)) Expect(path).To(Equal("")) Expect(port).To(Equal(0)) }) Context("when given a hostname", func() { BeforeEach(func() { flagContext = flags.NewFlagContext(cmd.MetaData().Flags) err := flagContext.Parse("domain-name", "service-instance", "-n", "the-hostname") Expect(err).NotTo(HaveOccurred()) ui.Inputs = []string{"n"} }) It("tries to find the route with the given hostname", func() {
GUID: "route-guid", Domain: httpDomain, Path: "path", }, nil, ) fakeRouteRepository.BindReturns(nil) }) It("creates and binds the route", func() { Expect(findAndBindRouteErr).NotTo(HaveOccurred()) actualDomainName := fakeDomainRepository.FindSharedByNameArgsForCall(1) Expect(actualDomainName).To(Equal("domain.com")) actualHost, actualDomain, actualPath, actualPort := fakeRouteRepository.FindArgsForCall(0) Expect(actualHost).To(Equal("host")) Expect(actualDomain).To(Equal(httpDomain)) Expect(actualPath).To(Equal("")) Expect(actualPort).To(Equal(0)) actualHost, actualDomain, actualPath, actualPort, actualUseRandomPort := fakeRouteRepository.CreateArgsForCall(0) Expect(actualHost).To(Equal("host")) Expect(actualDomain).To(Equal(httpDomain)) Expect(actualPath).To(Equal("")) Expect(actualPort).To(Equal(0)) Expect(actualUseRandomPort).To(BeFalse()) routeGUID, appGUID := fakeRouteRepository.BindArgsForCall(0) Expect(routeGUID).To(Equal("route-guid")) Expect(appGUID).To(Equal("app-guid"))