func deleteSharedDomainReq(statusCode int) testnet.TestRequest { return apifakes.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "DELETE", Path: "/v2/shared_domains/my-domain-guid?recursive=true", Response: testnet.TestResponse{Status: statusCode}, }) }
func uploadApplicationRequest(zipCheck func(*zip.Reader)) testnet.TestRequest { return testapi.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "PUT", Path: "/v2/apps/my-cool-app-guid/bits", Matcher: uploadBodyMatcher(zipCheck), Response: testnet.TestResponse{ Status: http.StatusCreated, Body: ` { "metadata":{ "guid": "my-job-guid", "url": "/v2/jobs/my-job-guid" } } `}, }) }
func testSpacesDidNotFindByNameWithOrg(orgGUID string, findByName func(SpaceRepository, string) (models.Space, error)) { request := apifakes.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "GET", Path: fmt.Sprintf("/v2/organizations/%s/spaces?q=name%%3Aspace1", orgGUID), Response: testnet.TestResponse{ Status: http.StatusOK, Body: ` { "resources": [ ] }`, }, }) ts, handler, repo := createSpacesRepo(request) defer ts.Close() _, apiErr := findByName(repo, "Space1") Expect(handler).To(HaveAllRequestsCalled()) Expect(apiErr.(*errors.ModelNotFoundError)).NotTo(BeNil()) }
testnet "code.cloudfoundry.org/cli/testhelpers/net" . "code.cloudfoundry.org/cli/cf/api" "code.cloudfoundry.org/cli/cf/trace/tracefakes" . "code.cloudfoundry.org/cli/testhelpers/matchers" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("UserProvidedServiceRepository", func() { Context("Create()", func() { It("creates a user provided service with a name and credentials", func() { req := apifakes.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "POST", Path: "/v2/user_provided_service_instances", Matcher: testnet.RequestBodyMatcher(`{"name":"my-custom-service","credentials":{"host":"example.com","password":"******","user":"******"},"space_guid":"my-space-guid","syslog_drain_url":"","route_service_url":""}`), Response: testnet.TestResponse{Status: http.StatusCreated}, }) ts, handler, repo := createUserProvidedServiceInstanceRepo([]testnet.TestRequest{req}) defer ts.Close() apiErr := repo.Create("my-custom-service", "", "", map[string]interface{}{ "host": "example.com", "user": "******", "password": "******", }) Expect(handler).To(HaveAllRequestsCalled()) Expect(apiErr).NotTo(HaveOccurred()) })
ts, handler = testnet.NewServer(requests) config.SetAPIEndpoint(ts.URL) } It("lists buildpacks", func() { setupTestServer( apifakes.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, "filename" : "firstbp.zip" } } ] }`}}), apifakes.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "GET", Path: "/v2/buildpacks?page=2", Response: testnet.TestResponse{ Status: http.StatusOK, Body: `{
Describe("Error getting required info to run ssh", func() { var ( testServer *httptest.Server handler *testnet.TestHandler ) AfterEach(func() { testServer.Close() }) Context("error when getting SSH info from /v2/info", func() { BeforeEach(func() { getRequest := apifakes.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "GET", Path: "/v2/info", Response: testnet.TestResponse{ Status: http.StatusNotFound, Body: `{}`, }, }) testServer, handler = testnet.NewServer([]testnet.TestRequest{getRequest}) configRepo.SetAPIEndpoint(testServer.URL) ccGateway = net.NewCloudControllerGateway(configRepo, time.Now, &testterm.FakeUI{}, new(tracefakes.FakePrinter), "") deps.Gateways["cloud-controller"] = ccGateway }) It("notifies users", func() { runCommand("my-app") Expect(handler).To(HaveAllRequestsCalled()) Expect(ui.Outputs()).To(ContainSubstrings(
gateway := net.NewCloudControllerGateway(configRepo, time.Now, new(terminalfakes.FakeUI), new(tracefakes.FakePrinter), "") repo = NewCloudControllerServiceRepository(configRepo, gateway) }) AfterEach(func() { if testServer != nil { testServer.Close() } }) Describe("GetAllServiceOfferings", func() { BeforeEach(func() { setupTestServer( apifakes.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "GET", Path: "/v2/services", Response: firstOfferingsResponse, }), apifakes.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "GET", Path: "/v2/services", Response: multipleOfferingsResponse, }), ) }) It("gets all public service offerings", func() { offerings, err := repo.GetAllServiceOfferings() Expect(testHandler).To(HaveAllRequestsCalled()) Expect(err).NotTo(HaveOccurred())
gateway := net.NewCloudControllerGateway(configRepo, time.Now, new(terminalfakes.FakeUI), new(tracefakes.FakePrinter), "") repo = NewCloudControllerRouteRepository(configRepo, gateway) }) AfterEach(func() { if ts != nil { ts.Close() } }) Describe("List routes", func() { It("lists routes in the current space", func() { ts, handler = testnet.NewServer([]testnet.TestRequest{ apifakes.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "GET", Path: "/v2/spaces/the-space-guid/routes?inline-relations-depth=1", Response: firstPageRoutesResponse, }), apifakes.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 })
) var _ = Describe("Service Brokers Repo", func() { It("lists services brokers", func() { firstRequest := apifakes.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "GET", Path: "/v2/service_brokers", Response: testnet.TestResponse{ Status: http.StatusOK, Body: `{ "next_url": "/v2/service_brokers?page=2", "resources": [ { "metadata": { "guid":"found-guid-1" }, "entity": { "name": "found-name-1", "broker_url": "http://found.example.com-1", "auth_username": "******", "auth_password": "******" } } ] }`, }, }) secondRequest := apifakes.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "GET", Path: "/v2/service_brokers?page=2",
} }) AfterEach(func() { testServer.Close() }) It("uploads zip files", func() { setupTestServer(testapi.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "PUT", Path: "/v2/apps/my-cool-app-guid/bits", Matcher: uploadBodyMatcher(defaultZipCheck), Response: testnet.TestResponse{ Status: http.StatusCreated, Body: ` { "metadata":{ "guid": "my-job-guid", "url": "/v2/jobs/my-job-guid" } }`, }, }), createProgressEndpoint("running"), createProgressEndpoint("finished"), ) apiErr := repo.UploadBits("my-cool-app-guid", uploadFile, []resources.AppFileResource{file1, file2}) Expect(apiErr).NotTo(HaveOccurred()) })
. "github.com/onsi/gomega" ) var _ = Describe("AppSummaryRepository", func() { var ( testServer *httptest.Server handler *testnet.TestHandler repo AppSummaryRepository ) Describe("GetSummariesInCurrentSpace()", func() { BeforeEach(func() { getAppSummariesRequest := apifakes.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "GET", Path: "/v2/spaces/my-space-guid/summary", Response: testnet.TestResponse{ Status: http.StatusOK, Body: getAppSummariesResponseBody, }, }) testServer, handler = testnet.NewServer([]testnet.TestRequest{getAppSummariesRequest}) configRepo := testconfig.NewRepositoryWithDefaults() configRepo.SetAPIEndpoint(testServer.URL) gateway := net.NewCloudControllerGateway(configRepo, time.Now, new(terminalfakes.FakeUI), new(tracefakes.FakePrinter), "") repo = NewCloudControllerAppSummaryRepository(configRepo, gateway) }) AfterEach(func() { testServer.Close() })
"guid": "service-offering-guid", "label": "cleardb", "provider": "cleardb-provider", "version": "n/a" } } } ] }`, } }) It("gets a summary of services in the given space", func() { req := apifakes.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "GET", Path: "/v2/spaces/my-space-guid/summary", Response: serviceInstanceSummariesResponse, }) ts, handler, repo := createServiceSummaryRepo(req) defer ts.Close() serviceInstances, apiErr := repo.GetSummariesInCurrentSpace() Expect(handler).To(HaveAllRequestsCalled()) Expect(apiErr).NotTo(HaveOccurred()) Expect(1).To(Equal(len(serviceInstances))) instance1 := serviceInstances[0] Expect(instance1.Name).To(Equal("my-service-instance")) Expect(instance1.LastOperation.Type).To(Equal("create"))
Expect(servicePlansFields[0].Public).To(BeTrue()) Expect(servicePlansFields[0].Active).To(BeTrue()) Expect(servicePlansFields[1].Name).To(Equal("The small second")) Expect(servicePlansFields[1].GUID).To(Equal("the-small-second")) Expect(servicePlansFields[1].Free).To(BeTrue()) Expect(servicePlansFields[1].Public).To(BeFalse()) Expect(servicePlansFields[1].Active).To(BeFalse()) }) }) }) Describe(".Update", func() { BeforeEach(func() { setupTestServer(apifakes.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "PUT", Path: "/v2/service_plans/my-service-plan-guid", Matcher: testnet.RequestBodyMatcher(`{"public":true}`), Response: testnet.TestResponse{Status: http.StatusCreated}, })) }) It("updates public on the service to whatever is passed", func() { servicePlan := models.ServicePlanFields{ Name: "my-service-plan", GUID: "my-service-plan-guid", Description: "descriptive text", Free: true, Public: false, } err := repo.Update(servicePlan, "service-guid", true) Expect(testHandler).To(HaveAllRequestsCalled())
It("should always return back the first shared domain", func() { domain, apiErr := repo.FirstOrDefault("my-org-guid", nil) Expect(apiErr).NotTo(HaveOccurred()) Expect(domain.GUID).To(Equal("shared-domain1-guid")) }) }) It("finds a shared domain by name", func() { setupTestServer(apifakes.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "GET", Path: "/v2/domains?inline-relations-depth=1&q=name%3Adomain2.cf-app.com", Response: testnet.TestResponse{Status: http.StatusOK, Body: ` { "resources": [ { "metadata": { "guid": "domain2-guid" }, "entity": { "name": "domain2.cf-app.com" } } ] }`}, })) domain, apiErr := repo.FindSharedByName("domain2.cf-app.com") Expect(handler).To(HaveAllRequestsCalled()) Expect(apiErr).NotTo(HaveOccurred()) Expect(domain.Name).To(Equal("domain2.cf-app.com")) Expect(domain.GUID).To(Equal("domain2-guid")) Expect(domain.Shared).To(BeTrue()) })
app, apiErr := repo.Read("My App") Expect(handler).To(HaveAllRequestsCalled()) Expect(apiErr).NotTo(HaveOccurred()) Expect(app.Name).To(Equal("My App")) Expect(app.GUID).To(Equal("app1-guid")) Expect(app.Memory).To(Equal(int64(128))) Expect(app.DiskQuota).To(Equal(int64(512))) Expect(app.InstanceCount).To(Equal(1)) Expect(app.EnvironmentVars).To(Equal(map[string]interface{}{"foo": "bar", "baz": "boom"})) Expect(app.Routes[0].Host).To(Equal("app1")) Expect(app.Routes[0].Domain.Name).To(Equal("cfapps.io")) Expect(app.Stack.Name).To(Equal("awesome-stacks-ahoy")) }) It("returns a failure response when the app is not found", func() { request := apifakes.NewCloudControllerTestRequest(findAppRequest) request.Response = testnet.TestResponse{Status: http.StatusOK, Body: `{"resources": []}`} ts, handler, repo := createAppRepo([]testnet.TestRequest{request}) defer ts.Close() _, apiErr := repo.Read("My App") Expect(handler).To(HaveAllRequestsCalled()) Expect(apiErr.(*errors.ModelNotFoundError)).NotTo(BeNil()) }) }) Describe(".GetApp", func() { It("returns an application using the given app guid", func() { request := apifakes.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "GET",
testSpacesDidNotFindByNameWithOrg("another-org-guid", func(repo SpaceRepository, spaceName string) (models.Space, error) { return repo.FindByNameInOrg(spaceName, "another-org-guid") }, ) }) }) It("creates spaces without a space-quota", func() { request := apifakes.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "POST", Path: "/v2/spaces", Matcher: testnet.RequestBodyMatcher(`{"name":"space-name","organization_guid":"my-org-guid"}`), Response: testnet.TestResponse{Status: http.StatusCreated, Body: ` { "metadata": { "guid": "space-guid" }, "entity": { "name": "space-name" } }`}, }) ts, handler, repo := createSpacesRepo(request) defer ts.Close() space, apiErr := repo.Create("space-name", "my-org-guid", "") Expect(handler).To(HaveAllRequestsCalled()) Expect(apiErr).NotTo(HaveOccurred()) Expect(space.GUID).To(Equal("space-guid")) Expect(space.SpaceQuotaGUID).To(Equal(""))
func testSpacesFindByNameWithOrg(orgGUID string, findByName func(SpaceRepository, string) (models.Space, error)) { findSpaceByNameResponse := testnet.TestResponse{ Status: http.StatusOK, Body: ` { "resources": [ { "metadata": { "guid": "space1-guid" }, "entity": { "name": "Space1", "organization_guid": "org1-guid", "organization": { "metadata": { "guid": "org1-guid" }, "entity": { "name": "Org1" } }, "apps": [ { "metadata": { "guid": "app1-guid" }, "entity": { "name": "app1" } }, { "metadata": { "guid": "app2-guid" }, "entity": { "name": "app2" } } ], "domains": [ { "metadata": { "guid": "domain1-guid" }, "entity": { "name": "domain1" } } ], "service_instances": [ { "metadata": { "guid": "service1-guid" }, "entity": { "name": "service1" } } ] } } ] }`} request := apifakes.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "GET", Path: fmt.Sprintf("/v2/organizations/%s/spaces?q=name%%3Aspace1", orgGUID), Response: findSpaceByNameResponse, }) ts, handler, repo := createSpacesRepo(request) defer ts.Close() space, apiErr := findByName(repo, "Space1") Expect(handler).To(HaveAllRequestsCalled()) Expect(apiErr).NotTo(HaveOccurred()) Expect(space.Name).To(Equal("Space1")) Expect(space.GUID).To(Equal("space1-guid")) Expect(space.Organization.GUID).To(Equal("org1-guid")) Expect(len(space.Applications)).To(Equal(2)) Expect(space.Applications[0].GUID).To(Equal("app1-guid")) Expect(space.Applications[1].GUID).To(Equal("app2-guid")) Expect(len(space.Domains)).To(Equal(1)) Expect(space.Domains[0].GUID).To(Equal("domain1-guid")) Expect(len(space.ServiceInstances)).To(Equal(1)) Expect(space.ServiceInstances[0].GUID).To(Equal("service1-guid")) Expect(apiErr).NotTo(HaveOccurred()) return }
AfterEach(func() { testServer.Close() }) setupTestServer := func(reqs ...testnet.TestRequest) { testServer, testHandler = testnet.NewServer(reqs) configRepo.SetAPIEndpoint(testServer.URL) } Describe(".BindToRunningSet", func() { It("makes a correct request", func() { setupTestServer( apifakes.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "PUT", Path: "/v2/config/running_security_groups/a-real-guid", Response: testnet.TestResponse{ Status: http.StatusCreated, Body: bindRunningResponse, }, }), ) err := repo.BindToRunningSet("a-real-guid") Expect(err).ToNot(HaveOccurred()) Expect(testHandler).To(HaveAllRequestsCalled()) }) }) Describe(".UnbindFromRunningSet", func() { It("makes a correct request", func() { testServer, testHandler = testnet.NewServer([]testnet.TestRequest{
AfterEach(func() { testServer.Close() }) setupTestServer := func(reqs ...testnet.TestRequest) { testServer, testHandler = testnet.NewServer(reqs) configRepo.SetAPIEndpoint(testServer.URL) } Describe(".BindSpace", func() { It("associates the security group with the space", func() { setupTestServer( apifakes.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "PUT", Path: "/v2/security_groups/this-is-a-security-group-guid/spaces/yes-its-a-space-guid", Response: testnet.TestResponse{ Status: http.StatusCreated, Body: ` { "metadata": {"guid": "fb6fdf81-ce1b-448f-ada9-09bbb8807812"}, "entity": {"name": "dummy1", "rules": [] } }`, }, })) err := repo.BindSpace("this-is-a-security-group-guid", "yes-its-a-space-guid") Expect(err).ToNot(HaveOccurred()) Expect(testHandler).To(HaveAllRequestsCalled()) }) }) Describe(".UnbindSpace", func() { It("removes the associated security group from the space", func() {
}) var appStatsRequest = apifakes.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "GET", Path: "/v2/apps/my-cool-app-guid/stats", Response: testnet.TestResponse{Status: http.StatusOK, Body: ` { "1":{ "stats": { "disk_quota": 10000, "mem_quota": 1024, "usage": { "cpu": 0.3, "disk": 10000, "mem": 1024 } } }, "0":{ "stats": { "disk_quota": 1073741824, "mem_quota": 67108864, "usage": { "cpu": 3.659571249238058e-05, "disk": 56037376, "mem": 19218432 } } } }`}}) var appInstancesRequest = apifakes.NewCloudControllerTestRequest(testnet.TestRequest{
BeforeEach(func() { configRepo = testconfig.NewRepositoryWithDefaults() gateway := net.NewCloudControllerGateway(configRepo, time.Now, new(terminalfakes.FakeUI), new(tracefakes.FakePrinter), "") repo = NewCloudControllerServiceAuthTokenRepository(configRepo, gateway) }) AfterEach(func() { testServer.Close() }) Describe("Create", func() { It("creates a service auth token", func() { setupTestServer(apifakes.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "POST", Path: "/v2/service_auth_tokens", Matcher: testnet.RequestBodyMatcher(`{"label":"a label","provider":"a provider","token":"a token"}`), Response: testnet.TestResponse{Status: http.StatusCreated}, })) err := repo.Create(models.ServiceAuthTokenFields{ Label: "a label", Provider: "a provider", Token: "a token", }) Expect(testHandler).To(HaveAllRequestsCalled()) Expect(err).NotTo(HaveOccurred()) }) }) Describe("FindAll", func() {
AfterEach(func() { testServer.Close() }) setupTestServer := func(reqs ...testnet.TestRequest) { testServer, testHandler = testnet.NewServer(reqs) configRepo.SetAPIEndpoint(testServer.URL) } Describe(".Create", func() { It("can create an app security group, given some attributes", func() { req := apifakes.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "POST", Path: "/v2/security_groups", // FIXME: this matcher depend on the order of the key/value pairs in the map Matcher: testnet.RequestBodyMatcher(`{ "name": "mygroup", "rules": [{"my-house": "my-rules"}] }`), Response: testnet.TestResponse{Status: http.StatusCreated}, }) setupTestServer(req) err := repo.Create( "mygroup", []map[string]interface{}{{"my-house": "my-rules"}}, ) Expect(err).NotTo(HaveOccurred()) Expect(testHandler).To(HaveAllRequestsCalled()) }) })
writer.WriteHeader(http.StatusInternalServerError) return } writer.WriteHeader(http.StatusOK) fmt.Fprint(writer, expectedResponse) } listFilesServer := httptest.NewServer(http.HandlerFunc(listFilesEndpoint)) defer listFilesServer.Close() req := apifakes.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "GET", Path: "/v2/apps/my-app-guid/instances/1/files/some/path", Response: testnet.TestResponse{ Status: http.StatusTemporaryRedirect, Header: http.Header{ "Location": {fmt.Sprintf("%s/some/path", listFilesServer.URL)}, }, }, }) listFilesRedirectServer, handler := testnet.NewServer([]testnet.TestRequest{req}) defer listFilesRedirectServer.Close() configRepo := testconfig.NewRepositoryWithDefaults() configRepo.SetAPIEndpoint(listFilesRedirectServer.URL) gateway := net.NewCloudControllerGateway(configRepo, time.Now, new(terminalfakes.FakeUI), new(tracefakes.FakePrinter), "") repo := NewCloudControllerAppFilesRepository(configRepo, gateway) list, err := repo.ListFiles("my-app-guid", 1, "some/path")
var featureFlagsGetAllRequest = apifakes.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "GET", Path: "/v2/config/feature_flags", Response: testnet.TestResponse{ Status: http.StatusOK, Body: `[ { "name": "user_org_creation", "enabled": false, "error_message": null, "url": "/v2/config/feature_flags/user_org_creation" }, { "name": "private_domain_creation", "enabled": false, "error_message": "foobar", "url": "/v2/config/feature_flags/private_domain_creation" }, { "name": "app_bits_upload", "enabled": true, "error_message": null, "url": "/v2/config/feature_flags/app_bits_upload" }, { "name": "app_scaling", "enabled": true, "error_message": null, "url": "/v2/config/feature_flags/app_scaling" }, { "name": "route_creation", "enabled": true, "error_message": null, "url": "/v2/config/feature_flags/route_creation" } ]`, }, })
"code.cloudfoundry.org/cli/cf/terminal/terminalfakes" testconfig "code.cloudfoundry.org/cli/testhelpers/configuration" testnet "code.cloudfoundry.org/cli/testhelpers/net" . "code.cloudfoundry.org/cli/cf/api/password" "code.cloudfoundry.org/cli/cf/trace/tracefakes" . "code.cloudfoundry.org/cli/testhelpers/matchers" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("CloudControllerPasswordRepository", func() { It("updates your password", func() { req := apifakes.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "PUT", Path: "/Users/my-user-guid/password", Matcher: testnet.RequestBodyMatcher(`{"password":"******","oldPassword":"******"}`), Response: testnet.TestResponse{Status: http.StatusOK}, }) passwordUpdateServer, handler, repo := createPasswordRepo(req) defer passwordUpdateServer.Close() apiErr := repo.UpdatePassword("old-password", "new-password") Expect(handler).To(HaveAllRequestsCalled()) Expect(apiErr).NotTo(HaveOccurred()) }) }) func createPasswordRepo(req testnet.TestRequest) (passwordServer *httptest.Server, handler *testnet.TestHandler, repo Repository) { passwordServer, handler = testnet.NewServer([]testnet.TestRequest{req})
}) AfterEach(func() { testServer.Close() }) setupTestServer := func(reqs ...testnet.TestRequest) { testServer, testHandler = testnet.NewServer(reqs) configRepo.SetAPIEndpoint(testServer.URL) } Describe(".Create", func() { BeforeEach(func() { setupTestServer(apifakes.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "POST", Path: "/v2/service_plan_visibilities", Matcher: testnet.RequestBodyMatcher(`{"service_plan_guid":"service_plan_guid", "organization_guid":"org_guid"}`), Response: testnet.TestResponse{Status: http.StatusCreated}, })) }) It("creates a service plan visibility", func() { err := repo.Create("service_plan_guid", "org_guid") Expect(testHandler).To(HaveAllRequestsCalled()) Expect(err).NotTo(HaveOccurred()) }) }) Describe(".List", func() { BeforeEach(func() { setupTestServer(firstPlanVisibilityRequest, secondPlanVisibilityRequest)
BeforeEach(func() { configRepo = testconfig.NewRepositoryWithDefaults() gateway := net.NewCloudControllerGateway(configRepo, time.Now, new(terminalfakes.FakeUI), new(tracefakes.FakePrinter), "") repo = NewCloudControllerCopyApplicationSourceRepository(configRepo, gateway) }) AfterEach(func() { testServer.Close() }) Describe(".CopyApplication", func() { BeforeEach(func() { setupTestServer(apifakes.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "POST", Path: "/v2/apps/target-app-guid/copy_bits", Matcher: testnet.RequestBodyMatcher(`{ "source_app_guid": "source-app-guid" }`), Response: testnet.TestResponse{ Status: http.StatusCreated, }, })) }) It("should return a CopyApplicationModel", func() { err := repo.CopyApplication("source-app-guid", "target-app-guid") Expect(err).ToNot(HaveOccurred()) }) }) })
"github.com/onsi/gomega/ghttp" ) var _ = Describe("CloudControllerCurlRepository ", func() { var ( headers string body string apiErr error ) Describe("GET requests", func() { BeforeEach(func() { req := apifakes.NewCloudControllerTestRequest(testnet.TestRequest{ Method: "GET", Path: "/v2/endpoint", Response: testnet.TestResponse{ Status: http.StatusOK, Body: expectedJSONResponse}, }) ts, handler := testnet.NewServer([]testnet.TestRequest{req}) defer ts.Close() deps := newCurlDependencies() deps.config.SetAPIEndpoint(ts.URL) repo := NewCloudControllerCurlRepository(deps.config, deps.gateway) headers, body, apiErr = repo.Request("GET", "/v2/endpoint", "", "") Expect(handler).To(HaveAllRequestsCalled()) Expect(apiErr).NotTo(HaveOccurred()) })