Example #1
0
					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"))
	})
})