github.com/randomtask1155/cli@v6.41.1-0.20181227003417-a98eed78cbde+incompatible/integration/shared/experimental/service_access_command_test.go (about) 1 package experimental 2 3 import ( 4 "code.cloudfoundry.org/cli/integration/helpers" 5 . "github.com/onsi/ginkgo" 6 . "github.com/onsi/gomega" 7 . "github.com/onsi/gomega/gbytes" 8 . "github.com/onsi/gomega/gexec" 9 ) 10 11 var _ = Describe("service-access command", func() { 12 When("the environment is not setup correctly", func() { 13 It("fails with the appropriate errors", func() { 14 helpers.CheckEnvironmentTargetedCorrectly(false, false, ReadOnlyOrg, "service-access") 15 }) 16 }) 17 18 When("the environment is setup correctly", func() { 19 var ( 20 orgName1 string 21 spaceName1 string 22 23 serviceBroker1 helpers.ServiceBroker 24 servicePlanName1 string 25 ) 26 27 BeforeEach(func() { 28 orgName1 = helpers.NewOrgName() 29 spaceName1 = helpers.NewSpaceName() 30 31 helpers.SetupCF(orgName1, spaceName1) 32 33 servicePlanName1 = helpers.NewPlanName() 34 serviceBroker1 = helpers.NewServiceBroker( 35 helpers.NewServiceBrokerName(), 36 helpers.NewAssets().ServiceBroker, 37 helpers.DefaultSharedDomain(), 38 helpers.PrefixedRandomName("service"), 39 servicePlanName1, 40 ) 41 serviceBroker1.SyncPlans[1].Name = helpers.GenerateHigherName(helpers.NewPlanName, servicePlanName1) 42 43 serviceBroker1.Push() 44 serviceBroker1.Configure(true) 45 serviceBroker1.Create() 46 }) 47 48 AfterEach(func() { 49 serviceBroker1.Destroy() 50 helpers.QuickDeleteOrg(orgName1) 51 }) 52 53 Describe("service plan visibility", func() { 54 It("displays the correct state for the visibility", func() { 55 By("having nothing enabled") 56 session := helpers.CF("service-access", "-e", serviceBroker1.Service.Name) 57 Eventually(session).Should(Say(`broker:\s+%s`, serviceBroker1.Name)) 58 Eventually(session).Should(Say(`%s\s+%s\s+none`, 59 serviceBroker1.Service.Name, 60 servicePlanName1, 61 )) 62 Eventually(session).Should(Exit(0)) 63 64 By("having the plan enabled for just the org and space") 65 Eventually( 66 helpers.CF("enable-service-access", 67 serviceBroker1.Service.Name, 68 "-o", orgName1, 69 "-p", servicePlanName1)).Should(Exit(0)) 70 71 session = helpers.CF("service-access", "-e", serviceBroker1.Service.Name) 72 Eventually(session).Should(Say(`broker:\s+%s`, serviceBroker1.Name)) 73 Eventually(session).Should(Say(`%s\s+%s\s+limited\s+%s`, 74 serviceBroker1.Service.Name, 75 servicePlanName1, 76 orgName1)) 77 Eventually(session).Should(Exit(0)) 78 79 By("having the plan enabled for everyone") 80 Eventually(helpers.CF("enable-service-access", serviceBroker1.Service.Name)).Should(Exit(0)) 81 82 session = helpers.CF("service-access", "-e", serviceBroker1.Service.Name) 83 Eventually(session).Should(Say(`broker:\s+%s`, serviceBroker1.Name)) 84 Eventually(session).Should(Say(`%s\s+%s\s+all`, 85 serviceBroker1.Service.Name, 86 servicePlanName1, 87 )) 88 Eventually(session).Should(Exit(0)) 89 }) 90 }) 91 92 Describe("narrowing display with flags", func() { 93 var ( 94 serviceBroker2 helpers.ServiceBroker 95 servicePlanName2 string 96 97 orgName2 string 98 ) 99 100 BeforeEach(func() { 101 servicePlanName2 = helpers.NewPlanName() 102 serviceBroker2 = helpers.NewServiceBroker( 103 helpers.GenerateLowerName(helpers.NewServiceBrokerName, serviceBroker1.Name), 104 helpers.NewAssets().ServiceBroker, 105 helpers.DefaultSharedDomain(), 106 helpers.PrefixedRandomName("service"), 107 servicePlanName2, 108 ) 109 serviceBroker2.SyncPlans[1].Name = helpers.GenerateLowerName(helpers.NewPlanName, servicePlanName2) 110 111 serviceBroker2.Push() 112 serviceBroker2.Configure(true) 113 serviceBroker2.Create() 114 115 Eventually( 116 helpers.CF("enable-service-access", 117 serviceBroker1.Service.Name, 118 "-o", orgName1, 119 "-p", servicePlanName1)).Should(Exit(0)) 120 121 orgName2 = helpers.GenerateLowerName(helpers.NewOrgName, orgName1) 122 helpers.CreateOrg(orgName2) 123 124 Eventually( 125 helpers.CF("enable-service-access", 126 serviceBroker1.Service.Name, 127 "-o", orgName2, 128 "-p", servicePlanName1)).Should(Exit(0)) 129 Eventually(helpers.CF("enable-service-access", serviceBroker2.Service.Name)).Should(Exit(0)) 130 }) 131 132 AfterEach(func() { 133 helpers.QuickDeleteOrg(orgName2) 134 serviceBroker2.Destroy() 135 }) 136 137 It("only shows broker/service information based on the flags provided", func() { 138 By("by showing the brokers and plans in alphabetical order when no flags are provided") 139 session := helpers.CF("service-access") 140 Eventually(session).Should(Say(`broker:\s+%s`, serviceBroker2.Name)) 141 Eventually(session).Should(Say(`%s\s+%s\s+all`, 142 serviceBroker2.Service.Name, 143 serviceBroker2.SyncPlans[1].Name, 144 )) 145 Eventually(session).Should(Say(`%s\s+%s\s+all`, 146 serviceBroker2.Service.Name, 147 serviceBroker2.SyncPlans[0].Name, 148 )) 149 Eventually(session).Should(Say(`broker:\s+%s`, serviceBroker1.Name)) 150 Eventually(session).Should(Say(`%s\s+%s\s+limited\s+%s,%s`, 151 serviceBroker1.Service.Name, 152 serviceBroker1.SyncPlans[0].Name, 153 orgName2, 154 orgName1, 155 )) 156 Eventually(session).Should(Say(`%s\s+%s\s+none`, 157 serviceBroker1.Service.Name, 158 serviceBroker1.SyncPlans[1].Name, 159 )) 160 Eventually(session).Should(Exit(0)) 161 162 By("by showing the specified broker and it's plans in alphabetical order when the -b flag is provided") 163 session = helpers.CF("service-access", "-b", serviceBroker2.Name) 164 Eventually(session).Should(Say(`broker:\s+%s`, serviceBroker2.Name)) 165 Eventually(session).Should(Say(`%s\s+%s\s+all`, 166 serviceBroker2.Service.Name, 167 serviceBroker2.SyncPlans[1].Name, 168 )) 169 Eventually(session).Should(Say(`%s\s+%s\s+all`, 170 serviceBroker2.Service.Name, 171 serviceBroker2.SyncPlans[0].Name, 172 )) 173 Consistently(session).ShouldNot(Say(`broker:\s+%s`, serviceBroker1.Name)) 174 Eventually(session).Should(Exit(0)) 175 }) 176 }) 177 }) 178 })