123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- package dockerfile
- import (
- "testing"
- )
- func TestBuilderFlags(t *testing.T) {
- var expected string
- var err error
- // ---
- bf := NewBFlags()
- bf.Args = []string{}
- if err := bf.Parse(); err != nil {
- t.Fatalf("Test1 of %q was supposed to work: %s", bf.Args, err)
- }
- // ---
- bf = NewBFlags()
- bf.Args = []string{"--"}
- if err := bf.Parse(); err != nil {
- t.Fatalf("Test2 of %q was supposed to work: %s", bf.Args, err)
- }
- // ---
- bf = NewBFlags()
- flStr1 := bf.AddString("str1", "")
- flBool1 := bf.AddBool("bool1", false)
- bf.Args = []string{}
- if err = bf.Parse(); err != nil {
- t.Fatalf("Test3 of %q was supposed to work: %s", bf.Args, err)
- }
- if flStr1.IsUsed() == true {
- t.Fatalf("Test3 - str1 was not used!")
- }
- if flBool1.IsUsed() == true {
- t.Fatalf("Test3 - bool1 was not used!")
- }
- // ---
- bf = NewBFlags()
- flStr1 = bf.AddString("str1", "HI")
- flBool1 = bf.AddBool("bool1", false)
- bf.Args = []string{}
- if err = bf.Parse(); err != nil {
- t.Fatalf("Test4 of %q was supposed to work: %s", bf.Args, err)
- }
- if flStr1.Value != "HI" {
- t.Fatalf("Str1 was supposed to default to: HI")
- }
- if flBool1.IsTrue() {
- t.Fatalf("Bool1 was supposed to default to: false")
- }
- if flStr1.IsUsed() == true {
- t.Fatalf("Str1 was not used!")
- }
- if flBool1.IsUsed() == true {
- t.Fatalf("Bool1 was not used!")
- }
- // ---
- bf = NewBFlags()
- flStr1 = bf.AddString("str1", "HI")
- bf.Args = []string{"--str1"}
- if err = bf.Parse(); err == nil {
- t.Fatalf("Test %q was supposed to fail", bf.Args)
- }
- // ---
- bf = NewBFlags()
- flStr1 = bf.AddString("str1", "HI")
- bf.Args = []string{"--str1="}
- if err = bf.Parse(); err != nil {
- t.Fatalf("Test %q was supposed to work: %s", bf.Args, err)
- }
- expected = ""
- if flStr1.Value != expected {
- t.Fatalf("Str1 (%q) should be: %q", flStr1.Value, expected)
- }
- // ---
- bf = NewBFlags()
- flStr1 = bf.AddString("str1", "HI")
- bf.Args = []string{"--str1=BYE"}
- if err = bf.Parse(); err != nil {
- t.Fatalf("Test %q was supposed to work: %s", bf.Args, err)
- }
- expected = "BYE"
- if flStr1.Value != expected {
- t.Fatalf("Str1 (%q) should be: %q", flStr1.Value, expected)
- }
- // ---
- bf = NewBFlags()
- flBool1 = bf.AddBool("bool1", false)
- bf.Args = []string{"--bool1"}
- if err = bf.Parse(); err != nil {
- t.Fatalf("Test %q was supposed to work: %s", bf.Args, err)
- }
- if !flBool1.IsTrue() {
- t.Fatalf("Test-b1 Bool1 was supposed to be true")
- }
- // ---
- bf = NewBFlags()
- flBool1 = bf.AddBool("bool1", false)
- bf.Args = []string{"--bool1=true"}
- if err = bf.Parse(); err != nil {
- t.Fatalf("Test %q was supposed to work: %s", bf.Args, err)
- }
- if !flBool1.IsTrue() {
- t.Fatalf("Test-b2 Bool1 was supposed to be true")
- }
- // ---
- bf = NewBFlags()
- flBool1 = bf.AddBool("bool1", false)
- bf.Args = []string{"--bool1=false"}
- if err = bf.Parse(); err != nil {
- t.Fatalf("Test %q was supposed to work: %s", bf.Args, err)
- }
- if flBool1.IsTrue() {
- t.Fatalf("Test-b3 Bool1 was supposed to be false")
- }
- // ---
- bf = NewBFlags()
- flBool1 = bf.AddBool("bool1", false)
- bf.Args = []string{"--bool1=false1"}
- if err = bf.Parse(); err == nil {
- t.Fatalf("Test %q was supposed to fail", bf.Args)
- }
- // ---
- bf = NewBFlags()
- flBool1 = bf.AddBool("bool1", false)
- bf.Args = []string{"--bool2"}
- if err = bf.Parse(); err == nil {
- t.Fatalf("Test %q was supposed to fail", bf.Args)
- }
- // ---
- bf = NewBFlags()
- flStr1 = bf.AddString("str1", "HI")
- flBool1 = bf.AddBool("bool1", false)
- bf.Args = []string{"--bool1", "--str1=BYE"}
- if err = bf.Parse(); err != nil {
- t.Fatalf("Test %q was supposed to work: %s", bf.Args, err)
- }
- if flStr1.Value != "BYE" {
- t.Fatalf("Teset %s, str1 should be BYE", bf.Args)
- }
- if !flBool1.IsTrue() {
- t.Fatalf("Teset %s, bool1 should be true", bf.Args)
- }
- }
|