github.com/sleungcy/cli@v7.1.0+incompatible/integration/v7/isolated/labels_command_test.go (about) 1 package isolated 2 3 import ( 4 "fmt" 5 "regexp" 6 7 "code.cloudfoundry.org/cli/integration/helpers/servicebrokerstub" 8 9 . "code.cloudfoundry.org/cli/cf/util/testhelpers/matchers" 10 "code.cloudfoundry.org/cli/integration/helpers" 11 . "github.com/onsi/ginkgo" 12 . "github.com/onsi/gomega" 13 . "github.com/onsi/gomega/gbytes" 14 . "github.com/onsi/gomega/gexec" 15 ) 16 17 var _ = Describe("labels command", func() { 18 When("--help flag is set", func() { 19 It("appears in cf help -a", func() { 20 session := helpers.CF("help", "-a") 21 Eventually(session).Should(Exit(0)) 22 Expect(session).To(HaveCommandInCategoryWithDescription("labels", "METADATA", "List all labels (key-value pairs) for an API resource")) 23 }) 24 25 It("Displays command usage", func() { 26 session := helpers.CF("labels", "--help") 27 28 Eventually(session).Should(Say("NAME:")) 29 Eventually(session).Should(Say(`\s+labels - List all labels \(key-value pairs\) for an API resource`)) 30 Eventually(session).Should(Say("USAGE:")) 31 Eventually(session).Should(Say(`\s+cf labels RESOURCE RESOURCE_NAME`)) 32 Eventually(session).Should(Say("EXAMPLES:")) 33 Eventually(session).Should(Say(`\s+cf labels app dora`)) 34 Eventually(session).Should(Say(`\s+cf labels org business`)) 35 Eventually(session).Should(Say(`\s+cf labels buildpack go_buildpack --stack cflinuxfs3`)) 36 Eventually(session).Should(Say("RESOURCES:")) 37 Eventually(session).Should(Say(`\s+app`)) 38 Eventually(session).Should(Say(`\s+buildpack`)) 39 Eventually(session).Should(Say(`\s+domain`)) 40 Eventually(session).Should(Say(`\s+org`)) 41 Eventually(session).Should(Say(`\s+route`)) 42 Eventually(session).Should(Say(`\s+service-broker`)) 43 Eventually(session).Should(Say(`\s+service-offering`)) 44 Eventually(session).Should(Say(`\s+service-plan`)) 45 Eventually(session).Should(Say(`\s+space`)) 46 Eventually(session).Should(Say(`\s+stack`)) 47 Eventually(session).Should(Say("OPTIONS:")) 48 Eventually(session).Should(Say(`\s+--stack, -s\s+Specify stack to disambiguate buildpacks with the same name`)) 49 Eventually(session).Should(Say(`\s+--broker, -b\s+Specify a service broker to disambiguate service offerings or service plans with the same name`)) 50 Eventually(session).Should(Say(`\s+--offering, -e\s+Specify a service offering to disambiguate service plans with the same name`)) 51 Eventually(session).Should(Say("SEE ALSO:")) 52 Eventually(session).Should(Say(`\s+set-label, unset-label`)) 53 Eventually(session).Should(Exit(0)) 54 }) 55 }) 56 57 When("the environment is set up correctly", func() { 58 var ( 59 appName string 60 buildpackName string 61 orgName string 62 spaceName string 63 username string 64 ) 65 66 BeforeEach(func() { 67 orgName = helpers.NewOrgName() 68 buildpackName = helpers.NewBuildpackName() 69 username, _ = helpers.GetCredentials() 70 }) 71 72 Describe("app labels", func() { 73 BeforeEach(func() { 74 spaceName = helpers.NewSpaceName() 75 appName = helpers.PrefixedRandomName("app") 76 helpers.SetupCF(orgName, spaceName) 77 helpers.WithHelloWorldApp(func(appDir string) { 78 Eventually(helpers.CF("push", appName, "-p", appDir, "--no-start")).Should(Exit(0)) 79 }) 80 }) 81 AfterEach(func() { 82 helpers.QuickDeleteOrg(orgName) 83 }) 84 85 When("there are labels set on the application", func() { 86 BeforeEach(func() { 87 session := helpers.CF("set-label", "app", appName, "some-other-key=some-other-value", "some-key=some-value") 88 Eventually(session).Should(Exit(0)) 89 }) 90 91 It("lists the labels", func() { 92 session := helpers.CF("labels", "app", appName) 93 Eventually(session).Should(Say(regexp.QuoteMeta("Getting labels for app %s in org %s / space %s as %s...\n\n"), appName, orgName, spaceName, username)) 94 Eventually(session).Should(Say(`key\s+value`)) 95 Eventually(session).Should(Say(`some-key\s+some-value`)) 96 Eventually(session).Should(Say(`some-other-key\s+some-other-value`)) 97 Eventually(session).Should(Exit(0)) 98 }) 99 }) 100 101 When("there are no labels set on the application", func() { 102 It("indicates that there are no labels", func() { 103 session := helpers.CF("labels", "app", appName) 104 Eventually(session).Should(Exit(0)) 105 Expect(session).Should(Say(regexp.QuoteMeta("Getting labels for app %s in org %s / space %s as %s...\n\n"), appName, orgName, spaceName, username)) 106 Expect(session).ToNot(Say(`key\s+value`)) 107 Expect(session).Should(Say("No labels found.")) 108 }) 109 }) 110 111 When("the app does not exist", func() { 112 It("displays an error", func() { 113 session := helpers.CF("labels", "app", "non-existent-app") 114 Eventually(session).Should(Say(regexp.QuoteMeta("Getting labels for app non-existent-app in org %s / space %s as %s...\n\n"), orgName, spaceName, username)) 115 Eventually(session.Err).Should(Say("App 'non-existent-app' not found")) 116 Eventually(session).Should(Say("FAILED")) 117 Eventually(session).Should(Exit(1)) 118 }) 119 }) 120 }) 121 122 Describe("buildpack labels", func() { 123 BeforeEach(func() { 124 helpers.LoginCF() 125 }) 126 127 When("there is exactly one buildpack with a given name", func() { 128 When("the buildpack is not bound to a stack", func() { 129 BeforeEach(func() { 130 helpers.SetupBuildpackWithoutStack(buildpackName) 131 }) 132 AfterEach(func() { 133 session := helpers.CF("delete-buildpack", buildpackName, "-f") 134 Eventually(session).Should(Exit(0)) 135 }) 136 137 It("fails if a non-existent stack is specified", func() { 138 session := helpers.CF("labels", "buildpack", buildpackName, "-s", "bogus-stack") 139 Eventually(session.Err).Should(Say("Buildpack '%s' with stack 'bogus-stack' not found", buildpackName)) 140 Eventually(session).Should(Say("FAILED")) 141 Eventually(session).Should(Exit(1)) 142 }) 143 144 It("fails if the -s is specified without an argument", func() { 145 session := helpers.CF("labels", "buildpack", buildpackName, "-s") 146 Eventually(session.Err).Should(Say("Incorrect Usage:")) 147 Eventually(session).Should(Exit(1)) 148 }) 149 150 It("indicates that there are no labels", func() { 151 session := helpers.CF("labels", "buildpack", buildpackName) 152 Eventually(session).Should(Exit(0)) 153 Expect(session).Should(Say(regexp.QuoteMeta("Getting labels for buildpack %s as %s...\n\n"), buildpackName, username)) 154 Expect(session).ToNot(Say(`key\s+value`)) 155 Expect(session).Should(Say("No labels found.")) 156 }) 157 158 When("there are labels on the buildpack", func() { 159 BeforeEach(func() { 160 session := helpers.CF("set-label", "buildpack", buildpackName, "some-other-key=some-other-value", "some-key=some-value") 161 Eventually(session).Should(Exit(0)) 162 }) 163 164 It("lists the labels when no -s flag is given", func() { 165 session := helpers.CF("labels", "buildpack", buildpackName) 166 Eventually(session).Should(Say(regexp.QuoteMeta("Getting labels for buildpack %s as %s...\n\n"), buildpackName, username)) 167 Eventually(session).Should(Say(`key\s+value`)) 168 Eventually(session).Should(Say(`some-key\s+some-value`)) 169 Eventually(session).Should(Say(`some-other-key\s+some-other-value`)) 170 Eventually(session).Should(Exit(0)) 171 }) 172 173 It("lists the labels when the -s flag is given with an empty-string", func() { 174 session := helpers.CF("labels", "buildpack", buildpackName, "-s", "") 175 Eventually(session).Should(Say(regexp.QuoteMeta("Getting labels for buildpack %s as %s...\n\n"), buildpackName, username)) 176 Eventually(session).Should(Say(`key\s+value`)) 177 Eventually(session).Should(Say(`some-key\s+some-value`)) 178 Eventually(session).Should(Say(`some-other-key\s+some-other-value`)) 179 Eventually(session).Should(Exit(0)) 180 }) 181 }) 182 }) 183 184 When("the buildpack is bound to a stack", func() { 185 BeforeEach(func() { 186 helpers.SetupBuildpackWithStack(buildpackName, "cflinuxfs3") 187 session := helpers.CF("set-label", "buildpack", buildpackName, "-s", "cflinuxfs3", "some-other-key=some-other-value", "some-key=some-value") 188 Eventually(session).Should(Exit(0)) 189 }) 190 AfterEach(func() { 191 session := helpers.CF("delete-buildpack", buildpackName, "-f", "-s", "cflinuxfs3") 192 Eventually(session).Should(Exit(0)) 193 }) 194 195 It("lists the labels when no stack is specified", func() { 196 session := helpers.CF("labels", "buildpack", buildpackName) 197 Eventually(session).Should(Say(regexp.QuoteMeta("Getting labels for buildpack %s as %s...\n\n"), buildpackName, username)) 198 Eventually(session).Should(Say(`key\s+value`)) 199 Eventually(session).Should(Say(`some-key\s+some-value`)) 200 Eventually(session).Should(Say(`some-other-key\s+some-other-value`)) 201 Eventually(session).Should(Exit(0)) 202 }) 203 204 It("lists the labels when the stack is specified", func() { 205 session := helpers.CF("labels", "buildpack", buildpackName, "-s", "cflinuxfs3") 206 Eventually(session).Should(Say(regexp.QuoteMeta("Getting labels for buildpack %s with stack %s as %s...\n\n"), buildpackName, "cflinuxfs3", username)) 207 Eventually(session).Should(Say(`key\s+value`)) 208 Eventually(session).Should(Say(`some-key\s+some-value`)) 209 Eventually(session).Should(Say(`some-other-key\s+some-other-value`)) 210 Eventually(session).Should(Exit(0)) 211 }) 212 213 It("fails if a non-existent stack is specified", func() { 214 session := helpers.CF("labels", "buildpack", buildpackName, "-s", "bogus-stack") 215 Eventually(session.Err).Should(Say("Buildpack '%s' with stack 'bogus-stack' not found", buildpackName)) 216 Eventually(session).Should(Say("FAILED")) 217 Eventually(session).Should(Exit(1)) 218 }) 219 }) 220 }) 221 222 When("there are multiple buildpacks with the same name", func() { 223 var ( 224 newStackName string 225 ) 226 227 BeforeEach(func() { 228 newStackName = helpers.NewStackName() 229 helpers.CreateStack(newStackName) 230 helpers.SetupBuildpackWithStack(buildpackName, newStackName) 231 helpers.SetupBuildpackWithStack(buildpackName, "cflinuxfs3") 232 session := helpers.CF("set-label", "buildpack", buildpackName, "-s", newStackName, 233 "my-stack-some-other-key=some-other-value", "some-key=some-value") 234 Eventually(session).Should(Exit(0)) 235 session = helpers.CF("set-label", "buildpack", buildpackName, "--stack", "cflinuxfs3", 236 "cfl2=var2", "cfl1=var1") 237 Eventually(session).Should(Exit(0)) 238 }) 239 AfterEach(func() { 240 session := helpers.CF("delete-buildpack", buildpackName, "-f", "-s", "cflinuxfs3") 241 Eventually(session).Should(Exit(0)) 242 session = helpers.CF("delete-buildpack", buildpackName, "-f", "-s", newStackName) 243 Eventually(session).Should(Exit(0)) 244 helpers.DeleteStack(newStackName) 245 }) 246 247 It("fails when no stack is given", func() { 248 session := helpers.CF("labels", "buildpack", buildpackName) 249 Eventually(session.Err).Should(Say(fmt.Sprintf(`Multiple buildpacks named %s found. Specify a stack name by using a '-s' flag.`, buildpackName))) 250 Eventually(session).Should(Say(`FAILED`)) 251 Eventually(session).Should(Exit(1)) 252 }) 253 254 It("fails when an empty-string stack is given", func() { 255 session := helpers.CF("labels", "buildpack", buildpackName, "--stack", "") 256 Eventually(session.Err).Should(Say(fmt.Sprintf(`Multiple buildpacks named %s found. Specify a stack name by using a '-s' flag.`, buildpackName))) 257 Eventually(session).Should(Say(`FAILED`)) 258 Eventually(session).Should(Exit(1)) 259 }) 260 261 It("fails when a non-existent stack is given", func() { 262 session := helpers.CF("labels", "buildpack", buildpackName, "-s", "bogus-stack") 263 Eventually(session.Err).Should(Say("Buildpack '%s' with stack 'bogus-stack' not found", buildpackName)) 264 Eventually(session).Should(Say("FAILED")) 265 Eventually(session).Should(Exit(1)) 266 }) 267 268 It("lists the labels for buildpackName/newStackName", func() { 269 session := helpers.CF("labels", "buildpack", buildpackName, "-s", newStackName) 270 Eventually(session).Should(Say(regexp.QuoteMeta("Getting labels for buildpack %s with stack %s as %s...\n\n"), buildpackName, newStackName, username)) 271 Eventually(session).Should(Say(`key\s+value`)) 272 Eventually(session).Should(Say(`my-stack-some-other-key\s+some-other-value`)) 273 Eventually(session).Should(Say(`some-key\s+some-value`)) 274 Eventually(session).Should(Exit(0)) 275 }) 276 277 It("lists the labels for buildpackName/cflinuxfs3", func() { 278 session := helpers.CF("labels", "buildpack", buildpackName, "--stack", "cflinuxfs3") 279 Eventually(session).Should(Say(regexp.QuoteMeta("Getting labels for buildpack %s with stack cflinuxfs3 as %s...\n\n"), buildpackName, username)) 280 Eventually(session).Should(Say(`key\s+value`)) 281 Eventually(session).Should(Say(`cfl1\s+var1`)) 282 Eventually(session).Should(Say(`cfl2\s+var2`)) 283 Eventually(session).Should(Exit(0)) 284 }) 285 286 When("there is also a buildpack with the same name but has no stack", func() { 287 BeforeEach(func() { 288 helpers.SetupBuildpackWithoutStack(buildpackName) 289 session := helpers.CF("set-label", "buildpack", buildpackName, 290 "nostack1=var1", "nostack2=var2") 291 Eventually(session).Should(Exit(0)) 292 293 }) 294 AfterEach(func() { 295 session := helpers.CF("delete-buildpack", buildpackName, "-f") 296 Eventually(session).Should(Exit(0)) 297 }) 298 299 It("lists the labels of the no-stack buildpack when no stack is specified", func() { 300 session := helpers.CF("labels", "buildpack", buildpackName) 301 Eventually(session).Should(Say(regexp.QuoteMeta("Getting labels for buildpack %s as %s...\n\n"), buildpackName, username)) 302 Eventually(session).Should(Say(`key\s+value`)) 303 Eventually(session).Should(Say(`nostack1\s+var1`)) 304 Eventually(session).Should(Say(`nostack2\s+var2`)) 305 Eventually(session).Should(Exit(0)) 306 }) 307 308 It("fails if a non-existent stack is specified", func() { 309 session := helpers.CF("labels", "buildpack", buildpackName, "-s", "bogus-stack") 310 Eventually(session.Err).Should(Say("Buildpack '%s' with stack 'bogus-stack' not found", buildpackName)) 311 Eventually(session).Should(Say("FAILED")) 312 Eventually(session).Should(Exit(1)) 313 }) 314 }) 315 }) 316 }) 317 318 Describe("domain labels", func() { 319 var ( 320 domainName string 321 domain helpers.Domain 322 ) 323 324 BeforeEach(func() { 325 domainName = helpers.NewDomainName("labels") 326 domain = helpers.NewDomain(orgName, domainName) 327 328 helpers.SetupCFWithOrgOnly(orgName) 329 domain.CreatePrivate() 330 }) 331 332 AfterEach(func() { 333 domain.DeletePrivate() 334 helpers.QuickDeleteOrg(orgName) 335 }) 336 337 When("there are labels set on the domain", func() { 338 BeforeEach(func() { 339 session := helpers.CF("set-label", "domain", domainName, "some-other-key=some-other-value", "some-key=some-value") 340 Eventually(session).Should(Exit(0)) 341 }) 342 343 It("lists the labels", func() { 344 session := helpers.CF("labels", "domain", domainName) 345 Eventually(session).Should(Exit(0)) 346 Expect(session).To(Say(regexp.QuoteMeta("Getting labels for domain %s as %s...\n\n"), domainName, username)) 347 Expect(session).To(Say(`key\s+value`)) 348 Expect(session).To(Say(`some-key\s+some-value`)) 349 Expect(session).To(Say(`some-other-key\s+some-other-value`)) 350 }) 351 }) 352 353 When("there are no labels set on the domain", func() { 354 It("indicates that there are no labels", func() { 355 session := helpers.CF("labels", "domain", domainName) 356 Eventually(session).Should(Exit(0)) 357 Expect(session).To(Say(regexp.QuoteMeta("Getting labels for domain %s as %s...\n\n"), domainName, username)) 358 Expect(session).ToNot(Say(`key\s+value`)) 359 Expect(session).Should(Say("No labels found.")) 360 }) 361 }) 362 363 When("the domain does not exist", func() { 364 It("displays an error", func() { 365 session := helpers.CF("labels", "domain", "non-existent-domain") 366 Eventually(session).Should(Exit(1)) 367 Expect(session).To(Say(regexp.QuoteMeta("Getting labels for domain non-existent-domain as %s...\n\n"), username)) 368 Expect(session.Err).To(Say("Domain 'non-existent-domain' not found")) 369 Expect(session).To(Say("FAILED")) 370 }) 371 }) 372 }) 373 374 Describe("org labels", func() { 375 BeforeEach(func() { 376 helpers.SetupCFWithOrgOnly(orgName) 377 }) 378 AfterEach(func() { 379 helpers.QuickDeleteOrg(orgName) 380 }) 381 382 When("there are labels set on the organization", func() { 383 BeforeEach(func() { 384 session := helpers.CF("set-label", "org", orgName, "some-other-key=some-other-value", "some-key=some-value") 385 Eventually(session).Should(Exit(0)) 386 }) 387 It("lists the labels", func() { 388 session := helpers.CF("labels", "org", orgName) 389 Eventually(session).Should(Say(regexp.QuoteMeta("Getting labels for org %s as %s...\n\n"), orgName, username)) 390 Eventually(session).Should(Say(`key\s+value`)) 391 Eventually(session).Should(Say(`some-key\s+some-value`)) 392 Eventually(session).Should(Say(`some-other-key\s+some-other-value`)) 393 Eventually(session).Should(Exit(0)) 394 }) 395 }) 396 397 When("there are no labels set on the organization", func() { 398 It("indicates that there are no labels", func() { 399 session := helpers.CF("labels", "org", orgName) 400 Eventually(session).Should(Say(regexp.QuoteMeta("Getting labels for org %s as %s...\n\n"), orgName, username)) 401 Expect(session).ToNot(Say(`key\s+value`)) 402 Eventually(session).Should(Say("No labels found.")) 403 Eventually(session).Should(Exit(0)) 404 }) 405 }) 406 407 When("the org does not exist", func() { 408 It("displays an error", func() { 409 session := helpers.CF("labels", "org", "non-existent-org") 410 Eventually(session).Should(Say(regexp.QuoteMeta("Getting labels for org %s as %s...\n\n"), "non-existent-org", username)) 411 Eventually(session.Err).Should(Say("Organization 'non-existent-org' not found")) 412 Eventually(session).Should(Say("FAILED")) 413 Eventually(session).Should(Exit(1)) 414 }) 415 }) 416 }) 417 418 Describe("route labels", func() { 419 var ( 420 routeName string 421 domainName string 422 domain helpers.Domain 423 ) 424 425 BeforeEach(func() { 426 orgName = helpers.NewOrgName() 427 spaceName = helpers.NewSpaceName() 428 helpers.SetupCF(orgName, spaceName) 429 430 domainName = helpers.NewDomainName() 431 domain = helpers.NewDomain(orgName, domainName) 432 domain.Create() 433 Eventually(helpers.CF("create-route", domainName)).Should(Exit(0)) 434 routeName = domainName 435 }) 436 437 AfterEach(func() { 438 Eventually(helpers.CF("delete-route", domainName, "-f")).Should(Exit(0)) 439 domain.Delete() 440 helpers.QuickDeleteOrg(orgName) 441 }) 442 443 When("there are labels set on the route", func() { 444 BeforeEach(func() { 445 session := helpers.CF("set-label", "route", routeName, "some-other-key=some-other-value", "some-key=some-value") 446 Eventually(session).Should(Exit(0)) 447 }) 448 449 It("lists the labels", func() { 450 session := helpers.CF("labels", "route", routeName) 451 Eventually(session).Should(Exit(0)) 452 Expect(session).Should(Say(regexp.QuoteMeta("Getting labels for route %s in org %s / space %s as %s...\n\n"), routeName, orgName, spaceName, username)) 453 Expect(session).To(Say(`key\s+value`)) 454 Expect(session).To(Say(`some-key\s+some-value`)) 455 Expect(session).To(Say(`some-other-key\s+some-other-value`)) 456 }) 457 }) 458 459 When("there are no labels set on the route", func() { 460 It("indicates that there are no labels", func() { 461 session := helpers.CF("labels", "route", routeName) 462 Eventually(session).Should(Exit(0)) 463 Expect(session).Should(Say(regexp.QuoteMeta("Getting labels for route %s in org %s / space %s as %s...\n\n"), routeName, orgName, spaceName, username)) 464 Expect(session).ToNot(Say(`key\s+value`)) 465 Expect(session).Should(Say("No labels found.")) 466 }) 467 }) 468 469 When("the route does not exist", func() { 470 It("displays an error", func() { 471 session := helpers.CF("labels", "route", "non-existent-route.example.com") 472 Eventually(session).Should(Exit(1)) 473 Expect(session).Should(Say(regexp.QuoteMeta("Getting labels for route non-existent-route.example.com in org %s / space %s as %s...\n\n"), orgName, spaceName, username)) 474 Expect(session.Err).To(Say("Domain 'example.com' not found")) 475 Expect(session).To(Say("FAILED")) 476 }) 477 }) 478 }) 479 480 Describe("stack labels", func() { 481 var stackName string 482 483 BeforeEach(func() { 484 stackName = helpers.NewStackName() 485 helpers.LoginCF() 486 helpers.CreateStack(stackName) 487 }) 488 AfterEach(func() { 489 helpers.DeleteStack(stackName) 490 }) 491 492 When("there are labels set on the stack", func() { 493 BeforeEach(func() { 494 session := helpers.CF("set-label", "stack", stackName, "some-other-key=some-other-value", "some-key=some-value") 495 Eventually(session).Should(Exit(0)) 496 }) 497 498 It("lists the labels", func() { 499 session := helpers.CF("labels", "stack", stackName) 500 Eventually(session).Should(Say(regexp.QuoteMeta("Getting labels for stack %s as %s...\n\n"), stackName, username)) 501 Eventually(session).Should(Say(`key\s+value`)) 502 Eventually(session).Should(Say(`some-key\s+some-value`)) 503 Eventually(session).Should(Say(`some-other-key\s+some-other-value`)) 504 Eventually(session).Should(Exit(0)) 505 }) 506 }) 507 508 When("there are no labels set on the stack", func() { 509 It("indicates that there are no labels", func() { 510 session := helpers.CF("labels", "stack", stackName) 511 Eventually(session).Should(Say(regexp.QuoteMeta("Getting labels for stack %s as %s...\n\n"), stackName, username)) 512 Expect(session).ToNot(Say(`key\s+value`)) 513 Eventually(session).Should(Say("No labels found.")) 514 Eventually(session).Should(Exit(0)) 515 }) 516 }) 517 518 When("the stack does not exist", func() { 519 It("displays an error", func() { 520 session := helpers.CF("labels", "stack", "non-existent-stack") 521 Eventually(session).Should(Say(regexp.QuoteMeta("Getting labels for stack %s as %s...\n\n"), "non-existent-stack", username)) 522 Eventually(session.Err).Should(Say("Stack 'non-existent-stack' not found")) 523 Eventually(session).Should(Say("FAILED")) 524 Eventually(session).Should(Exit(1)) 525 }) 526 }) 527 }) 528 529 Describe("space labels", func() { 530 BeforeEach(func() { 531 spaceName = helpers.NewSpaceName() 532 helpers.SetupCF(orgName, spaceName) 533 }) 534 AfterEach(func() { 535 helpers.QuickDeleteOrg(orgName) 536 }) 537 538 When("there are labels set on the space", func() { 539 BeforeEach(func() { 540 session := helpers.CF("set-label", "space", spaceName, "some-other-key=some-other-value", "some-key=some-value") 541 Eventually(session).Should(Exit(0)) 542 }) 543 It("lists the labels", func() { 544 session := helpers.CF("labels", "space", spaceName) 545 Eventually(session).Should(Say(regexp.QuoteMeta("Getting labels for space %s in org %s as %s...\n\n"), spaceName, orgName, username)) 546 Eventually(session).Should(Say(`key\s+value`)) 547 Eventually(session).Should(Say(`some-key\s+some-value`)) 548 Eventually(session).Should(Say(`some-other-key\s+some-other-value`)) 549 Eventually(session).Should(Exit(0)) 550 }) 551 }) 552 553 When("there are no labels set on the space", func() { 554 It("indicates that there are no labels", func() { 555 session := helpers.CF("labels", "space", spaceName) 556 Eventually(session).Should(Say(regexp.QuoteMeta("Getting labels for space %s in org %s as %s...\n\n"), spaceName, orgName, username)) 557 Expect(session).ToNot(Say(`key\s+value`)) 558 Eventually(session).Should(Say("No labels found.")) 559 Eventually(session).Should(Exit(0)) 560 }) 561 }) 562 563 When("the space does not exist", func() { 564 It("displays an error", func() { 565 session := helpers.CF("labels", "space", "non-existent-space") 566 Eventually(session).Should(Say(regexp.QuoteMeta("Getting labels for space %s in org %s as %s...\n\n"), "non-existent-space", orgName, username)) 567 Eventually(session.Err).Should(Say("Space 'non-existent-space' not found")) 568 Eventually(session).Should(Say("FAILED")) 569 Eventually(session).Should(Exit(1)) 570 }) 571 }) 572 }) 573 574 Describe("service-broker labels", func() { 575 var broker *servicebrokerstub.ServiceBrokerStub 576 577 BeforeEach(func() { 578 helpers.LoginCF() 579 580 spaceName = helpers.NewSpaceName() 581 helpers.SetupCF(orgName, spaceName) 582 broker = servicebrokerstub.Register() 583 }) 584 585 AfterEach(func() { 586 helpers.QuickDeleteOrg(orgName) 587 broker.Forget() 588 }) 589 590 When("there are labels set on the service broker", func() { 591 BeforeEach(func() { 592 session := helpers.CF("set-label", "service-broker", broker.Name, "some-other-key=some-other-value") 593 Eventually(session).Should(Exit(0)) 594 595 }) 596 597 It("returns the labels associated with the broker", func() { 598 session := helpers.CF("labels", "service-broker", broker.Name) 599 Eventually(session).Should(Say(regexp.QuoteMeta("Getting labels for service-broker %s as %s...\n\n"), broker.Name, username)) 600 Eventually(session).Should(Say(`key\s+value`)) 601 Expect(session).To(Say(`some-other-key\s+some-other-value`)) 602 Eventually(session).Should(Exit(0)) 603 }) 604 }) 605 606 When("there are no labels set on the service broker", func() { 607 It("indicates that there are no labels", func() { 608 session := helpers.CF("labels", "service-broker", broker.Name) 609 Eventually(session).Should(Say(regexp.QuoteMeta("Getting labels for service-broker %s as %s...\n\n"), broker.Name, username)) 610 Expect(session).ToNot(Say(`key\s+value`)) 611 Eventually(session).Should(Say("No labels found.")) 612 Eventually(session).Should(Exit(0)) 613 }) 614 }) 615 616 When("the service broker does not exist", func() { 617 It("displays an error", func() { 618 session := helpers.CF("labels", "service-broker", "non-existent-broker") 619 Eventually(session).Should(Say(regexp.QuoteMeta("Getting labels for service-broker %s as %s...\n\n"), "non-existent-broker", username)) 620 Eventually(session.Err).Should(Say("Service broker 'non-existent-broker' not found")) 621 Eventually(session).Should(Say("FAILED")) 622 Eventually(session).Should(Exit(1)) 623 }) 624 }) 625 }) 626 627 Describe("service-offering labels", func() { 628 var ( 629 broker *servicebrokerstub.ServiceBrokerStub 630 serviceOfferingName string 631 ) 632 633 BeforeEach(func() { 634 helpers.LoginCF() 635 636 spaceName = helpers.NewSpaceName() 637 helpers.SetupCF(orgName, spaceName) 638 broker = servicebrokerstub.Register() 639 serviceOfferingName = broker.FirstServiceOfferingName() 640 }) 641 642 AfterEach(func() { 643 helpers.QuickDeleteOrg(orgName) 644 broker.Forget() 645 }) 646 647 When("there are labels set on the service offering", func() { 648 BeforeEach(func() { 649 session := helpers.CF("set-label", "service-offering", serviceOfferingName, "some-other-key=some-other-value") 650 Eventually(session).Should(Exit(0)) 651 652 }) 653 654 It("returns the labels associated with the offering", func() { 655 session := helpers.CF("labels", "service-offering", serviceOfferingName) 656 Eventually(session).Should(Say(regexp.QuoteMeta("Getting labels for service-offering %s as %s...\n\n"), serviceOfferingName, username)) 657 Eventually(session).Should(Say(`key\s+value`)) 658 Expect(session).To(Say(`some-other-key\s+some-other-value`)) 659 Eventually(session).Should(Exit(0)) 660 }) 661 662 When("the service broker is specified", func() { 663 It("returns the labels associated with the offering", func() { 664 session := helpers.CF("labels", "-b", broker.Name, "service-offering", serviceOfferingName) 665 Eventually(session).Should(Say(regexp.QuoteMeta("Getting labels for service-offering %s from service broker %s as %s...\n\n"), serviceOfferingName, broker.Name, username)) 666 Eventually(session).Should(Say(`key\s+value`)) 667 Expect(session).To(Say(`some-other-key\s+some-other-value`)) 668 Eventually(session).Should(Exit(0)) 669 }) 670 }) 671 }) 672 673 When("there are no labels set on the service offering", func() { 674 It("indicates that there are no labels", func() { 675 session := helpers.CF("labels", "service-offering", serviceOfferingName) 676 Eventually(session).Should(Say(regexp.QuoteMeta("Getting labels for service-offering %s as %s...\n\n"), serviceOfferingName, username)) 677 Expect(session).ToNot(Say(`key\s+value`)) 678 Eventually(session).Should(Say("No labels found.")) 679 Eventually(session).Should(Exit(0)) 680 }) 681 }) 682 683 When("the service offering does not exist", func() { 684 It("displays an error", func() { 685 session := helpers.CF("labels", "service-offering", "non-existent-offering") 686 Eventually(session).Should(Say(regexp.QuoteMeta("Getting labels for service-offering non-existent-offering as %s...\n\n"), username)) 687 Eventually(session.Err).Should(Say("Service offering 'non-existent-offering' not found")) 688 Eventually(session).Should(Say("FAILED")) 689 Eventually(session).Should(Exit(1)) 690 }) 691 }) 692 }) 693 694 Describe("service-plan labels", func() { 695 var ( 696 broker *servicebrokerstub.ServiceBrokerStub 697 servicePlanName string 698 serviceOfferingName string 699 ) 700 701 BeforeEach(func() { 702 helpers.LoginCF() 703 704 spaceName = helpers.NewSpaceName() 705 helpers.SetupCF(orgName, spaceName) 706 broker = servicebrokerstub.Register() 707 servicePlanName = broker.FirstServicePlanName() 708 serviceOfferingName = broker.FirstServiceOfferingName() 709 }) 710 711 AfterEach(func() { 712 helpers.QuickDeleteOrg(orgName) 713 broker.Forget() 714 }) 715 716 When("there are labels set on the service plan", func() { 717 BeforeEach(func() { 718 session := helpers.CF("set-label", "service-plan", servicePlanName, "some-other-key=some-other-value") 719 Eventually(session).Should(Exit(0)) 720 }) 721 722 It("returns the labels associated with the plan", func() { 723 session := helpers.CF("labels", "service-plan", servicePlanName) 724 Eventually(session).Should(Say(regexp.QuoteMeta("Getting labels for service-plan %s as %s...\n\n"), servicePlanName, username)) 725 Eventually(session).Should(Say(`key\s+value`)) 726 Expect(session).To(Say(`some-other-key\s+some-other-value`)) 727 Eventually(session).Should(Exit(0)) 728 }) 729 730 When("the service offering and service broker are specified", func() { 731 It("returns the labels associated with the plan", func() { 732 session := helpers.CF("labels", "-e", serviceOfferingName, "-b", broker.Name, "service-plan", servicePlanName) 733 Eventually(session).Should(Say(regexp.QuoteMeta("Getting labels for service-plan %s from service offering %s / service broker %s as %s..."), servicePlanName, serviceOfferingName, broker.Name, username)) 734 Eventually(session).Should(Say(`key\s+value`)) 735 Expect(session).To(Say(`some-other-key\s+some-other-value`)) 736 Eventually(session).Should(Exit(0)) 737 }) 738 }) 739 }) 740 741 When("there are no labels set on the service plan", func() { 742 It("indicates that there are no labels", func() { 743 session := helpers.CF("labels", "service-plan", servicePlanName) 744 Eventually(session).Should(Say(regexp.QuoteMeta("Getting labels for service-plan %s as %s...\n\n"), servicePlanName, username)) 745 Expect(session).ToNot(Say(`key\s+value`)) 746 Eventually(session).Should(Say("No labels found.")) 747 Eventually(session).Should(Exit(0)) 748 }) 749 }) 750 751 When("the service plan does not exist", func() { 752 It("displays an error", func() { 753 session := helpers.CF("labels", "service-plan", "non-existent-plan") 754 Eventually(session).Should(Say(regexp.QuoteMeta("Getting labels for service-plan non-existent-plan as %s...\n\n"), username)) 755 Eventually(session.Err).Should(Say("Service plan 'non-existent-plan' not found")) 756 Eventually(session).Should(Say("FAILED")) 757 Eventually(session).Should(Exit(1)) 758 }) 759 }) 760 }) 761 }) 762 })