func (repo CloudControllerDomainRepository) findAllWithPath(path string) (domains []cf.Domain, apiResponse net.ApiResponse) { domainResources := new(PaginatedDomainResources) apiResponse = repo.gateway.GetResource(path, repo.config.AccessToken, domainResources) if apiResponse.IsNotSuccessful() { return } for _, r := range domainResources.Resources { domain := cf.Domain{ Name: r.Entity.Name, Guid: r.Metadata.Guid, } domain.Shared = r.Entity.OwningOrganizationGuid == "" for _, space := range r.Entity.Spaces { domain.Spaces = append(domain.Spaces, cf.Space{ Name: space.Entity.Name, Guid: space.Metadata.Guid, }) } domains = append(domains, domain) } return }
func TestListDomains(t *testing.T) { orgFields := cf.OrganizationFields{} orgFields.Name = "my-org" orgFields.Guid = "my-org-guid" reqFactory := &testreq.FakeReqFactory{LoginSuccess: true, TargetedOrgSuccess: true, OrganizationFields: orgFields} domain1 := cf.Domain{} domain1.Shared = true domain1.Name = "Domain1" domain2 := cf.Domain{} domain2.Shared = false domain2.Name = "Domain2" space1 := cf.SpaceFields{} space1.Name = "my-space" space2 := cf.SpaceFields{} space2.Name = "my-space-2" domain2.Spaces = []cf.SpaceFields{space1, space2} domain3 := cf.Domain{} domain3.Shared = false domain3.Name = "Domain3" domainRepo := &testapi.FakeDomainRepository{ ListDomainsForOrgDomains: []cf.Domain{domain1, domain2, domain3}, } ui := callListDomains(t, []string{}, reqFactory, domainRepo) assert.Equal(t, domainRepo.ListDomainsForOrgDomainsGuid, "my-org-guid") testassert.SliceContains(t, ui.Outputs, testassert.Lines{ {"Getting domains in org", "my-org", "my-user"}, {"name", "status", "spaces"}, {"Domain1", "shared"}, {"Domain2", "owned", "my-space", "my-space-2"}, {"Domain3", "reserved"}, }) }