github.com/mook-as/cf-cli@v7.0.0-beta.28.0.20200120190804-b91c115fae48+incompatible/integration/v6/isolated/bind_route_service_command_test.go (about) 1 package isolated 2 3 import ( 4 "regexp" 5 6 "code.cloudfoundry.org/cli/integration/helpers/fakeservicebroker" 7 8 "code.cloudfoundry.org/cli/integration/helpers" 9 . "github.com/onsi/ginkgo" 10 . "github.com/onsi/gomega" 11 . "github.com/onsi/gomega/gbytes" 12 . "github.com/onsi/gomega/gexec" 13 ) 14 15 var _ = Describe("bind-route-service command", func() { 16 Describe("help", func() { 17 It("includes a description of the options", func() { 18 session := helpers.CF("help", "bind-route-service") 19 Eventually(session).Should(Say("NAME:")) 20 Eventually(session).Should(Say("bind-route-service - Bind a service instance to an HTTP route")) 21 Eventually(session).Should(Say("USAGE:")) 22 Eventually(session).Should(Say(regexp.QuoteMeta("cf bind-route-service DOMAIN [--hostname HOSTNAME] [--path PATH] SERVICE_INSTANCE [-c PARAMETERS_AS_JSON]"))) 23 Eventually(session).Should(Say("EXAMPLES:")) 24 Eventually(session).Should(Say(regexp.QuoteMeta("cf bind-route-service example.com --hostname myapp --path foo myratelimiter"))) 25 Eventually(session).Should(Say(regexp.QuoteMeta("cf bind-route-service example.com myratelimiter -c file.json"))) 26 Eventually(session).Should(Say(regexp.QuoteMeta(`cf bind-route-service example.com myratelimiter -c '{"valid":"json"}'`))) 27 Eventually(session).Should(Say(regexp.QuoteMeta(`In Windows PowerShell use double-quoted, escaped JSON: "{\"valid\":\"json\"}"`))) 28 Eventually(session).Should(Say(regexp.QuoteMeta(`In Windows Command Line use single-quoted, escaped JSON: '{\"valid\":\"json\"}'`))) 29 Eventually(session).Should(Say("ALIAS:")) 30 Eventually(session).Should(Say("brs")) 31 Eventually(session).Should(Say("OPTIONS:")) 32 Eventually(session).Should(Say(`-c\s+Valid JSON object containing service-specific configuration parameters, provided inline or in a file\. For a list of supported configuration parameters, see documentation for the particular service offering.`)) 33 Eventually(session).Should(Say(`--hostname, -n\s+Hostname used in combination with DOMAIN to specify the route to bind`)) 34 Eventually(session).Should(Say(`--path\s+Path used in combination with HOSTNAME and DOMAIN to specify the route to bind`)) 35 Eventually(session).Should(Say(`SEE ALSO:`)) 36 Eventually(session).Should(Say(`routes, services`)) 37 Eventually(session).Should(Exit(0)) 38 }) 39 }) 40 41 Describe("Targeted space requirements", func() { 42 Context("when an org or space is not targeted", func() { 43 It("display an error that no org or space is targeted", func() { 44 helpers.LoginCF() 45 session := helpers.CF("bind-route-service", "www.example.org", "myInstance") 46 Eventually(session).Should(Say("No org and space targeted, use 'cf target -o ORG -s SPACE' to target an org and space")) 47 }) 48 }) 49 50 Context("when an org or space is targeted", func() { 51 var ( 52 orgName string 53 spaceName string 54 domain string 55 host string 56 serviceInstanceName string 57 broker *fakeservicebroker.FakeServiceBroker 58 ) 59 60 BeforeEach(func() { 61 orgName = helpers.NewOrgName() 62 spaceName = helpers.NewSpaceName() 63 host = helpers.PrefixedRandomName("host") 64 65 helpers.SetupCF(orgName, spaceName) 66 domain = helpers.DefaultSharedDomain() 67 68 serviceInstanceName = helpers.PrefixedRandomName("instance") 69 broker = fakeservicebroker.New() 70 broker.Services[0].Requires = []string{"route_forwarding"} 71 broker.EnsureBrokerIsAvailable() 72 73 Eventually(helpers.CF("enable-service-access", broker.ServiceName())).Should(Exit(0)) 74 Eventually(helpers.CF("create-service", broker.ServiceName(), broker.ServicePlanName(), serviceInstanceName)).Should(Exit(0)) 75 Eventually(helpers.CF("create-route", spaceName, domain, "--hostname", host)).Should(Exit(0)) 76 }) 77 78 AfterEach(func() { 79 broker.Destroy() 80 helpers.QuickDeleteOrg(orgName) 81 }) 82 83 It("succeeds", func() { 84 session := helpers.CF("bind-route-service", domain, serviceInstanceName, "--hostname", host) 85 Eventually(session).Should(Say("OK")) 86 }) 87 }) 88 }) 89 })