func TestUpdateBuildpack(t *testing.T) { req := testapi.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "PUT", Path: "/v2/buildpacks/my-cool-buildpack-guid", Matcher: testnet.RequestBodyMatcher(`{"name":"my-cool-buildpack","position":555,"enabled":false}`), Response: testnet.TestResponse{ Status: http.StatusCreated, Body: `{ "metadata": { "guid": "my-cool-buildpack-guid" }, "entity": { "name": "my-cool-buildpack", "position":555, "enabled":false } }`}, }) ts, handler, repo := createBuildpackRepo(t, req) defer ts.Close() position := 555 enabled := false buildpack := cf.Buildpack{} buildpack.Name = "my-cool-buildpack" buildpack.Guid = "my-cool-buildpack-guid" buildpack.Position = &position buildpack.Enabled = &enabled updated, apiResponse := repo.Update(buildpack) assert.True(t, handler.AllRequestsCalled()) assert.False(t, apiResponse.IsNotSuccessful()) assert.Equal(t, buildpack, updated) }
func TestBuildpacksListBuildpacks(t *testing.T) { firstRequest := testapi.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "GET", Path: "/v2/buildpacks", Response: testnet.TestResponse{ Status: http.StatusOK, Body: `{ "next_url": "/v2/buildpacks?page=2", "resources": [ { "metadata": { "guid": "buildpack1-guid" }, "entity": { "name": "Buildpack1", "position" : 1 } } ] }`}, }) secondRequest := testapi.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "GET", Path: "/v2/buildpacks?page=2", Response: testnet.TestResponse{ Status: http.StatusOK, Body: `{ "resources": [ { "metadata": { "guid": "buildpack2-guid" }, "entity": { "name": "Buildpack2", "position" : 2 } } ] }`}, }) ts, handler, repo := createBuildpackRepo(t, firstRequest, secondRequest) defer ts.Close() stopChan := make(chan bool) defer close(stopChan) buildpacksChan, statusChan := repo.ListBuildpacks(stopChan) one := 1 buildpack := cf.Buildpack{} buildpack.Guid = "buildpack1-guid" buildpack.Name = "Buildpack1" buildpack.Position = &one two := 2 buildpack2 := cf.Buildpack{} buildpack2.Guid = "buildpack2-guid" buildpack2.Name = "Buildpack2" buildpack2.Position = &two expectedBuildpacks := []cf.Buildpack{buildpack, buildpack2} buildpacks := []cf.Buildpack{} for chunk := range buildpacksChan { buildpacks = append(buildpacks, chunk...) } apiResponse := <-statusChan assert.Equal(t, buildpacks, expectedBuildpacks) assert.True(t, handler.AllRequestsCalled()) assert.True(t, apiResponse.IsSuccessful()) }