bflag_test.go 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. package dockerfile
  2. import (
  3. "testing"
  4. )
  5. func TestBuilderFlags(t *testing.T) {
  6. var expected string
  7. var err error
  8. // ---
  9. bf := NewBFlags()
  10. bf.Args = []string{}
  11. if err := bf.Parse(); err != nil {
  12. t.Fatalf("Test1 of %q was supposed to work: %s", bf.Args, err)
  13. }
  14. // ---
  15. bf = NewBFlags()
  16. bf.Args = []string{"--"}
  17. if err := bf.Parse(); err != nil {
  18. t.Fatalf("Test2 of %q was supposed to work: %s", bf.Args, err)
  19. }
  20. // ---
  21. bf = NewBFlags()
  22. flStr1 := bf.AddString("str1", "")
  23. flBool1 := bf.AddBool("bool1", false)
  24. bf.Args = []string{}
  25. if err = bf.Parse(); err != nil {
  26. t.Fatalf("Test3 of %q was supposed to work: %s", bf.Args, err)
  27. }
  28. if flStr1.IsUsed() == true {
  29. t.Fatalf("Test3 - str1 was not used!")
  30. }
  31. if flBool1.IsUsed() == true {
  32. t.Fatalf("Test3 - bool1 was not used!")
  33. }
  34. // ---
  35. bf = NewBFlags()
  36. flStr1 = bf.AddString("str1", "HI")
  37. flBool1 = bf.AddBool("bool1", false)
  38. bf.Args = []string{}
  39. if err = bf.Parse(); err != nil {
  40. t.Fatalf("Test4 of %q was supposed to work: %s", bf.Args, err)
  41. }
  42. if flStr1.Value != "HI" {
  43. t.Fatalf("Str1 was supposed to default to: HI")
  44. }
  45. if flBool1.IsTrue() {
  46. t.Fatalf("Bool1 was supposed to default to: false")
  47. }
  48. if flStr1.IsUsed() == true {
  49. t.Fatalf("Str1 was not used!")
  50. }
  51. if flBool1.IsUsed() == true {
  52. t.Fatalf("Bool1 was not used!")
  53. }
  54. // ---
  55. bf = NewBFlags()
  56. flStr1 = bf.AddString("str1", "HI")
  57. bf.Args = []string{"--str1"}
  58. if err = bf.Parse(); err == nil {
  59. t.Fatalf("Test %q was supposed to fail", bf.Args)
  60. }
  61. // ---
  62. bf = NewBFlags()
  63. flStr1 = bf.AddString("str1", "HI")
  64. bf.Args = []string{"--str1="}
  65. if err = bf.Parse(); err != nil {
  66. t.Fatalf("Test %q was supposed to work: %s", bf.Args, err)
  67. }
  68. expected = ""
  69. if flStr1.Value != expected {
  70. t.Fatalf("Str1 (%q) should be: %q", flStr1.Value, expected)
  71. }
  72. // ---
  73. bf = NewBFlags()
  74. flStr1 = bf.AddString("str1", "HI")
  75. bf.Args = []string{"--str1=BYE"}
  76. if err = bf.Parse(); err != nil {
  77. t.Fatalf("Test %q was supposed to work: %s", bf.Args, err)
  78. }
  79. expected = "BYE"
  80. if flStr1.Value != expected {
  81. t.Fatalf("Str1 (%q) should be: %q", flStr1.Value, expected)
  82. }
  83. // ---
  84. bf = NewBFlags()
  85. flBool1 = bf.AddBool("bool1", false)
  86. bf.Args = []string{"--bool1"}
  87. if err = bf.Parse(); err != nil {
  88. t.Fatalf("Test %q was supposed to work: %s", bf.Args, err)
  89. }
  90. if !flBool1.IsTrue() {
  91. t.Fatalf("Test-b1 Bool1 was supposed to be true")
  92. }
  93. // ---
  94. bf = NewBFlags()
  95. flBool1 = bf.AddBool("bool1", false)
  96. bf.Args = []string{"--bool1=true"}
  97. if err = bf.Parse(); err != nil {
  98. t.Fatalf("Test %q was supposed to work: %s", bf.Args, err)
  99. }
  100. if !flBool1.IsTrue() {
  101. t.Fatalf("Test-b2 Bool1 was supposed to be true")
  102. }
  103. // ---
  104. bf = NewBFlags()
  105. flBool1 = bf.AddBool("bool1", false)
  106. bf.Args = []string{"--bool1=false"}
  107. if err = bf.Parse(); err != nil {
  108. t.Fatalf("Test %q was supposed to work: %s", bf.Args, err)
  109. }
  110. if flBool1.IsTrue() {
  111. t.Fatalf("Test-b3 Bool1 was supposed to be false")
  112. }
  113. // ---
  114. bf = NewBFlags()
  115. flBool1 = bf.AddBool("bool1", false)
  116. bf.Args = []string{"--bool1=false1"}
  117. if err = bf.Parse(); err == nil {
  118. t.Fatalf("Test %q was supposed to fail", bf.Args)
  119. }
  120. // ---
  121. bf = NewBFlags()
  122. flBool1 = bf.AddBool("bool1", false)
  123. bf.Args = []string{"--bool2"}
  124. if err = bf.Parse(); err == nil {
  125. t.Fatalf("Test %q was supposed to fail", bf.Args)
  126. }
  127. // ---
  128. bf = NewBFlags()
  129. flStr1 = bf.AddString("str1", "HI")
  130. flBool1 = bf.AddBool("bool1", false)
  131. bf.Args = []string{"--bool1", "--str1=BYE"}
  132. if err = bf.Parse(); err != nil {
  133. t.Fatalf("Test %q was supposed to work: %s", bf.Args, err)
  134. }
  135. if flStr1.Value != "BYE" {
  136. t.Fatalf("Teset %s, str1 should be BYE", bf.Args)
  137. }
  138. if !flBool1.IsTrue() {
  139. t.Fatalf("Teset %s, bool1 should be true", bf.Args)
  140. }
  141. }