github.com/franc20/ayesa_sap@v7.0.0-beta.28.0.20200124003224-302d4d52fa6c+incompatible/actor/v2action/domain_test.go (about) 1 package v2action_test 2 3 import ( 4 "errors" 5 6 "code.cloudfoundry.org/cli/actor/actionerror" 7 . "code.cloudfoundry.org/cli/actor/v2action" 8 "code.cloudfoundry.org/cli/actor/v2action/v2actionfakes" 9 "code.cloudfoundry.org/cli/api/cloudcontroller/ccerror" 10 "code.cloudfoundry.org/cli/api/cloudcontroller/ccv2" 11 "code.cloudfoundry.org/cli/api/cloudcontroller/ccv2/constant" 12 . "github.com/onsi/ginkgo" 13 . "github.com/onsi/ginkgo/extensions/table" 14 . "github.com/onsi/gomega" 15 ) 16 17 var _ = Describe("Domain Actions", func() { 18 var ( 19 actor *Actor 20 fakeCloudControllerClient *v2actionfakes.FakeCloudControllerClient 21 ) 22 23 BeforeEach(func() { 24 fakeCloudControllerClient = new(v2actionfakes.FakeCloudControllerClient) 25 actor = NewActor(fakeCloudControllerClient, nil, nil) 26 }) 27 28 Describe("Domain", func() { 29 var domain Domain 30 31 Describe("IsHTTP", func() { 32 When("the RouterGroupType = 'http'", func() { 33 BeforeEach(func() { 34 domain.RouterGroupType = constant.HTTPRouterGroup 35 }) 36 37 It("returns true", func() { 38 Expect(domain.IsHTTP()).To(BeTrue()) 39 }) 40 }) 41 42 When("the RouterGroupType is anything other than 'tcp'", func() { 43 BeforeEach(func() { 44 domain.RouterGroupType = "" 45 }) 46 47 It("returns true", func() { 48 Expect(domain.IsHTTP()).To(BeTrue()) 49 }) 50 }) 51 52 When("the RouterGroupType = 'http'", func() { 53 BeforeEach(func() { 54 domain.RouterGroupType = constant.TCPRouterGroup 55 }) 56 57 It("returns false", func() { 58 Expect(domain.IsHTTP()).To(BeFalse()) 59 }) 60 }) 61 }) 62 63 Describe("IsTCP", func() { 64 When("the RouterGroupType = 'tcp'", func() { 65 BeforeEach(func() { 66 domain.RouterGroupType = constant.TCPRouterGroup 67 }) 68 69 It("returns true", func() { 70 Expect(domain.IsTCP()).To(BeTrue()) 71 }) 72 }) 73 74 When("the RouterGroupType is anything else", func() { 75 BeforeEach(func() { 76 domain.RouterGroupType = constant.HTTPRouterGroup 77 }) 78 79 It("returns false", func() { 80 Expect(domain.IsTCP()).To(BeFalse()) 81 }) 82 }) 83 }) 84 85 Describe("IsShared", func() { 86 When("the the type is shared", func() { 87 BeforeEach(func() { 88 domain.Type = constant.SharedDomain 89 }) 90 91 It("returns true", func() { 92 Expect(domain.IsShared()).To(BeTrue()) 93 }) 94 }) 95 96 When("the RouterGroupType is anything else", func() { 97 BeforeEach(func() { 98 domain.Type = constant.PrivateDomain 99 }) 100 101 It("returns false", func() { 102 Expect(domain.IsShared()).To(BeFalse()) 103 }) 104 }) 105 }) 106 107 Describe("IsPrivate", func() { 108 When("the the type is shared", func() { 109 BeforeEach(func() { 110 domain.Type = constant.PrivateDomain 111 }) 112 113 It("returns true", func() { 114 Expect(domain.IsPrivate()).To(BeTrue()) 115 }) 116 }) 117 118 When("the RouterGroupType is anything else", func() { 119 BeforeEach(func() { 120 domain.Type = constant.SharedDomain 121 }) 122 123 It("returns false", func() { 124 Expect(domain.IsPrivate()).To(BeFalse()) 125 }) 126 }) 127 }) 128 }) 129 130 Describe("DomainNotFoundError", func() { 131 var err actionerror.DomainNotFoundError 132 When("the name is provided", func() { 133 BeforeEach(func() { 134 err = actionerror.DomainNotFoundError{Name: "some-domain-name"} 135 }) 136 137 It("returns the correct message", func() { 138 Expect(err.Error()).To(Equal("Domain 'some-domain-name' not found.")) 139 }) 140 }) 141 142 When("the name is not provided but the guid is", func() { 143 BeforeEach(func() { 144 err = actionerror.DomainNotFoundError{GUID: "some-domain-guid"} 145 }) 146 147 It("returns the correct message", func() { 148 Expect(err.Error()).To(Equal("Domain with GUID 'some-domain-guid' not found.")) 149 }) 150 }) 151 152 When("neither the name nor the guid is provided", func() { 153 BeforeEach(func() { 154 err = actionerror.DomainNotFoundError{} 155 }) 156 157 It("returns the correct message", func() { 158 Expect(err.Error()).To(Equal("Domain not found.")) 159 }) 160 }) 161 }) 162 163 Describe("GetDomain", func() { 164 When("the domain exists and is a shared domain", func() { 165 var expectedDomain ccv2.Domain 166 167 BeforeEach(func() { 168 expectedDomain = ccv2.Domain{ 169 GUID: "shared-domain-guid", 170 Name: "shared-domain", 171 } 172 fakeCloudControllerClient.GetSharedDomainReturns(expectedDomain, ccv2.Warnings{"get-domain-warning"}, nil) 173 }) 174 175 It("returns the shared domain", func() { 176 domain, warnings, err := actor.GetDomain("shared-domain-guid") 177 Expect(err).NotTo(HaveOccurred()) 178 Expect(warnings).To(ConsistOf("get-domain-warning")) 179 Expect(domain).To(Equal(Domain(expectedDomain))) 180 181 Expect(fakeCloudControllerClient.GetSharedDomainCallCount()).To(Equal(1)) 182 Expect(fakeCloudControllerClient.GetSharedDomainArgsForCall(0)).To(Equal("shared-domain-guid")) 183 }) 184 }) 185 186 When("the domain exists and is a private domain", func() { 187 var expectedDomain ccv2.Domain 188 189 BeforeEach(func() { 190 expectedDomain = ccv2.Domain{ 191 GUID: "private-domain-guid", 192 Name: "private-domain", 193 } 194 fakeCloudControllerClient.GetSharedDomainReturns(ccv2.Domain{}, nil, ccerror.ResourceNotFoundError{}) 195 fakeCloudControllerClient.GetPrivateDomainReturns(expectedDomain, nil, nil) 196 }) 197 198 It("returns the private domain", func() { 199 domain, _, err := actor.GetDomain("private-domain-guid") 200 Expect(err).NotTo(HaveOccurred()) 201 Expect(domain).To(Equal(Domain(expectedDomain))) 202 203 Expect(fakeCloudControllerClient.GetSharedDomainCallCount()).To(Equal(1)) 204 Expect(fakeCloudControllerClient.GetSharedDomainArgsForCall(0)).To(Equal("private-domain-guid")) 205 Expect(fakeCloudControllerClient.GetPrivateDomainCallCount()).To(Equal(1)) 206 Expect(fakeCloudControllerClient.GetPrivateDomainArgsForCall(0)).To(Equal("private-domain-guid")) 207 }) 208 }) 209 210 When("the domain does not exist", func() { 211 var expectedErr actionerror.DomainNotFoundError 212 213 BeforeEach(func() { 214 expectedErr = actionerror.DomainNotFoundError{GUID: "private-domain-guid"} 215 fakeCloudControllerClient.GetSharedDomainReturns(ccv2.Domain{}, nil, ccerror.ResourceNotFoundError{}) 216 fakeCloudControllerClient.GetPrivateDomainReturns(ccv2.Domain{}, nil, ccerror.ResourceNotFoundError{}) 217 }) 218 219 It("returns a DomainNotFoundError", func() { 220 domain, _, err := actor.GetDomain("private-domain-guid") 221 Expect(err).To(MatchError(expectedErr)) 222 Expect(domain).To(Equal(Domain(ccv2.Domain{}))) 223 }) 224 }) 225 226 DescribeTable("when there are warnings and errors", func( 227 stubGetSharedDomain func(), 228 stubGetPrivateDomain func(), 229 expectedDomain Domain, 230 expectedWarnings Warnings, 231 expectingError bool, 232 expectedErr error, 233 ) { 234 stubGetSharedDomain() 235 stubGetPrivateDomain() 236 domain, warnings, err := actor.GetDomain("some-domain-guid") 237 Expect(domain).To(Equal(expectedDomain)) 238 Expect(warnings).To(ConsistOf(expectedWarnings)) 239 if expectingError { 240 Expect(err).To(MatchError(expectedErr)) 241 } else { 242 Expect(err).To(Not(HaveOccurred())) 243 } 244 }, 245 246 Entry( 247 "shared domain warning and error", 248 func() { 249 fakeCloudControllerClient.GetSharedDomainReturns(ccv2.Domain{}, []string{"shared-domain-warning"}, errors.New("shared domain error")) 250 }, 251 func() { fakeCloudControllerClient.GetPrivateDomainReturns(ccv2.Domain{}, nil, nil) }, 252 Domain{}, 253 Warnings{"shared-domain-warning"}, 254 true, 255 errors.New("shared domain error"), 256 ), 257 258 Entry( 259 "shared domain warning and resource not found; private domain warning & error", 260 func() { 261 fakeCloudControllerClient.GetSharedDomainReturns(ccv2.Domain{}, []string{"shared-domain-warning"}, ccerror.ResourceNotFoundError{}) 262 }, 263 func() { 264 fakeCloudControllerClient.GetPrivateDomainReturns(ccv2.Domain{}, []string{"private-domain-warning"}, errors.New("private domain error")) 265 }, 266 Domain{}, 267 Warnings{"shared-domain-warning", "private-domain-warning"}, 268 true, 269 errors.New("private domain error"), 270 ), 271 ) 272 }) 273 274 Describe("GetDomains", func() { 275 var ( 276 domains []Domain 277 warnings Warnings 278 executeErr error 279 ) 280 281 JustBeforeEach(func() { 282 domains, warnings, executeErr = actor.GetDomains("some-org") 283 }) 284 285 It("calls GetSharedDomains", func() { 286 Expect(fakeCloudControllerClient.GetSharedDomainsCallCount()).To(Equal(1)) 287 }) 288 289 When("GetSharedDomains returns successfully", func() { 290 BeforeEach(func() { 291 fakeCloudControllerClient.GetSharedDomainsReturns( 292 []ccv2.Domain{ 293 { 294 Name: "some-domain.com", 295 Type: constant.SharedDomain, 296 }, 297 { 298 Name: "some-other-domain.com", 299 Type: constant.SharedDomain, 300 }, 301 }, 302 ccv2.Warnings{"warning-1", "warning-2"}, 303 nil) 304 }) 305 306 It("returns all shared domains and prints all warnings", func() { 307 Expect(executeErr).NotTo(HaveOccurred()) 308 Expect(warnings).To(ConsistOf("warning-1", "warning-2")) 309 Expect(domains).To(ConsistOf( 310 Domain{Name: "some-domain.com", Type: constant.SharedDomain}, 311 Domain{Name: "some-other-domain.com", Type: constant.SharedDomain}, 312 )) 313 }) 314 315 It("calls GetOrganizationPrivateDomains with the given org guid", func() { 316 Expect(fakeCloudControllerClient.GetOrganizationPrivateDomainsCallCount()).To(Equal(1)) 317 Expect(fakeCloudControllerClient.GetOrganizationPrivateDomainsArgsForCall(0)).To(Equal("some-org")) 318 }) 319 320 When("GetOrganizationPrivateDomains returns successfully", func() { 321 BeforeEach(func() { 322 fakeCloudControllerClient.GetOrganizationPrivateDomainsReturns( 323 []ccv2.Domain{ 324 { 325 Name: "some-domain.private", 326 Type: constant.PrivateDomain, 327 }, 328 { 329 Name: "some-other-domain.private", 330 Type: constant.PrivateDomain, 331 }, 332 }, 333 ccv2.Warnings{"warning-3", "warning-4"}, 334 nil) 335 }) 336 337 It("returns the shared and private domains and returns all warnings", func() { 338 Expect(executeErr).NotTo(HaveOccurred()) 339 Expect(warnings).To(ConsistOf("warning-1", "warning-2", "warning-3", "warning-4")) 340 Expect(domains).To(ConsistOf( 341 Domain{Name: "some-domain.com", Type: constant.SharedDomain}, 342 Domain{Name: "some-other-domain.com", Type: constant.SharedDomain}, 343 Domain{Name: "some-domain.private", Type: constant.PrivateDomain}, 344 Domain{Name: "some-other-domain.private", Type: constant.PrivateDomain}, 345 )) 346 }) 347 }) 348 349 When("GetOrganizationPrivateDomains returns an error", func() { 350 BeforeEach(func() { 351 fakeCloudControllerClient.GetOrganizationPrivateDomainsReturns(nil, ccv2.Warnings{"warning-3", "warning-4"}, errors.New("boom")) 352 }) 353 354 It("returns the error and all warnings", func() { 355 Expect(executeErr).To(MatchError("boom")) 356 Expect(warnings).To(ConsistOf("warning-1", "warning-2", "warning-3", "warning-4")) 357 }) 358 }) 359 }) 360 361 When("GetSharedDomains returns an error", func() { 362 BeforeEach(func() { 363 fakeCloudControllerClient.GetSharedDomainsReturns(nil, ccv2.Warnings{"warning-1", "warning-2"}, errors.New("boom")) 364 }) 365 366 It("returns the error and all warnings", func() { 367 Expect(executeErr).To(MatchError("boom")) 368 Expect(warnings).To(ConsistOf("warning-1", "warning-2")) 369 }) 370 371 It("does not call GetOrganizationPrivateDomains", func() { 372 Expect(fakeCloudControllerClient.GetOrganizationPrivateDomainsCallCount()).To(Equal(0)) 373 }) 374 }) 375 }) 376 377 Describe("GetDomainsByNameAndOrganization", func() { 378 var ( 379 domainNames []string 380 orgGUID string 381 382 domains []Domain 383 warnings Warnings 384 executeErr error 385 ) 386 387 BeforeEach(func() { 388 domainNames = []string{"domain-1", "domain-2", "domain-3"} 389 orgGUID = "some-org-guid" 390 }) 391 392 JustBeforeEach(func() { 393 domains, warnings, executeErr = actor.GetDomainsByNameAndOrganization(domainNames, orgGUID) 394 }) 395 396 When("looking up the shared domains is successful", func() { 397 var sharedDomains []ccv2.Domain 398 399 BeforeEach(func() { 400 sharedDomains = []ccv2.Domain{ 401 {Name: "domain-1", GUID: "shared-domain-1"}, 402 } 403 fakeCloudControllerClient.GetSharedDomainsReturns(sharedDomains, ccv2.Warnings{"shared-warning-1", "shared-warning-2"}, nil) 404 }) 405 406 When("looking up the private domains is successful", func() { 407 var privateDomains []ccv2.Domain 408 409 BeforeEach(func() { 410 privateDomains = []ccv2.Domain{ 411 {Name: "domain-2", GUID: "private-domain-2"}, 412 {Name: "domain-3", GUID: "private-domain-3"}, 413 } 414 fakeCloudControllerClient.GetOrganizationPrivateDomainsReturns(privateDomains, ccv2.Warnings{"private-warning-1", "private-warning-2"}, nil) 415 }) 416 417 It("returns the domains and warnings", func() { 418 Expect(executeErr).ToNot(HaveOccurred()) 419 Expect(warnings).To(ConsistOf("shared-warning-1", "shared-warning-2", "private-warning-1", "private-warning-2")) 420 Expect(domains).To(ConsistOf( 421 Domain{Name: "domain-1", GUID: "shared-domain-1"}, 422 Domain{Name: "domain-2", GUID: "private-domain-2"}, 423 Domain{Name: "domain-3", GUID: "private-domain-3"}, 424 )) 425 426 Expect(fakeCloudControllerClient.GetSharedDomainsCallCount()).To(Equal(1)) 427 Expect(fakeCloudControllerClient.GetSharedDomainsArgsForCall(0)).To(ConsistOf(ccv2.Filter{ 428 Type: constant.NameFilter, 429 Operator: constant.InOperator, 430 Values: domainNames, 431 })) 432 433 Expect(fakeCloudControllerClient.GetOrganizationPrivateDomainsCallCount()).To(Equal(1)) 434 passedOrgGUID, filters := fakeCloudControllerClient.GetOrganizationPrivateDomainsArgsForCall(0) 435 Expect(filters).To(ConsistOf(ccv2.Filter{ 436 Type: constant.NameFilter, 437 Operator: constant.InOperator, 438 Values: domainNames, 439 })) 440 Expect(passedOrgGUID).To(Equal(orgGUID)) 441 }) 442 }) 443 444 When("looking up the private domains errors", func() { 445 var expectedErr error 446 447 BeforeEach(func() { 448 expectedErr = errors.New("foobar") 449 fakeCloudControllerClient.GetOrganizationPrivateDomainsReturns(nil, ccv2.Warnings{"private-warning-1", "private-warning-2"}, expectedErr) 450 }) 451 452 It("returns errors and warnings", func() { 453 Expect(executeErr).To(MatchError(expectedErr)) 454 Expect(warnings).To(ConsistOf("shared-warning-1", "shared-warning-2", "private-warning-1", "private-warning-2")) 455 }) 456 }) 457 }) 458 459 When("no domains are provided", func() { 460 BeforeEach(func() { 461 domainNames = nil 462 }) 463 464 It("immediately returns", func() { 465 Expect(executeErr).ToNot(HaveOccurred()) 466 Expect(warnings).To(BeEmpty()) 467 Expect(domains).To(BeEmpty()) 468 469 Expect(fakeCloudControllerClient.GetSharedDomainsCallCount()).To(Equal(0)) 470 Expect(fakeCloudControllerClient.GetOrganizationPrivateDomainsCallCount()).To(Equal(0)) 471 }) 472 }) 473 474 When("looking up the shared domains errors", func() { 475 var expectedErr error 476 477 BeforeEach(func() { 478 expectedErr = errors.New("foobar") 479 fakeCloudControllerClient.GetSharedDomainsReturns(nil, ccv2.Warnings{"shared-warning-1", "shared-warning-2"}, expectedErr) 480 }) 481 482 It("returns errors and warnings", func() { 483 Expect(executeErr).To(MatchError(expectedErr)) 484 Expect(warnings).To(ConsistOf("shared-warning-1", "shared-warning-2")) 485 }) 486 }) 487 }) 488 489 Describe("GetSharedDomain", func() { 490 When("the shared domain exists", func() { 491 var expectedDomain ccv2.Domain 492 493 BeforeEach(func() { 494 expectedDomain = ccv2.Domain{ 495 GUID: "shared-domain-guid", 496 Name: "shared-domain", 497 } 498 fakeCloudControllerClient.GetSharedDomainReturns(expectedDomain, ccv2.Warnings{"shared domain warning"}, nil) 499 }) 500 501 It("returns the shared domain and all warnings", func() { 502 domain, warnings, err := actor.GetSharedDomain("shared-domain-guid") 503 Expect(err).NotTo(HaveOccurred()) 504 Expect(domain).To(Equal(Domain(expectedDomain))) 505 Expect(warnings).To(ConsistOf("shared domain warning")) 506 507 Expect(fakeCloudControllerClient.GetSharedDomainCallCount()).To(Equal(1)) 508 Expect(fakeCloudControllerClient.GetSharedDomainArgsForCall(0)).To(Equal("shared-domain-guid")) 509 }) 510 511 When("the domain has been looked up multiple times", func() { 512 It("caches the domain", func() { 513 domain, warnings, err := actor.GetSharedDomain("shared-domain-guid") 514 Expect(err).NotTo(HaveOccurred()) 515 Expect(domain).To(Equal(Domain(expectedDomain))) 516 Expect(warnings).To(ConsistOf("shared domain warning")) 517 518 domain, warnings, err = actor.GetSharedDomain("shared-domain-guid") 519 Expect(err).NotTo(HaveOccurred()) 520 Expect(domain).To(Equal(Domain(expectedDomain))) 521 Expect(warnings).To(BeEmpty()) 522 523 Expect(fakeCloudControllerClient.GetSharedDomainCallCount()).To(Equal(1)) 524 }) 525 }) 526 }) 527 528 When("the API returns a not found error", func() { 529 var expectedErr actionerror.DomainNotFoundError 530 531 BeforeEach(func() { 532 expectedErr = actionerror.DomainNotFoundError{GUID: "shared-domain-guid"} 533 fakeCloudControllerClient.GetSharedDomainReturns(ccv2.Domain{}, ccv2.Warnings{"shared domain warning"}, ccerror.ResourceNotFoundError{}) 534 }) 535 536 It("returns a DomainNotFoundError and all warnings", func() { 537 domain, warnings, err := actor.GetSharedDomain("shared-domain-guid") 538 Expect(err).To(MatchError(expectedErr)) 539 Expect(domain).To(Equal(Domain{})) 540 Expect(warnings).To(ConsistOf("shared domain warning")) 541 }) 542 }) 543 544 When("the API returns any other error", func() { 545 var expectedErr error 546 547 BeforeEach(func() { 548 expectedErr = errors.New("shared domain error") 549 fakeCloudControllerClient.GetSharedDomainReturns(ccv2.Domain{}, ccv2.Warnings{"shared domain warning"}, expectedErr) 550 }) 551 552 It("returns the same error and all warnings", func() { 553 domain, warnings, err := actor.GetSharedDomain("shared-domain-guid") 554 Expect(err).To(MatchError(expectedErr)) 555 Expect(domain).To(Equal(Domain{})) 556 Expect(warnings).To(ConsistOf("shared domain warning")) 557 }) 558 }) 559 }) 560 561 Describe("GetPrivateDomain", func() { 562 When("the private domain exists", func() { 563 var expectedDomain ccv2.Domain 564 565 BeforeEach(func() { 566 expectedDomain = ccv2.Domain{ 567 GUID: "private-domain-guid", 568 Name: "private-domain", 569 } 570 fakeCloudControllerClient.GetPrivateDomainReturns(expectedDomain, ccv2.Warnings{"private domain warning"}, nil) 571 }) 572 573 It("returns the private domain and all warnings", func() { 574 domain, warnings, err := actor.GetPrivateDomain("private-domain-guid") 575 Expect(err).NotTo(HaveOccurred()) 576 Expect(domain).To(Equal(Domain(expectedDomain))) 577 Expect(warnings).To(ConsistOf("private domain warning")) 578 579 Expect(fakeCloudControllerClient.GetPrivateDomainCallCount()).To(Equal(1)) 580 Expect(fakeCloudControllerClient.GetPrivateDomainArgsForCall(0)).To(Equal("private-domain-guid")) 581 }) 582 583 When("the domain has been looked up multiple times", func() { 584 It("caches the domain", func() { 585 domain, warnings, err := actor.GetPrivateDomain("private-domain-guid") 586 Expect(err).NotTo(HaveOccurred()) 587 Expect(domain).To(Equal(Domain(expectedDomain))) 588 Expect(warnings).To(ConsistOf("private domain warning")) 589 590 domain, warnings, err = actor.GetPrivateDomain("private-domain-guid") 591 Expect(err).NotTo(HaveOccurred()) 592 Expect(domain).To(Equal(Domain(expectedDomain))) 593 Expect(warnings).To(BeEmpty()) 594 595 Expect(fakeCloudControllerClient.GetPrivateDomainCallCount()).To(Equal(1)) 596 }) 597 }) 598 }) 599 600 When("the API returns a not found error", func() { 601 var expectedErr actionerror.DomainNotFoundError 602 603 BeforeEach(func() { 604 expectedErr = actionerror.DomainNotFoundError{GUID: "private-domain-guid"} 605 fakeCloudControllerClient.GetPrivateDomainReturns(ccv2.Domain{}, ccv2.Warnings{"private domain warning"}, ccerror.ResourceNotFoundError{}) 606 }) 607 608 It("returns a DomainNotFoundError and all warnings", func() { 609 domain, warnings, err := actor.GetPrivateDomain("private-domain-guid") 610 Expect(err).To(MatchError(expectedErr)) 611 Expect(domain).To(Equal(Domain{})) 612 Expect(warnings).To(ConsistOf("private domain warning")) 613 }) 614 }) 615 616 When("the API returns any other error", func() { 617 var expectedErr error 618 619 BeforeEach(func() { 620 expectedErr = errors.New("private domain error") 621 fakeCloudControllerClient.GetPrivateDomainReturns(ccv2.Domain{}, ccv2.Warnings{"private domain warning"}, expectedErr) 622 }) 623 624 It("returns the same error and all warnings", func() { 625 domain, warnings, err := actor.GetPrivateDomain("private-domain-guid") 626 Expect(err).To(MatchError(expectedErr)) 627 Expect(domain).To(Equal(Domain{})) 628 Expect(warnings).To(ConsistOf("private domain warning")) 629 }) 630 }) 631 }) 632 633 Describe("GetOrganizationDomains", func() { 634 When("the organization has both shared and private domains", func() { 635 BeforeEach(func() { 636 sharedDomain := ccv2.Domain{ 637 Name: "some-shared-domain", 638 } 639 privateDomain := ccv2.Domain{ 640 Name: "some-private-domain", 641 } 642 otherPrivateDomain := ccv2.Domain{ 643 Name: "some-other-private-domain", 644 } 645 646 fakeCloudControllerClient.GetSharedDomainsReturns([]ccv2.Domain{sharedDomain}, ccv2.Warnings{"shared domains warning"}, nil) 647 fakeCloudControllerClient.GetOrganizationPrivateDomainsReturns([]ccv2.Domain{privateDomain, otherPrivateDomain}, ccv2.Warnings{"private domains warning"}, nil) 648 }) 649 650 It("returns a concatenated slice with private then shared domains", func() { 651 domains, warnings, err := actor.GetOrganizationDomains("some-org-guid") 652 Expect(err).NotTo(HaveOccurred()) 653 Expect(domains).To(Equal([]Domain{ 654 {Name: "some-shared-domain"}, 655 {Name: "some-private-domain"}, 656 {Name: "some-other-private-domain"}, 657 })) 658 Expect(warnings).To(ConsistOf("shared domains warning", "private domains warning")) 659 660 Expect(fakeCloudControllerClient.GetSharedDomainsCallCount()).To(Equal(1)) 661 662 Expect(fakeCloudControllerClient.GetOrganizationPrivateDomainsCallCount()).To(Equal(1)) 663 orgGUID, filters := fakeCloudControllerClient.GetOrganizationPrivateDomainsArgsForCall(0) 664 Expect(orgGUID).To(Equal("some-org-guid")) 665 Expect(filters).To(BeEmpty()) 666 }) 667 }) 668 669 When("get shared domains returns an error", func() { 670 var expectedErr error 671 672 BeforeEach(func() { 673 expectedErr = errors.New("shared domains error") 674 fakeCloudControllerClient.GetSharedDomainsReturns([]ccv2.Domain{}, ccv2.Warnings{"shared domains warning"}, expectedErr) 675 }) 676 677 It("returns that error", func() { 678 domains, warnings, err := actor.GetOrganizationDomains("some-org-guid") 679 Expect(err).To(MatchError(expectedErr)) 680 Expect(domains).To(Equal([]Domain{})) 681 Expect(warnings).To(ConsistOf("shared domains warning")) 682 }) 683 }) 684 685 When("get organization private domains returns an error", func() { 686 var expectedErr error 687 688 BeforeEach(func() { 689 expectedErr = errors.New("private domains error") 690 fakeCloudControllerClient.GetOrganizationPrivateDomainsReturns([]ccv2.Domain{}, ccv2.Warnings{"private domains warning"}, expectedErr) 691 }) 692 693 It("returns that error", func() { 694 domains, warnings, err := actor.GetOrganizationDomains("some-org-guid") 695 Expect(err).To(MatchError(expectedErr)) 696 Expect(domains).To(Equal([]Domain{})) 697 Expect(warnings).To(ConsistOf("private domains warning")) 698 }) 699 }) 700 }) 701 })