func listRoutes(c *cli.Context) { issues := checkFlags(c) issues = append(issues, checkArguments(c, "list")...) if len(issues) > 0 { printHelpForCommand(c, issues, "list") } client := routing_api.NewClient(c.String("api")) config := buildOauthConfig(c) fetcher := token_fetcher.NewTokenFetcher(&config) routes, err := commands.List(client, fetcher) if err != nil { fmt.Println("listing routes failed:", err) os.Exit(3) } prettyRoutes, _ := json.Marshal(routes) fmt.Printf("%v\n", string(prettyRoutes)) }
) 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")) }) })