github.com/rakutentech/cli@v6.12.5-0.20151006231303-24468b65536e+incompatible/cf/api/fakes/fake_service_repo.go (about)

     1  package fakes
     2  
     3  import (
     4  	"strings"
     5  
     6  	"github.com/cloudfoundry/cli/cf/api/resources"
     7  	"github.com/cloudfoundry/cli/cf/errors"
     8  	"github.com/cloudfoundry/cli/cf/models"
     9  	"github.com/cloudfoundry/cli/generic"
    10  )
    11  
    12  type FakeServiceRepo struct {
    13  	GetServiceOfferingByGuidReturns struct {
    14  		ServiceOffering models.ServiceOffering
    15  		Error           error
    16  	}
    17  
    18  	GetAllServiceOfferingsReturns struct {
    19  		ServiceOfferings []models.ServiceOffering
    20  		Error            error
    21  	}
    22  
    23  	GetServiceOfferingsForSpaceReturns struct {
    24  		ServiceOfferings []models.ServiceOffering
    25  		Error            error
    26  	}
    27  	GetServiceOfferingsForSpaceArgs struct {
    28  		SpaceGuid string
    29  	}
    30  
    31  	FindServiceOfferingsForSpaceByLabelArgs struct {
    32  		SpaceGuid string
    33  		Name      string
    34  	}
    35  
    36  	FindServiceOfferingsForSpaceByLabelReturns struct {
    37  		ServiceOfferings models.ServiceOfferings
    38  		Error            error
    39  	}
    40  
    41  	CreateServiceInstanceArgs struct {
    42  		Name     string
    43  		PlanGuid string
    44  		Params   map[string]interface{}
    45  		Tags     []string
    46  	}
    47  	CreateServiceInstanceReturns struct {
    48  		Error error
    49  	}
    50  
    51  	UpdateServiceInstanceArgs struct {
    52  		InstanceGuid string
    53  		PlanGuid     string
    54  		Params       map[string]interface{}
    55  		Tags         []string
    56  	}
    57  
    58  	UpdateServiceInstanceReturnsErr bool
    59  
    60  	FindInstanceByNameName            string
    61  	FindInstanceByNameServiceInstance models.ServiceInstance
    62  	FindInstanceByNameErr             bool
    63  	FindInstanceByNameNotFound        bool
    64  
    65  	FindInstanceByNameMap generic.Map
    66  
    67  	DeleteServiceServiceInstance models.ServiceInstance
    68  
    69  	RenameServiceServiceInstance models.ServiceInstance
    70  	RenameServiceNewName         string
    71  
    72  	PurgedServiceOffering           models.ServiceOffering
    73  	PurgeServiceOfferingCalled      bool
    74  	PurgeServiceOfferingApiResponse error
    75  
    76  	FindServiceOfferingByLabelAndProviderName            string
    77  	FindServiceOfferingByLabelAndProviderProvider        string
    78  	FindServiceOfferingByLabelAndProviderServiceOffering models.ServiceOffering
    79  	FindServiceOfferingByLabelAndProviderApiResponse     error
    80  	FindServiceOfferingByLabelAndProviderCalled          bool
    81  
    82  	FindServiceOfferingsByLabelName             string
    83  	FindServiceOfferingsByLabelServiceOfferings models.ServiceOfferings
    84  	FindServiceOfferingsByLabelApiResponse      error
    85  	FindServiceOfferingsByLabelCalled           bool
    86  
    87  	ListServicesFromManyBrokersReturns map[string][]models.ServiceOffering
    88  	ListServicesFromManyBrokersErr     error
    89  
    90  	ListServicesFromBrokerReturns map[string][]models.ServiceOffering
    91  	ListServicesFromBrokerErr     error
    92  
    93  	V1ServicePlanDescription                resources.ServicePlanDescription
    94  	V2ServicePlanDescription                resources.ServicePlanDescription
    95  	FindServicePlanByDescriptionArguments   []resources.ServicePlanDescription
    96  	FindServicePlanByDescriptionResultGuids []string
    97  	FindServicePlanByDescriptionResponses   []error
    98  	findServicePlanByDescriptionCallCount   int
    99  
   100  	ServiceInstanceCountForServicePlan int
   101  	ServiceInstanceCountApiResponse    error
   102  
   103  	V1GuidToMigrate                           string
   104  	V2GuidToMigrate                           string
   105  	MigrateServicePlanFromV1ToV2Called        bool
   106  	MigrateServicePlanFromV1ToV2ReturnedCount int
   107  	MigrateServicePlanFromV1ToV2Response      error
   108  }
   109  
   110  func (repo *FakeServiceRepo) GetServiceOfferingByGuid(guid string) (models.ServiceOffering, error) {
   111  	return repo.GetServiceOfferingByGuidReturns.ServiceOffering, repo.GetServiceOfferingByGuidReturns.Error
   112  }
   113  
   114  func (repo *FakeServiceRepo) GetAllServiceOfferings() (models.ServiceOfferings, error) {
   115  	return repo.GetAllServiceOfferingsReturns.ServiceOfferings, repo.GetAllServiceOfferingsReturns.Error
   116  }
   117  
   118  func (repo *FakeServiceRepo) GetServiceOfferingsForSpace(spaceGuid string) (models.ServiceOfferings, error) {
   119  	repo.GetServiceOfferingsForSpaceArgs.SpaceGuid = spaceGuid
   120  	return repo.GetServiceOfferingsForSpaceReturns.ServiceOfferings, repo.GetServiceOfferingsForSpaceReturns.Error
   121  }
   122  
   123  func (repo *FakeServiceRepo) FindServiceOfferingsForSpaceByLabel(spaceGuid, name string) (models.ServiceOfferings, error) {
   124  	repo.FindServiceOfferingsForSpaceByLabelArgs.Name = name
   125  	repo.FindServiceOfferingsForSpaceByLabelArgs.SpaceGuid = spaceGuid
   126  	return repo.FindServiceOfferingsForSpaceByLabelReturns.ServiceOfferings, repo.FindServiceOfferingsForSpaceByLabelReturns.Error
   127  }
   128  
   129  func (repo *FakeServiceRepo) PurgeServiceOffering(offering models.ServiceOffering) (apiErr error) {
   130  	repo.PurgedServiceOffering = offering
   131  	repo.PurgeServiceOfferingCalled = true
   132  	return repo.PurgeServiceOfferingApiResponse
   133  }
   134  
   135  func (repo *FakeServiceRepo) FindServiceOfferingByLabelAndProvider(name, provider string) (offering models.ServiceOffering, apiErr error) {
   136  	repo.FindServiceOfferingByLabelAndProviderCalled = true
   137  	repo.FindServiceOfferingByLabelAndProviderName = name
   138  	repo.FindServiceOfferingByLabelAndProviderProvider = provider
   139  	apiErr = repo.FindServiceOfferingByLabelAndProviderApiResponse
   140  	offering = repo.FindServiceOfferingByLabelAndProviderServiceOffering
   141  	return
   142  }
   143  
   144  func (repo *FakeServiceRepo) FindServiceOfferingsByLabel(name string) (offerings models.ServiceOfferings, apiErr error) {
   145  	repo.FindServiceOfferingsByLabelCalled = true
   146  	repo.FindServiceOfferingsByLabelName = name
   147  	apiErr = repo.FindServiceOfferingsByLabelApiResponse
   148  	offerings = repo.FindServiceOfferingsByLabelServiceOfferings
   149  	return
   150  }
   151  
   152  func (repo *FakeServiceRepo) CreateServiceInstance(name, planGuid string, params map[string]interface{}, tags []string) (apiErr error) {
   153  	repo.CreateServiceInstanceArgs.Name = name
   154  	repo.CreateServiceInstanceArgs.PlanGuid = planGuid
   155  	repo.CreateServiceInstanceArgs.Params = params
   156  	repo.CreateServiceInstanceArgs.Tags = tags
   157  
   158  	return repo.CreateServiceInstanceReturns.Error
   159  }
   160  
   161  func (repo *FakeServiceRepo) UpdateServiceInstance(instanceGuid, planGuid string, params map[string]interface{}, tags []string) (apiErr error) {
   162  
   163  	if repo.UpdateServiceInstanceReturnsErr {
   164  		apiErr = errors.New("Error updating service instance")
   165  	} else {
   166  		repo.UpdateServiceInstanceArgs.InstanceGuid = instanceGuid
   167  		repo.UpdateServiceInstanceArgs.PlanGuid = planGuid
   168  		repo.UpdateServiceInstanceArgs.Params = params
   169  		repo.UpdateServiceInstanceArgs.Tags = tags
   170  	}
   171  
   172  	return
   173  }
   174  
   175  func (repo *FakeServiceRepo) FindInstanceByName(name string) (instance models.ServiceInstance, apiErr error) {
   176  	repo.FindInstanceByNameName = name
   177  
   178  	if repo.FindInstanceByNameMap != nil && repo.FindInstanceByNameMap.Has(name) {
   179  		instance = repo.FindInstanceByNameMap.Get(name).(models.ServiceInstance)
   180  	} else {
   181  		instance = repo.FindInstanceByNameServiceInstance
   182  	}
   183  
   184  	if repo.FindInstanceByNameErr {
   185  		apiErr = errors.New("Error finding instance")
   186  	}
   187  
   188  	if repo.FindInstanceByNameNotFound {
   189  		apiErr = errors.NewModelNotFoundError("Service instance", name)
   190  	}
   191  
   192  	return
   193  }
   194  
   195  func (repo *FakeServiceRepo) DeleteService(instance models.ServiceInstance) (apiErr error) {
   196  	repo.DeleteServiceServiceInstance = instance
   197  	return
   198  }
   199  
   200  func (repo *FakeServiceRepo) RenameService(instance models.ServiceInstance, newName string) (apiErr error) {
   201  	repo.RenameServiceServiceInstance = instance
   202  	repo.RenameServiceNewName = newName
   203  	return
   204  }
   205  
   206  func (repo *FakeServiceRepo) FindServicePlanByDescription(planDescription resources.ServicePlanDescription) (planGuid string, apiErr error) {
   207  
   208  	repo.FindServicePlanByDescriptionArguments =
   209  		append(repo.FindServicePlanByDescriptionArguments, planDescription)
   210  
   211  	if len(repo.FindServicePlanByDescriptionResultGuids) > repo.findServicePlanByDescriptionCallCount {
   212  		planGuid = repo.FindServicePlanByDescriptionResultGuids[repo.findServicePlanByDescriptionCallCount]
   213  	}
   214  	if len(repo.FindServicePlanByDescriptionResponses) > repo.findServicePlanByDescriptionCallCount {
   215  		apiErr = repo.FindServicePlanByDescriptionResponses[repo.findServicePlanByDescriptionCallCount]
   216  	}
   217  	repo.findServicePlanByDescriptionCallCount += 1
   218  	return
   219  }
   220  
   221  func (repo *FakeServiceRepo) ListServicesFromManyBrokers(brokerGuids []string) ([]models.ServiceOffering, error) {
   222  	if repo.ListServicesFromManyBrokersErr != nil {
   223  		return nil, repo.ListServicesFromManyBrokersErr
   224  	}
   225  
   226  	key := strings.Join(brokerGuids, ",")
   227  	if repo.ListServicesFromManyBrokersReturns[key] != nil {
   228  		return repo.ListServicesFromManyBrokersReturns[key], nil
   229  	}
   230  
   231  	return []models.ServiceOffering{}, nil
   232  }
   233  
   234  func (repo *FakeServiceRepo) ListServicesFromBroker(brokerGuid string) ([]models.ServiceOffering, error) {
   235  	if repo.ListServicesFromBrokerErr != nil {
   236  		return nil, repo.ListServicesFromBrokerErr
   237  	}
   238  
   239  	if repo.ListServicesFromBrokerReturns[brokerGuid] != nil {
   240  		return repo.ListServicesFromBrokerReturns[brokerGuid], nil
   241  	}
   242  
   243  	return []models.ServiceOffering{}, nil
   244  }
   245  
   246  func (repo *FakeServiceRepo) GetServiceInstanceCountForServicePlan(v1PlanGuid string) (count int, apiErr error) {
   247  	count = repo.ServiceInstanceCountForServicePlan
   248  	apiErr = repo.ServiceInstanceCountApiResponse
   249  	return
   250  }
   251  
   252  func (repo *FakeServiceRepo) MigrateServicePlanFromV1ToV2(v1PlanGuid, v2PlanGuid string) (changedCount int, apiErr error) {
   253  	repo.MigrateServicePlanFromV1ToV2Called = true
   254  	repo.V1GuidToMigrate = v1PlanGuid
   255  	repo.V2GuidToMigrate = v2PlanGuid
   256  	changedCount = repo.MigrateServicePlanFromV1ToV2ReturnedCount
   257  	apiErr = repo.MigrateServicePlanFromV1ToV2Response
   258  	return
   259  }