Domain: models.DomainFields{Name: "mydomain1.com"}, }, { GUID: "my-route-guid-2", Domain: models.DomainFields{Name: "mydomain2.com"}, }, }, } }) Context("when unbinding does not work", func() { var expectedError error BeforeEach(func() { expectedError = errors.New("ZOHMYGOD DUN BROKE") fakeRouteRepository.UnbindReturns(expectedError) }) It("returns the error immediately", func() { err := routeActor.UnbindAll(app) Expect(err).To(Equal(expectedError)) Expect(fakeRouteRepository.UnbindCallCount()).To(Equal(1)) }) }) Context("when unbinding works", func() { It("unbinds the route for the app", func() { err := routeActor.UnbindAll(app) Expect(err).NotTo(HaveOccurred())
}, } routeRepo.FindReturns(route, nil) }) It("tries to unbind the route from the app", func() { Expect(err).NotTo(HaveOccurred()) 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("returns an error", func() { Expect(err).To(HaveOccurred()) Expect(err.Error()).To(Equal("unbind-err")) }) }) Context("when unbinding the route from the app succeeds", func() { BeforeEach(func() { routeRepo.UnbindReturns(nil) }) It("tells the user it succeeded", func() { Expect(err).NotTo(HaveOccurred())