fake_commandLine.go 2.0 KB

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