Expect(requirementsFactory.DomainName).To(Equal("my-domain.com")) }) It("unmaps the route", func() { runCommand("-n", "my-host", "my-app", "my-domain.com") Expect(ui.Outputs).To(ContainSubstrings( []string{"Removing route", "foo.example.com", "my-app", "my-org", "my-space", "my-user"}, []string{"OK"}, )) Expect(ui.WarnOutputs).ToNot(ContainSubstrings( []string{"Route to be unmapped is not currently mapped to the application."}, )) Expect(routeRepo.UnbindCallCount()).To(Equal(1)) unboundRouteGUID, unboundAppGUID := routeRepo.UnbindArgsForCall(0) Expect(unboundRouteGUID).To(Equal("my-route-guid")) Expect(unboundAppGUID).To(Equal("my-app-guid")) }) Context("when the route does not exist for the app", func() { BeforeEach(func() { requirementsFactory.Application = models.Application{ ApplicationFields: models.ApplicationFields{ Guid: "not-my-app-guid", Name: "my-app", }, Routes: []models.RouteSummary{ models.RouteSummary{ Guid: "my-route-guid", },
Context("when the returned route has an app with the requested app's guid", func() { BeforeEach(func() { route := models.Route{ Guid: "route-guid", Apps: []models.ApplicationFields{ {Guid: "fake-app-guid"}, }, } routeRepo.FindReturns(route, nil) }) It("tries to unbind the route from the app", func() { cmd.Execute(flagContext) Expect(routeRepo.UnbindCallCount()).To(Equal(1)) routeGUID, appGUID := routeRepo.UnbindArgsForCall(0) Expect(routeGUID).To(Equal("route-guid")) Expect(appGUID).To(Equal("fake-app-guid")) }) Context("when unbinding the route from the app fails", func() { BeforeEach(func() { routeRepo.UnbindReturns(errors.New("unbind-err")) }) It("panics and prints a failure message", func() { Expect(func() { cmd.Execute(flagContext) }).To(Panic()) Expect(ui.Outputs).To(BeInDisplayOrder( []string{"FAILED"}, []string{"unbind-err"}, ))