Expect(ui.Outputs()).To(ContainSubstrings( []string{"Adding route", "to app", "in org"}, )) }) It("tries to bind the route", func() { Expect(err).ToNot(HaveOccurred()) Expect(routeRepo.BindCallCount()).To(Equal(1)) routeGUID, appGUID := routeRepo.BindArgsForCall(0) Expect(routeGUID).To(Equal("fake-route-guid")) Expect(appGUID).To(Equal("fake-app-guid")) }) Context("when binding the route succeeds", func() { BeforeEach(func() { routeRepo.BindReturns(nil) }) It("tells the user that it succeeded", func() { Expect(err).ToNot(HaveOccurred()) Expect(ui.Outputs()).To(ContainSubstrings( []string{"OK"}, )) }) }) Context("when binding the route fails", func() { BeforeEach(func() { routeRepo.BindReturns(errors.New("bind-error")) })
Expect(fakeRouteRepository.BindCallCount()).To(Equal(1)) routeGUID, appGUID := fakeRouteRepository.BindArgsForCall(0) Expect(routeGUID).To(Equal(expectedRoute.GUID)) Expect(appGUID).To(Equal(expectedApp.ApplicationFields.GUID)) Expect(fakeUI.SayArgsForCall(0)).To(MatchRegexp("Binding .* to .*app-name")) Expect(fakeUI.OkCallCount()).To(Equal(1)) }) Context("when the route is already in use", func() { var expectedErr *errorsfakes.FakeHTTPError BeforeEach(func() { expectedErr = new(errorsfakes.FakeHTTPError) expectedErr.ErrorCodeReturns(cferrors.InvalidRelation) fakeRouteRepository.BindReturns(expectedErr) }) It("outputs the error", func() { err := routeActor.BindRoute(expectedApp, expectedRoute) Expect(err.Error()).To(MatchRegexp("The route *. is already in use")) }) }) }) }) Describe("UnbindAll", func() { var app models.Application BeforeEach(func() { app = models.Application{ ApplicationFields: models.ApplicationFields{