Expect(err).To(HaveOccurred()) Expect(err.Error()).To(Equal("Oops!")) Expect(uaaClient.FetchTokenCallCount()).To(Equal(1)) Expect(uaaClient.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(uaaClient.FetchTokenCallCount()).To(Equal(2)) Expect(uaaClient.FetchTokenArgsForCall(0)).To(BeTrue()) Expect(uaaClient.FetchTokenArgsForCall(1)).To(BeFalse()) Expect(client.RoutesCallCount()).To(Equal(2)) Expect(err).To(HaveOccurred()) Expect(err.Error()).To(Equal("unauthorized")) }) }) }) Context("When the token fetcher returns an error", func() { BeforeEach(func() { uaaClient.FetchTokenReturns(nil, errors.New("token fetcher error")) }) It("returns an error", func() { currentTokenFetchErrors := sender.GetCounter(TokenFetchErrors) err := fetcher.FetchRoutes() Expect(err).To(HaveOccurred())
) BeforeEach(func() { client = &fake_routing_api.FakeClient{} tokenFetcher = &fake_token_fetcher.FakeTokenFetcher{} tokenFetcher.FetchTokenReturns(&token_fetcher.Token{AccessToken: "token"}, nil) route = db.Route{ Route: "post_here", Port: 7000, IP: "1.2.3.4", TTL: 50, LogGuid: "my-guid", } routes = append(routes, route) error := errors.New("this is an error") client.RoutesReturns(routes, error) }) It("lists routes", func() { routesList, _ := commands.List(client, tokenFetcher) Expect(client.RoutesCallCount()).To(Equal(1)) Expect(routesList).To(Equal(routes)) }) It("fetches a token and sets it on the client", func() { commands.List(client, tokenFetcher) Expect(client.SetTokenCallCount()).To(Equal(1)) Expect(client.SetTokenArgsForCall(0)).To(Equal("token")) }) })