fake_commandLine.go 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. package commandstest
  2. import (
  3. "github.com/codegangsta/cli"
  4. "github.com/grafana/grafana/pkg/cmd/grafana-cli/utils"
  5. )
  6. type FakeFlagger struct {
  7. Data map[string]interface{}
  8. }
  9. type FakeCommandLine struct {
  10. LocalFlags, GlobalFlags *FakeFlagger
  11. HelpShown, VersionShown bool
  12. CliArgs []string
  13. Client utils.ApiClient
  14. }
  15. func (ff FakeFlagger) String(key string) string {
  16. if value, ok := ff.Data[key]; ok {
  17. return value.(string)
  18. }
  19. return ""
  20. }
  21. func (ff FakeFlagger) StringSlice(key string) []string {
  22. if value, ok := ff.Data[key]; ok {
  23. return value.([]string)
  24. }
  25. return []string{}
  26. }
  27. func (ff FakeFlagger) Int(key string) int {
  28. if value, ok := ff.Data[key]; ok {
  29. return value.(int)
  30. }
  31. return 0
  32. }
  33. func (ff FakeFlagger) Bool(key string) bool {
  34. if value, ok := ff.Data[key]; ok {
  35. return value.(bool)
  36. }
  37. return false
  38. }
  39. func (fcli *FakeCommandLine) String(key string) string {
  40. return fcli.LocalFlags.String(key)
  41. }
  42. func (fcli *FakeCommandLine) StringSlice(key string) []string {
  43. return fcli.LocalFlags.StringSlice(key)
  44. }
  45. func (fcli *FakeCommandLine) Int(key string) int {
  46. return fcli.LocalFlags.Int(key)
  47. }
  48. func (fcli *FakeCommandLine) Bool(key string) bool {
  49. if fcli.LocalFlags == nil {
  50. return false
  51. }
  52. return fcli.LocalFlags.Bool(key)
  53. }
  54. func (fcli *FakeCommandLine) GlobalString(key string) string {
  55. return fcli.GlobalFlags.String(key)
  56. }
  57. func (fcli *FakeCommandLine) Generic(name string) interface{} {
  58. return fcli.LocalFlags.Data[name]
  59. }
  60. func (fcli *FakeCommandLine) FlagNames() []string {
  61. flagNames := []string{}
  62. for key := range fcli.LocalFlags.Data {
  63. flagNames = append(flagNames, key)
  64. }
  65. return flagNames
  66. }
  67. func (fcli *FakeCommandLine) ShowHelp() {
  68. fcli.HelpShown = true
  69. }
  70. func (fcli *FakeCommandLine) Application() *cli.App {
  71. return cli.NewApp()
  72. }
  73. func (fcli *FakeCommandLine) Args() cli.Args {
  74. return fcli.CliArgs
  75. }
  76. func (fcli *FakeCommandLine) ShowVersion() {
  77. fcli.VersionShown = true
  78. }
  79. func (fcli *FakeCommandLine) RepoDirectory() string {
  80. return fcli.GlobalString("repo")
  81. }
  82. func (fcli *FakeCommandLine) PluginDirectory() string {
  83. return fcli.GlobalString("pluginsDir")
  84. }
  85. func (fcli *FakeCommandLine) PluginURL() string {
  86. return fcli.GlobalString("pluginUrl")
  87. }
  88. func (fcli *FakeCommandLine) ApiClient() utils.ApiClient {
  89. return fcli.Client
  90. }