func setupDependencies() (deps *cliDependencies) { deps = new(cliDependencies) deps.termUI = terminal.NewUI(os.Stdin) deps.manifestRepo = manifest.NewManifestDiskRepository() deps.configRepo = configuration.NewRepositoryFromFilepath(configuration.DefaultFilePath(), func(err error) { if err != nil { deps.termUI.Failed(fmt.Sprintf("Config error: %s", err)) } }) i18n.T = i18n.Init(deps.configRepo) terminal.UserAskedForColors = deps.configRepo.ColorEnabled() terminal.InitColorSupport() if os.Getenv("CF_TRACE") != "" { trace.Logger = trace.NewLogger(os.Getenv("CF_TRACE")) } else { trace.Logger = trace.NewLogger(deps.configRepo.Trace()) } deps.gateways = map[string]net.Gateway{ "auth": net.NewUAAGateway(deps.configRepo), "cloud-controller": net.NewCloudControllerGateway(deps.configRepo, time.Now), "uaa": net.NewUAAGateway(deps.configRepo), } deps.apiRepoLocator = api.NewRepositoryLocator(deps.configRepo, deps.gateways) return }
func NewDependency() Dependency { deps := Dependency{} deps.TeePrinter = terminal.NewTeePrinter() deps.Ui = terminal.NewUI(os.Stdin, deps.TeePrinter) deps.ManifestRepo = manifest.NewManifestDiskRepository() errorHandler := func(err error) { if err != nil { deps.Ui.Failed(fmt.Sprintf("Config error: %s", err)) } } deps.Config = core_config.NewRepositoryFromFilepath(config_helpers.DefaultFilePath(), errorHandler) deps.PluginConfig = plugin_config.NewPluginConfig(errorHandler) deps.Detector = &detection.JibberJabberDetector{} terminal.UserAskedForColors = deps.Config.ColorEnabled() terminal.InitColorSupport() if os.Getenv("CF_TRACE") != "" { trace.Logger = trace.NewLogger(os.Getenv("CF_TRACE")) } else { trace.Logger = trace.NewLogger(deps.Config.Trace()) } deps.Gateways = map[string]net.Gateway{ "auth": net.NewUAAGateway(deps.Config, deps.Ui), "cloud-controller": net.NewCloudControllerGateway(deps.Config, time.Now, deps.Ui), "uaa": net.NewUAAGateway(deps.Config, deps.Ui), } deps.RepoLocator = api.NewRepositoryLocator(deps.Config, deps.Gateways) deps.PluginModels = &pluginModels{Application: nil} return deps }
func findCommand(cmdName string) (cmd cli.Command) { fakeUI := &testterm.FakeUI{} configRepo := testconfig.NewRepository() pluginConfig := &testPluginConfig.FakePluginConfiguration{} manifestRepo := manifest.NewManifestDiskRepository() apiRepoLocator := api.NewRepositoryLocator(configRepo, map[string]net.Gateway{ "auth": net.NewUAAGateway(configRepo, fakeUI), "cloud-controller": net.NewCloudControllerGateway(configRepo, time.Now, fakeUI), "uaa": net.NewUAAGateway(configRepo, fakeUI), }) rpcService, _ := rpc.NewRpcService(nil, nil, nil, nil, api.RepositoryLocator{}, nil) cmdFactory := command_factory.NewFactory(fakeUI, configRepo, manifestRepo, apiRepoLocator, pluginConfig, rpcService) requirementsFactory := &testreq.FakeReqFactory{} cmdRunner := command_runner.NewRunner(cmdFactory, requirementsFactory, fakeUI) myApp := app.NewApp(cmdRunner, cmdFactory.CommandMetadatas()...) for _, cmd := range myApp.Commands { if cmd.Name == cmdName { return cmd } } panic(fmt.Sprintf("command %s does not exist", cmdName)) return }
func createCommandFactory() command_factory.Factory { fakeUI := &testterm.FakeUI{} configRepo := testconfig.NewRepository() manifestRepo := manifest.NewManifestDiskRepository() apiRepoLocator := api.NewRepositoryLocator(configRepo, map[string]net.Gateway{ "auth": net.NewUAAGateway(configRepo), "cloud-controller": net.NewCloudControllerGateway(configRepo, time.Now), "uaa": net.NewUAAGateway(configRepo), }) return command_factory.NewFactory(fakeUI, configRepo, manifestRepo, apiRepoLocator) }
func createCommandFactory() command_factory.Factory { fakeUI := &testterm.FakeUI{} configRepo := testconfig.NewRepository() pluginConfig := &testPluginConfig.FakePluginConfiguration{} manifestRepo := manifest.NewManifestDiskRepository() apiRepoLocator := api.NewRepositoryLocator(configRepo, map[string]net.Gateway{ "auth": net.NewUAAGateway(configRepo, fakeUI), "cloud-controller": net.NewCloudControllerGateway(configRepo, time.Now, fakeUI), "uaa": net.NewUAAGateway(configRepo, fakeUI), }) rpcService, _ := rpc.NewRpcService(nil, nil, nil, nil) return command_factory.NewFactory(fakeUI, configRepo, manifestRepo, apiRepoLocator, pluginConfig, rpcService) }
func setupDependencies() (deps *cliDependencies) { deps = new(cliDependencies) deps.teePrinter = terminal.NewTeePrinter() deps.termUI = terminal.NewUI(os.Stdin, deps.teePrinter) deps.manifestRepo = manifest.NewManifestDiskRepository() errorHandler := func(err error) { if err != nil { deps.termUI.Failed(fmt.Sprintf("Config error: %s", err)) } } deps.configRepo = core_config.NewRepositoryFromFilepath(config_helpers.DefaultFilePath(), errorHandler) deps.pluginConfig = plugin_config.NewPluginConfig(errorHandler) deps.detector = &detection.JibberJabberDetector{} T = Init(deps.configRepo, deps.detector) terminal.UserAskedForColors = deps.configRepo.ColorEnabled() terminal.InitColorSupport() if os.Getenv("CF_TRACE") != "" { trace.Logger = trace.NewLogger(os.Getenv("CF_TRACE")) } else { trace.Logger = trace.NewLogger(deps.configRepo.Trace()) } deps.gateways = map[string]net.Gateway{ "auth": net.NewUAAGateway(deps.configRepo, deps.termUI), "cloud-controller": net.NewCloudControllerGateway(deps.configRepo, time.Now, deps.termUI), "uaa": net.NewUAAGateway(deps.configRepo, deps.termUI), } deps.apiRepoLocator = api.NewRepositoryLocator(deps.configRepo, deps.gateways) return }
func NewDependency(logger trace.Printer) Dependency { deps := Dependency{} deps.TeePrinter = terminal.NewTeePrinter() deps.Ui = terminal.NewUI(os.Stdin, deps.TeePrinter, logger) errorHandler := func(err error) { if err != nil { deps.Ui.Failed(fmt.Sprintf("Config error: %s", err)) } } deps.Config = core_config.NewRepositoryFromFilepath(config_helpers.DefaultFilePath(), errorHandler) deps.ManifestRepo = manifest.NewManifestDiskRepository() deps.AppManifest = manifest.NewGenerator() deps.PluginConfig = plugin_config.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 = plan_builder.NewBuilder( deps.RepoLocator.GetServicePlanRepository(), deps.RepoLocator.GetServicePlanVisibilityRepository(), deps.RepoLocator.GetOrganizationRepository(), ) deps.ServiceBuilder = service_builder.NewBuilder( deps.RepoLocator.GetServiceRepository(), deps.PlanBuilder, ) deps.BrokerBuilder = broker_builder.NewBuilder( deps.RepoLocator.GetServiceBrokerRepository(), deps.ServiceBuilder, ) deps.PluginRepo = plugin_repo.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 = app_files.ApplicationZipper{} deps.AppFiles = app_files.ApplicationFiles{} deps.PushActor = actors.NewPushActor(deps.RepoLocator.GetApplicationBitsRepository(), deps.AppZipper, deps.AppFiles) deps.ChecksumUtil = utils.NewSha1Checksum("") deps.Logger = logger return deps }
testterm "github.com/cloudfoundry/cli/testhelpers/terminal" . "github.com/cloudfoundry/cli/cf/command_factory" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("factory", func() { var ( factory Factory ) BeforeEach(func() { fakeUI := &testterm.FakeUI{} config := testconfig.NewRepository() manifestRepo := manifest.NewManifestDiskRepository() pluginConfig := &testPluginConfig.FakePluginConfiguration{} repoLocator := api.NewRepositoryLocator(config, map[string]net.Gateway{ "auth": net.NewUAAGateway(config, fakeUI), "cloud-controller": net.NewCloudControllerGateway(config, time.Now, fakeUI), "uaa": net.NewUAAGateway(config, fakeUI), }) rpcService, _ := rpc.NewRpcService(nil, nil, nil, nil, api.RepositoryLocator{}, nil) factory = NewFactory(fakeUI, config, manifestRepo, repoLocator, pluginConfig, rpcService) }) // skipping test during the process of converting commands into non-codegangsta structure XIt("provides the metadata for its commands", func() { commands := factory.CommandMetadatas()