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 }