. "github.com/nttlabs/cli/testhelpers/matchers" ) var _ = Describe("ApiEndpointRequirement", func() { var ( ui *testterm.FakeUI config core_config.Repository ) BeforeEach(func() { ui = new(testterm.FakeUI) config = testconfig.NewRepository() }) It("succeeds when given a config with an API endpoint", func() { config.SetApiEndpoint("api.example.com") req := NewApiEndpointRequirement(ui, config) success := req.Execute() Expect(success).To(BeTrue()) }) It("fails when given a config without an API endpoint", func() { req := NewApiEndpointRequirement(ui, config) success := req.Execute() Expect(success).To(BeFalse()) Expect(ui.Outputs).To(ContainSubstrings([]string{"No API endpoint"})) }) })
Describe("List routes", func() { It("lists routes in the current space", func() { ts, handler = testnet.NewServer([]testnet.TestRequest{ testapi.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "GET", Path: "/v2/spaces/the-space-guid/routes?inline-relations-depth=1", Response: firstPageRoutesResponse, }), testapi.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "GET", Path: "/v2/spaces/the-space-guid/routes?inline-relations-depth=1&page=2", Response: secondPageRoutesResponse, }), }) configRepo.SetApiEndpoint(ts.URL) routes := []models.Route{} apiErr := repo.ListRoutes(func(route models.Route) bool { routes = append(routes, route) return true }) Expect(len(routes)).To(Equal(2)) Expect(routes[0].Guid).To(Equal("route-1-guid")) Expect(routes[1].Guid).To(Equal("route-2-guid")) Expect(handler).To(HaveAllRequestsCalled()) Expect(apiErr).NotTo(HaveOccurred()) }) It("finds a route by host and domain", func() {
buildpack models.Buildpack testServer *httptest.Server testServerHandler *testnet.TestHandler ) BeforeEach(func() { configRepo = testconfig.NewRepositoryWithDefaults() gateway := net.NewCloudControllerGateway(configRepo, time.Now, &testterm.FakeUI{}) pwd, _ := os.Getwd() buildpacksDir = filepath.Join(pwd, "../../fixtures/buildpacks") repo = NewCloudControllerBuildpackBitsRepository(configRepo, gateway, app_files.ApplicationZipper{}) buildpack = models.Buildpack{Name: "my-cool-buildpack", Guid: "my-cool-buildpack-guid"} testServer, testServerHandler = testnet.NewServer([]testnet.TestRequest{uploadBuildpackRequest()}) configRepo.SetApiEndpoint(testServer.URL) }) AfterEach(func() { testServer.Close() }) Describe("#UploadBuildpack", func() { It("fails to upload a buildpack with an invalid directory", func() { apiErr := repo.UploadBuildpack(buildpack, "/foo/bar") Expect(apiErr).NotTo(BeNil()) Expect(apiErr.Error()).To(ContainSubstring("Error opening buildpack file")) }) It("uploads a valid buildpack directory", func() { buildpackPath := filepath.Join(buildpacksDir, "example-buildpack")