github.com/asifdxtreme/cli@v6.1.3-0.20150123051144-9ead8700b4ae+incompatible/cf/api/fakes/fake_space_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 FakeSpaceRepository struct {
     9  	CurrentSpace models.Space
    10  
    11  	Spaces []models.Space
    12  
    13  	FindByNameName     string
    14  	FindByNameSpace    models.Space
    15  	FindByNameErr      bool
    16  	FindByNameNotFound bool
    17  
    18  	FindByNameInOrgName    string
    19  	FindByNameInOrgOrgGuid string
    20  	FindByNameInOrgSpace   models.Space
    21  	FindByNameInOrgError   error
    22  
    23  	SummarySpace models.Space
    24  
    25  	CreateSpaceName           string
    26  	CreateSpaceOrgGuid        string
    27  	CreateSpaceSpaceQuotaGuid string
    28  	CreateSpaceExists         bool
    29  	CreateSpaceSpace          models.Space
    30  
    31  	RenameSpaceGuid string
    32  	RenameNewName   string
    33  
    34  	DeletedSpaceGuid string
    35  }
    36  
    37  func (repo FakeSpaceRepository) GetCurrentSpace() (space models.Space) {
    38  	return repo.CurrentSpace
    39  }
    40  
    41  func (repo FakeSpaceRepository) ListSpaces(callback func(models.Space) bool) error {
    42  	for _, space := range repo.Spaces {
    43  		if !callback(space) {
    44  			break
    45  		}
    46  	}
    47  	return nil
    48  }
    49  
    50  func (repo *FakeSpaceRepository) FindByName(name string) (space models.Space, apiErr error) {
    51  	repo.FindByNameName = name
    52  
    53  	var foundSpace bool = false
    54  	for _, someSpace := range repo.Spaces {
    55  		if name == someSpace.Name {
    56  			foundSpace = true
    57  			space = someSpace
    58  			break
    59  		}
    60  	}
    61  
    62  	if repo.FindByNameErr || !foundSpace {
    63  		apiErr = errors.New("Error finding space by name.")
    64  	}
    65  
    66  	if repo.FindByNameNotFound {
    67  		apiErr = errors.NewModelNotFoundError("Space", name)
    68  	}
    69  
    70  	return
    71  }
    72  
    73  func (repo *FakeSpaceRepository) FindByNameInOrg(name, orgGuid string) (space models.Space, apiErr error) {
    74  	repo.FindByNameInOrgName = name
    75  	repo.FindByNameInOrgOrgGuid = orgGuid
    76  	space = repo.FindByNameInOrgSpace
    77  	apiErr = repo.FindByNameInOrgError
    78  	return
    79  }
    80  
    81  func (repo *FakeSpaceRepository) GetSummary() (space models.Space, apiErr error) {
    82  	space = repo.SummarySpace
    83  	return
    84  }
    85  
    86  func (repo *FakeSpaceRepository) Create(name, orgGuid, spaceQuotaGuid string) (space models.Space, apiErr error) {
    87  	if repo.CreateSpaceExists {
    88  		apiErr = errors.NewHttpError(400, errors.SPACE_EXISTS, "Space already exists")
    89  		return
    90  	}
    91  	repo.CreateSpaceName = name
    92  	repo.CreateSpaceOrgGuid = orgGuid
    93  	repo.CreateSpaceSpaceQuotaGuid = spaceQuotaGuid
    94  	space = repo.CreateSpaceSpace
    95  	return
    96  }
    97  
    98  func (repo *FakeSpaceRepository) Rename(spaceGuid, newName string) (apiErr error) {
    99  	repo.RenameSpaceGuid = spaceGuid
   100  	repo.RenameNewName = newName
   101  	return
   102  }
   103  
   104  func (repo *FakeSpaceRepository) Delete(spaceGuid string) (apiErr error) {
   105  	repo.DeletedSpaceGuid = spaceGuid
   106  	return
   107  }