github.com/loggregator/cli@v6.33.1-0.20180224010324-82334f081791+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  			Context("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  			Context("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  			Context("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  			Context("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  			Context("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  			Context("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  			Context("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  			Context("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  			Context("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  		Context("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  		Context("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  		Context("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  		Context("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(Equal(Warnings{"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  		Context("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  		Context("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("GetDomainsByNameAndOrganization", func() {
   275  		var (
   276  			domainNames []string
   277  			orgGUID     string
   278  
   279  			domains    []Domain
   280  			warnings   Warnings
   281  			executeErr error
   282  		)
   283  
   284  		BeforeEach(func() {
   285  			domainNames = []string{"domain-1", "domain-2", "domain-3"}
   286  			orgGUID = "some-org-guid"
   287  		})
   288  
   289  		JustBeforeEach(func() {
   290  			domains, warnings, executeErr = actor.GetDomainsByNameAndOrganization(domainNames, orgGUID)
   291  		})
   292  
   293  		Context("when looking up the shared domains is successful", func() {
   294  			var sharedDomains []ccv2.Domain
   295  
   296  			BeforeEach(func() {
   297  				sharedDomains = []ccv2.Domain{
   298  					{Name: "domain-1", GUID: "shared-domain-1"},
   299  				}
   300  				fakeCloudControllerClient.GetSharedDomainsReturns(sharedDomains, ccv2.Warnings{"shared-warning-1", "shared-warning-2"}, nil)
   301  			})
   302  
   303  			Context("when looking up the private domains is successful", func() {
   304  				var privateDomains []ccv2.Domain
   305  
   306  				BeforeEach(func() {
   307  					privateDomains = []ccv2.Domain{
   308  						{Name: "domain-2", GUID: "private-domain-2"},
   309  						{Name: "domain-3", GUID: "private-domain-3"},
   310  					}
   311  					fakeCloudControllerClient.GetOrganizationPrivateDomainsReturns(privateDomains, ccv2.Warnings{"private-warning-1", "private-warning-2"}, nil)
   312  				})
   313  
   314  				It("returns the domains and warnings", func() {
   315  					Expect(executeErr).ToNot(HaveOccurred())
   316  					Expect(warnings).To(ConsistOf("shared-warning-1", "shared-warning-2", "private-warning-1", "private-warning-2"))
   317  					Expect(domains).To(ConsistOf(
   318  						Domain{Name: "domain-1", GUID: "shared-domain-1"},
   319  						Domain{Name: "domain-2", GUID: "private-domain-2"},
   320  						Domain{Name: "domain-3", GUID: "private-domain-3"},
   321  					))
   322  
   323  					Expect(fakeCloudControllerClient.GetSharedDomainsCallCount()).To(Equal(1))
   324  					Expect(fakeCloudControllerClient.GetSharedDomainsArgsForCall(0)).To(ConsistOf(ccv2.Filter{
   325  						Type:     constant.NameFilter,
   326  						Operator: constant.InOperator,
   327  						Values:   domainNames,
   328  					}))
   329  
   330  					Expect(fakeCloudControllerClient.GetOrganizationPrivateDomainsCallCount()).To(Equal(1))
   331  					passedOrgGUID, filters := fakeCloudControllerClient.GetOrganizationPrivateDomainsArgsForCall(0)
   332  					Expect(filters).To(ConsistOf(ccv2.Filter{
   333  						Type:     constant.NameFilter,
   334  						Operator: constant.InOperator,
   335  						Values:   domainNames,
   336  					}))
   337  					Expect(passedOrgGUID).To(Equal(orgGUID))
   338  				})
   339  			})
   340  
   341  			Context("when looking up the private domains errors", func() {
   342  				var expectedErr error
   343  
   344  				BeforeEach(func() {
   345  					expectedErr = errors.New("foobar")
   346  					fakeCloudControllerClient.GetOrganizationPrivateDomainsReturns(nil, ccv2.Warnings{"private-warning-1", "private-warning-2"}, expectedErr)
   347  				})
   348  
   349  				It("returns errors and warnings", func() {
   350  					Expect(executeErr).To(MatchError(expectedErr))
   351  					Expect(warnings).To(ConsistOf("shared-warning-1", "shared-warning-2", "private-warning-1", "private-warning-2"))
   352  				})
   353  			})
   354  		})
   355  
   356  		Context("when no domains are provided", func() {
   357  			BeforeEach(func() {
   358  				domainNames = nil
   359  			})
   360  
   361  			It("immediately returns", func() {
   362  				Expect(executeErr).ToNot(HaveOccurred())
   363  				Expect(warnings).To(BeEmpty())
   364  				Expect(domains).To(BeEmpty())
   365  
   366  				Expect(fakeCloudControllerClient.GetSharedDomainsCallCount()).To(Equal(0))
   367  				Expect(fakeCloudControllerClient.GetOrganizationPrivateDomainsCallCount()).To(Equal(0))
   368  			})
   369  		})
   370  
   371  		Context("when looking up the shared domains errors", func() {
   372  			var expectedErr error
   373  
   374  			BeforeEach(func() {
   375  				expectedErr = errors.New("foobar")
   376  				fakeCloudControllerClient.GetSharedDomainsReturns(nil, ccv2.Warnings{"shared-warning-1", "shared-warning-2"}, expectedErr)
   377  			})
   378  
   379  			It("returns errors and warnings", func() {
   380  				Expect(executeErr).To(MatchError(expectedErr))
   381  				Expect(warnings).To(ConsistOf("shared-warning-1", "shared-warning-2"))
   382  			})
   383  		})
   384  	})
   385  
   386  	Describe("GetSharedDomain", func() {
   387  		Context("when the shared domain exists", func() {
   388  			var expectedDomain ccv2.Domain
   389  
   390  			BeforeEach(func() {
   391  				expectedDomain = ccv2.Domain{
   392  					GUID: "shared-domain-guid",
   393  					Name: "shared-domain",
   394  				}
   395  				fakeCloudControllerClient.GetSharedDomainReturns(expectedDomain, ccv2.Warnings{"shared domain warning"}, nil)
   396  			})
   397  
   398  			It("returns the shared domain and all warnings", func() {
   399  				domain, warnings, err := actor.GetSharedDomain("shared-domain-guid")
   400  				Expect(err).NotTo(HaveOccurred())
   401  				Expect(domain).To(Equal(Domain(expectedDomain)))
   402  				Expect(warnings).To(ConsistOf("shared domain warning"))
   403  
   404  				Expect(fakeCloudControllerClient.GetSharedDomainCallCount()).To(Equal(1))
   405  				Expect(fakeCloudControllerClient.GetSharedDomainArgsForCall(0)).To(Equal("shared-domain-guid"))
   406  			})
   407  
   408  			Context("when the domain has been looked up multiple times", func() {
   409  				It("caches the domain", func() {
   410  					domain, warnings, err := actor.GetSharedDomain("shared-domain-guid")
   411  					Expect(err).NotTo(HaveOccurred())
   412  					Expect(domain).To(Equal(Domain(expectedDomain)))
   413  					Expect(warnings).To(ConsistOf("shared domain warning"))
   414  
   415  					domain, warnings, err = actor.GetSharedDomain("shared-domain-guid")
   416  					Expect(err).NotTo(HaveOccurred())
   417  					Expect(domain).To(Equal(Domain(expectedDomain)))
   418  					Expect(warnings).To(BeEmpty())
   419  
   420  					Expect(fakeCloudControllerClient.GetSharedDomainCallCount()).To(Equal(1))
   421  				})
   422  			})
   423  		})
   424  
   425  		Context("when the API returns a not found error", func() {
   426  			var expectedErr actionerror.DomainNotFoundError
   427  
   428  			BeforeEach(func() {
   429  				expectedErr = actionerror.DomainNotFoundError{GUID: "shared-domain-guid"}
   430  				fakeCloudControllerClient.GetSharedDomainReturns(ccv2.Domain{}, ccv2.Warnings{"shared domain warning"}, ccerror.ResourceNotFoundError{})
   431  			})
   432  
   433  			It("returns a DomainNotFoundError and all warnings", func() {
   434  				domain, warnings, err := actor.GetSharedDomain("shared-domain-guid")
   435  				Expect(err).To(MatchError(expectedErr))
   436  				Expect(domain).To(Equal(Domain{}))
   437  				Expect(warnings).To(ConsistOf("shared domain warning"))
   438  			})
   439  		})
   440  
   441  		Context("when the API returns any other error", func() {
   442  			var expectedErr error
   443  
   444  			BeforeEach(func() {
   445  				expectedErr = errors.New("shared domain error")
   446  				fakeCloudControllerClient.GetSharedDomainReturns(ccv2.Domain{}, ccv2.Warnings{"shared domain warning"}, expectedErr)
   447  			})
   448  
   449  			It("returns the same error and all warnings", func() {
   450  				domain, warnings, err := actor.GetSharedDomain("shared-domain-guid")
   451  				Expect(err).To(MatchError(expectedErr))
   452  				Expect(domain).To(Equal(Domain{}))
   453  				Expect(warnings).To(ConsistOf("shared domain warning"))
   454  			})
   455  		})
   456  	})
   457  
   458  	Describe("GetPrivateDomain", func() {
   459  		Context("when the private domain exists", func() {
   460  			var expectedDomain ccv2.Domain
   461  
   462  			BeforeEach(func() {
   463  				expectedDomain = ccv2.Domain{
   464  					GUID: "private-domain-guid",
   465  					Name: "private-domain",
   466  				}
   467  				fakeCloudControllerClient.GetPrivateDomainReturns(expectedDomain, ccv2.Warnings{"private domain warning"}, nil)
   468  			})
   469  
   470  			It("returns the private domain and all warnings", func() {
   471  				domain, warnings, err := actor.GetPrivateDomain("private-domain-guid")
   472  				Expect(err).NotTo(HaveOccurred())
   473  				Expect(domain).To(Equal(Domain(expectedDomain)))
   474  				Expect(warnings).To(ConsistOf("private domain warning"))
   475  
   476  				Expect(fakeCloudControllerClient.GetPrivateDomainCallCount()).To(Equal(1))
   477  				Expect(fakeCloudControllerClient.GetPrivateDomainArgsForCall(0)).To(Equal("private-domain-guid"))
   478  			})
   479  
   480  			Context("when the domain has been looked up multiple times", func() {
   481  				It("caches the domain", func() {
   482  					domain, warnings, err := actor.GetPrivateDomain("private-domain-guid")
   483  					Expect(err).NotTo(HaveOccurred())
   484  					Expect(domain).To(Equal(Domain(expectedDomain)))
   485  					Expect(warnings).To(ConsistOf("private domain warning"))
   486  
   487  					domain, warnings, err = actor.GetPrivateDomain("private-domain-guid")
   488  					Expect(err).NotTo(HaveOccurred())
   489  					Expect(domain).To(Equal(Domain(expectedDomain)))
   490  					Expect(warnings).To(BeEmpty())
   491  
   492  					Expect(fakeCloudControllerClient.GetPrivateDomainCallCount()).To(Equal(1))
   493  				})
   494  			})
   495  		})
   496  
   497  		Context("when the API returns a not found error", func() {
   498  			var expectedErr actionerror.DomainNotFoundError
   499  
   500  			BeforeEach(func() {
   501  				expectedErr = actionerror.DomainNotFoundError{GUID: "private-domain-guid"}
   502  				fakeCloudControllerClient.GetPrivateDomainReturns(ccv2.Domain{}, ccv2.Warnings{"private domain warning"}, ccerror.ResourceNotFoundError{})
   503  			})
   504  
   505  			It("returns a DomainNotFoundError and all warnings", func() {
   506  				domain, warnings, err := actor.GetPrivateDomain("private-domain-guid")
   507  				Expect(err).To(MatchError(expectedErr))
   508  				Expect(domain).To(Equal(Domain{}))
   509  				Expect(warnings).To(ConsistOf("private domain warning"))
   510  			})
   511  		})
   512  
   513  		Context("when the API returns any other error", func() {
   514  			var expectedErr error
   515  
   516  			BeforeEach(func() {
   517  				expectedErr = errors.New("private domain error")
   518  				fakeCloudControllerClient.GetPrivateDomainReturns(ccv2.Domain{}, ccv2.Warnings{"private domain warning"}, expectedErr)
   519  			})
   520  
   521  			It("returns the same error and all warnings", func() {
   522  				domain, warnings, err := actor.GetPrivateDomain("private-domain-guid")
   523  				Expect(err).To(MatchError(expectedErr))
   524  				Expect(domain).To(Equal(Domain{}))
   525  				Expect(warnings).To(ConsistOf("private domain warning"))
   526  			})
   527  		})
   528  	})
   529  
   530  	Describe("GetOrganizationDomains", func() {
   531  		Context("when the organization has both shared and private domains", func() {
   532  			BeforeEach(func() {
   533  				sharedDomain := ccv2.Domain{
   534  					Name: "some-shared-domain",
   535  				}
   536  				privateDomain := ccv2.Domain{
   537  					Name: "some-private-domain",
   538  				}
   539  				otherPrivateDomain := ccv2.Domain{
   540  					Name: "some-other-private-domain",
   541  				}
   542  
   543  				fakeCloudControllerClient.GetSharedDomainsReturns([]ccv2.Domain{sharedDomain}, ccv2.Warnings{"shared domains warning"}, nil)
   544  				fakeCloudControllerClient.GetOrganizationPrivateDomainsReturns([]ccv2.Domain{privateDomain, otherPrivateDomain}, ccv2.Warnings{"private domains warning"}, nil)
   545  			})
   546  
   547  			It("returns a concatenated slice with private then shared domains", func() {
   548  				domains, warnings, err := actor.GetOrganizationDomains("some-org-guid")
   549  				Expect(err).NotTo(HaveOccurred())
   550  				Expect(domains).To(Equal([]Domain{
   551  					{Name: "some-shared-domain"},
   552  					{Name: "some-private-domain"},
   553  					{Name: "some-other-private-domain"},
   554  				}))
   555  				Expect(warnings).To(ConsistOf("shared domains warning", "private domains warning"))
   556  
   557  				Expect(fakeCloudControllerClient.GetSharedDomainsCallCount()).To(Equal(1))
   558  
   559  				Expect(fakeCloudControllerClient.GetOrganizationPrivateDomainsCallCount()).To(Equal(1))
   560  				orgGUID, filters := fakeCloudControllerClient.GetOrganizationPrivateDomainsArgsForCall(0)
   561  				Expect(orgGUID).To(Equal("some-org-guid"))
   562  				Expect(filters).To(BeEmpty())
   563  			})
   564  		})
   565  
   566  		Context("when get shared domains returns an error", func() {
   567  			var expectedErr error
   568  
   569  			BeforeEach(func() {
   570  				expectedErr = errors.New("shared domains error")
   571  				fakeCloudControllerClient.GetSharedDomainsReturns([]ccv2.Domain{}, ccv2.Warnings{"shared domains warning"}, expectedErr)
   572  			})
   573  
   574  			It("returns that error", func() {
   575  				domains, warnings, err := actor.GetOrganizationDomains("some-org-guid")
   576  				Expect(err).To(MatchError(expectedErr))
   577  				Expect(domains).To(Equal([]Domain{}))
   578  				Expect(warnings).To(ConsistOf("shared domains warning"))
   579  			})
   580  		})
   581  
   582  		Context("when get organization private domains returns an error", func() {
   583  			var expectedErr error
   584  
   585  			BeforeEach(func() {
   586  				expectedErr = errors.New("private domains error")
   587  				fakeCloudControllerClient.GetOrganizationPrivateDomainsReturns([]ccv2.Domain{}, ccv2.Warnings{"private domains warning"}, expectedErr)
   588  			})
   589  
   590  			It("returns that error", func() {
   591  				domains, warnings, err := actor.GetOrganizationDomains("some-org-guid")
   592  				Expect(err).To(MatchError(expectedErr))
   593  				Expect(domains).To(Equal([]Domain{}))
   594  				Expect(warnings).To(ConsistOf("private domains warning"))
   595  			})
   596  		})
   597  	})
   598  })