func NewDependency(writer io.Writer, logger trace.Printer) Dependency { deps := Dependency{} deps.TeePrinter = terminal.NewTeePrinter(writer) deps.UI = terminal.NewUI(os.Stdin, writer, deps.TeePrinter, logger) errorHandler := func(err error) { if err != nil { deps.UI.Failed(fmt.Sprintf("Config error: %s", err)) } } configPath, err := confighelpers.DefaultFilePath() if err != nil { errorHandler(err) } deps.Config = coreconfig.NewRepositoryFromFilepath(configPath, errorHandler) deps.ManifestRepo = manifest.NewManifestDiskRepository() deps.AppManifest = manifest.NewGenerator() deps.PluginConfig = pluginconfig.NewPluginConfig(errorHandler) terminal.UserAskedForColors = deps.Config.ColorEnabled() terminal.InitColorSupport() deps.Gateways = map[string]net.Gateway{ "cloud-controller": net.NewCloudControllerGateway(deps.Config, time.Now, deps.UI, logger), "uaa": net.NewUAAGateway(deps.Config, deps.UI, logger), "routing-api": net.NewRoutingAPIGateway(deps.Config, time.Now, deps.UI, logger), } deps.RepoLocator = api.NewRepositoryLocator(deps.Config, deps.Gateways, logger) deps.PluginModels = &PluginModels{Application: nil} deps.PlanBuilder = planbuilder.NewBuilder( deps.RepoLocator.GetServicePlanRepository(), deps.RepoLocator.GetServicePlanVisibilityRepository(), deps.RepoLocator.GetOrganizationRepository(), ) deps.ServiceBuilder = servicebuilder.NewBuilder( deps.RepoLocator.GetServiceRepository(), deps.PlanBuilder, ) deps.BrokerBuilder = brokerbuilder.NewBuilder( deps.RepoLocator.GetServiceBrokerRepository(), deps.ServiceBuilder, ) deps.PluginRepo = pluginrepo.NewPluginRepo() deps.ServiceHandler = actors.NewServiceHandler( deps.RepoLocator.GetOrganizationRepository(), deps.BrokerBuilder, deps.ServiceBuilder, ) deps.ServicePlanHandler = actors.NewServicePlanHandler( deps.RepoLocator.GetServicePlanRepository(), deps.RepoLocator.GetServicePlanVisibilityRepository(), deps.RepoLocator.GetOrganizationRepository(), deps.PlanBuilder, deps.ServiceBuilder, ) deps.WordGenerator = generator.NewWordGenerator() deps.AppZipper = appfiles.ApplicationZipper{} deps.AppFiles = appfiles.ApplicationFiles{} deps.PushActor = actors.NewPushActor(deps.RepoLocator.GetApplicationBitsRepository(), deps.AppZipper, deps.AppFiles) deps.ChecksumUtil = utils.NewSha1Checksum("") deps.Logger = logger return deps }
orgRepo *organizationsfakes.FakeOrganizationRepository plan1 models.ServicePlanFields plan2 models.ServicePlanFields org1 models.Organization org2 models.Organization ) BeforeEach(func() { planbuilder.PlanToOrgsVisibilityMap = nil planbuilder.OrgToPlansVisibilityMap = nil planRepo = new(apifakes.OldFakeServicePlanRepo) visibilityRepo = new(apifakes.FakeServicePlanVisibilityRepository) orgRepo = new(organizationsfakes.FakeOrganizationRepository) builder = planbuilder.NewBuilder(planRepo, visibilityRepo, orgRepo) plan1 = models.ServicePlanFields{ Name: "service-plan1", GUID: "service-plan1-guid", ServiceOfferingGUID: "service-guid1", } plan2 = models.ServicePlanFields{ Name: "service-plan2", GUID: "service-plan2-guid", ServiceOfferingGUID: "service-guid1", } planRepo.SearchReturns = map[string][]models.ServicePlanFields{ "service-guid1": {plan1, plan2}, }