示例#1
0
						expectedRoute.TTL,
						expectedRoute.RouteServiceUrl,
					)))
			}
		})

		Context("when the routing api returns an error", func() {
			Context("error is not unauthorized error", func() {
				It("returns an error", func() {
					client.RoutesReturns(nil, errors.New("Oops!"))

					err := fetcher.FetchRoutes()
					Expect(err).To(HaveOccurred())
					Expect(err.Error()).To(Equal("Oops!"))
					Expect(tokenFetcher.FetchTokenCallCount()).To(Equal(1))
					Expect(tokenFetcher.FetchTokenArgsForCall(0)).To(BeTrue())
				})
			})

			Context("error is unauthorized error", func() {
				It("returns an error", func() {
					client.RoutesReturns(nil, errors.New("unauthorized"))

					err := fetcher.FetchRoutes()
					Expect(tokenFetcher.FetchTokenCallCount()).To(Equal(2))
					Expect(tokenFetcher.FetchTokenArgsForCall(0)).To(BeTrue())
					Expect(tokenFetcher.FetchTokenArgsForCall(1)).To(BeFalse())
					Expect(client.RoutesCallCount()).To(Equal(2))
					Expect(err).To(HaveOccurred())
					Expect(err.Error()).To(Equal("unauthorized"))
				})