Expect(fakeRouteRepository.BindCallCount()).To(Equal(0)) }) }) Context("when the app does not have a route", func() { It("binds the route", func() { err := routeActor.BindRoute(expectedApp, expectedRoute) Expect(err).To(BeNil()) 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")) }) })