github.com/jghiloni/cli@v6.28.1-0.20170628223758-0ce05fe032a2+incompatible/api/cloudcontroller/ccv3/ccv3_suite_test.go (about) 1 package ccv3_test 2 3 import ( 4 "bytes" 5 "log" 6 "net/http" 7 "strings" 8 9 . "code.cloudfoundry.org/cli/api/cloudcontroller/ccv3" 10 . "github.com/onsi/ginkgo" 11 . "github.com/onsi/gomega" 12 . "github.com/onsi/gomega/ghttp" 13 14 "testing" 15 ) 16 17 func TestCcv3(t *testing.T) { 18 RegisterFailHandler(Fail) 19 RunSpecs(t, "Cloud Controller V3 Suite") 20 } 21 22 var server *Server 23 24 var _ = SynchronizedBeforeSuite(func() []byte { 25 return []byte{} 26 }, func(data []byte) { 27 server = NewTLSServer() 28 29 // Suppresses ginkgo server logs 30 server.HTTPTestServer.Config.ErrorLog = log.New(&bytes.Buffer{}, "", 0) 31 }) 32 33 var _ = SynchronizedAfterSuite(func() { 34 server.Close() 35 }, func() {}) 36 37 var _ = BeforeEach(func() { 38 server.Reset() 39 }) 40 41 func NewTestClient() *Client { 42 SetupV3Response() 43 client := NewClient(Config{AppName: "CF CLI API V3 Test", AppVersion: "Unknown"}) 44 warnings, err := client.TargetCF(TargetSettings{ 45 SkipSSLValidation: true, 46 URL: server.URL(), 47 }) 48 Expect(err).ToNot(HaveOccurred()) 49 Expect(warnings).To(BeEmpty()) 50 51 return client 52 } 53 54 func SetupV3Response() { 55 serverURL := server.URL() 56 rootResponse := strings.Replace(`{ 57 "links": { 58 "self": { 59 "href": "SERVER_URL" 60 }, 61 "cloud_controller_v2": { 62 "href": "SERVER_URL/v2", 63 "meta": { 64 "version": "2.64.0" 65 } 66 }, 67 "cloud_controller_v3": { 68 "href": "SERVER_URL/v3", 69 "meta": { 70 "version": "3.0.0-alpha.5" 71 } 72 }, 73 "uaa": { 74 "href": "https://uaa.bosh-lite.com" 75 } 76 } 77 }`, "SERVER_URL", serverURL, -1) 78 79 server.AppendHandlers( 80 CombineHandlers( 81 VerifyRequest(http.MethodGet, "/"), 82 RespondWith(http.StatusOK, rootResponse), 83 ), 84 ) 85 86 v3Response := strings.Replace(`{ 87 "links": { 88 "self": { 89 "href": "SERVER_URL/v3" 90 }, 91 "apps": { 92 "href": "SERVER_URL/v3/apps" 93 }, 94 "tasks": { 95 "href": "SERVER_URL/v3/tasks" 96 }, 97 "isolation_segments": { 98 "href": "SERVER_URL/v3/isolation_segments" 99 }, 100 "builds": { 101 "href": "SERVER_URL/v3/builds" 102 }, 103 "organizations": { 104 "href": "SERVER_URL/v3/organizations" 105 }, 106 "spaces": { 107 "href": "SERVER_URL/v3/spaces" 108 }, 109 "packages": { 110 "href": "SERVER_URL/v3/packages" 111 }, 112 "processes": { 113 "href": "SERVER_URL/v3/processes" 114 } 115 } 116 }`, "SERVER_URL", serverURL, -1) 117 118 server.AppendHandlers( 119 CombineHandlers( 120 VerifyRequest(http.MethodGet, "/v3"), 121 RespondWith(http.StatusOK, v3Response), 122 ), 123 ) 124 }