hub.fastgit.org/hashicorp/consul.git@v1.4.5/command/flags/flag_map_value_test.go (about) 1 package flags 2 3 import ( 4 "fmt" 5 "testing" 6 ) 7 8 func TestFlagMapValueSet(t *testing.T) { 9 t.Parallel() 10 11 t.Run("missing =", func(t *testing.T) { 12 13 f := new(FlagMapValue) 14 if err := f.Set("foo"); err == nil { 15 t.Fatal("expected error, got nil") 16 } 17 }) 18 19 t.Run("sets", func(t *testing.T) { 20 21 f := new(FlagMapValue) 22 if err := f.Set("foo=bar"); err != nil { 23 t.Fatal(err) 24 } 25 26 r, ok := (*f)["foo"] 27 if !ok { 28 t.Errorf("missing value: %#v", f) 29 } 30 if exp := "bar"; r != exp { 31 t.Errorf("expected %q to be %q", r, exp) 32 } 33 }) 34 35 t.Run("sets multiple", func(t *testing.T) { 36 37 f := new(FlagMapValue) 38 39 r := map[string]string{ 40 "foo": "bar", 41 "zip": "zap", 42 "cat": "dog", 43 } 44 45 for k, v := range r { 46 if err := f.Set(fmt.Sprintf("%s=%s", k, v)); err != nil { 47 t.Fatal(err) 48 } 49 } 50 51 for k, v := range r { 52 r, ok := (*f)[k] 53 if !ok { 54 t.Errorf("missing value %q: %#v", k, f) 55 } 56 if exp := v; r != exp { 57 t.Errorf("expected %q to be %q", r, exp) 58 } 59 } 60 }) 61 62 t.Run("overwrites", func(t *testing.T) { 63 64 f := new(FlagMapValue) 65 if err := f.Set("foo=bar"); err != nil { 66 t.Fatal(err) 67 } 68 if err := f.Set("foo=zip"); err != nil { 69 t.Fatal(err) 70 } 71 72 r, ok := (*f)["foo"] 73 if !ok { 74 t.Errorf("missing value: %#v", f) 75 } 76 if exp := "zip"; r != exp { 77 t.Errorf("expected %q to be %q", r, exp) 78 } 79 }) 80 }