BeforeEach(func() { fakeRouteCreator, ok := fakeCreateRouteCmd.(*routefakes.OldFakeRouteCreator) Expect(ok).To(BeTrue()) fakeRouteCreator.CreateRouteReturns(models.Route{GUID: "fake-route-guid"}, nil) }) It("tells the user that it is adding the route", func() { Expect(err).ToNot(HaveOccurred()) 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 the app has the route", func() { BeforeEach(func() { routeSummary := models.RouteSummary{ GUID: expectedRoute.GUID, } expectedApp.Routes = append(expectedApp.Routes, routeSummary) }) It("does nothing", func() { err := routeActor.BindRoute(expectedApp, expectedRoute) Expect(err).To(BeNil()) 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))