github.com/asifdxtreme/cli@v6.1.3-0.20150123051144-9ead8700b4ae+incompatible/cf/api/fakes/fake_domain_repo.go (about) 1 package fakes 2 3 import ( 4 "github.com/cloudfoundry/cli/cf/errors" 5 "github.com/cloudfoundry/cli/cf/models" 6 ) 7 8 type FakeDomainRepository struct { 9 ListDomainsForOrgGuid string 10 ListDomainsForOrgDomains []models.DomainFields 11 ListDomainsForOrgApiResponse error 12 13 FindByNameInOrgName string 14 FindByNameInOrgGuid string 15 FindByNameInOrgDomain models.DomainFields 16 FindByNameInOrgApiResponse error 17 18 FindByNameName string 19 FindByNameDomain models.DomainFields 20 FindByNameNotFound bool 21 FindByNameErr bool 22 23 CreateDomainName string 24 CreateDomainOwningOrgGuid string 25 26 CreateSharedDomainName string 27 28 DeleteDomainGuid string 29 DeleteApiResponse error 30 31 DeleteSharedDomainGuid string 32 DeleteSharedApiResponse error 33 } 34 35 func (repo *FakeDomainRepository) ListDomainsForOrg(orgGuid string, cb func(models.DomainFields) bool) error { 36 repo.ListDomainsForOrgGuid = orgGuid 37 for _, d := range repo.ListDomainsForOrgDomains { 38 cb(d) 39 } 40 return repo.ListDomainsForOrgApiResponse 41 } 42 43 func (repo *FakeDomainRepository) FindByName(name string) (domain models.DomainFields, apiErr error) { 44 repo.FindByNameName = name 45 domain = repo.FindByNameDomain 46 47 if repo.FindByNameNotFound { 48 apiErr = errors.NewModelNotFoundError("Domain", name) 49 } 50 if repo.FindByNameErr { 51 apiErr = errors.New("Error finding domain") 52 } 53 54 return 55 } 56 57 func (repo *FakeDomainRepository) FindByNameInOrg(name string, owningOrgGuid string) (domain models.DomainFields, apiErr error) { 58 repo.FindByNameInOrgName = name 59 repo.FindByNameInOrgGuid = owningOrgGuid 60 domain = repo.FindByNameInOrgDomain 61 apiErr = repo.FindByNameInOrgApiResponse 62 return 63 } 64 65 func (repo *FakeDomainRepository) Create(domainName string, owningOrgGuid string) (createdDomain models.DomainFields, apiErr error) { 66 repo.CreateDomainName = domainName 67 repo.CreateDomainOwningOrgGuid = owningOrgGuid 68 return 69 } 70 71 func (repo *FakeDomainRepository) CreateSharedDomain(domainName string) (apiErr error) { 72 repo.CreateSharedDomainName = domainName 73 return 74 } 75 76 func (repo *FakeDomainRepository) Delete(domainGuid string) (apiErr error) { 77 repo.DeleteDomainGuid = domainGuid 78 apiErr = repo.DeleteApiResponse 79 return 80 } 81 82 func (repo *FakeDomainRepository) DeleteSharedDomain(domainGuid string) (apiErr error) { 83 repo.DeleteSharedDomainGuid = domainGuid 84 apiErr = repo.DeleteSharedApiResponse 85 return 86 } 87 88 func (repo *FakeDomainRepository) FirstOrDefault(orgGuid string, name *string) (domain models.DomainFields, error error) { 89 if name == nil { 90 domain, error = repo.defaultDomain(orgGuid) 91 } else { 92 domain, error = repo.FindByNameInOrg(*name, orgGuid) 93 } 94 return 95 } 96 97 func (repo *FakeDomainRepository) defaultDomain(orgGuid string) (models.DomainFields, error) { 98 var foundDomain *models.DomainFields 99 repo.ListDomainsForOrg(orgGuid, func(domain models.DomainFields) bool { 100 foundDomain = &domain 101 return !domain.Shared 102 }) 103 104 if foundDomain == nil { 105 return models.DomainFields{}, errors.New("Could not find a default domain") 106 } 107 108 return *foundDomain, nil 109 }