func (cmd *Curl) Run(c *cli.Context) { path := c.Args()[0] method := c.String("X") headers := c.StringSlice("H") body := c.String("d") verbose := c.Bool("v") reqHeader := strings.Join(headers, "\n") if verbose { trace.EnableTrace() } respHeader, respBody, apiResponse := cmd.curlRepo.Request(method, path, reqHeader, body) if apiResponse.IsNotSuccessful() { cmd.ui.Failed("Error creating request:\n%s", apiResponse.Message) return } if verbose { return } if c.Bool("i") { cmd.ui.Say("%s", respHeader) } cmd.ui.Say("%s", respBody) return }
config := testconfig.NewRepository() manifestRepo := &testmanifest.FakeManifestRepository{} repoLocator := api.NewRepositoryLocator(config, map[string]net.Gateway{ "auth": net.NewUAAGateway(), "cloud-controller": net.NewCloudControllerGateway(), "uaa": net.NewUAAGateway(), }) cmdFactory := commands.NewFactory(ui, config, manifestRepo, repoLocator) cmdRunner := &FakeRunner{cmdFactory: cmdFactory} for _, cmdName := range expectedCommandNames { output := bytes.NewBuffer(make([]byte, 1024)) trace.SetStdout(output) trace.EnableTrace() app, err := NewApp(cmdRunner) Expect(err).NotTo(HaveOccurred()) Expect(output.String()).To(ContainSubstring("VERSION:\n" + cf.Version)) app.Run([]string{"", cmdName}) Expect(cmdRunner.cmdName).To(Equal(cmdName)) } }) }) type FakeRunner struct { cmdFactory commands.Factory cmdName string