github.com/telepresenceio/telepresence/v2@v2.20.0-pro.6.0.20240517030216-236ea954e789/pkg/client/cli/flags/unparsed_test.go (about) 1 package flags 2 3 import ( 4 "strings" 5 "testing" 6 ) 7 8 func TestGetUnparsedFlagValue(t *testing.T) { 9 tests := []struct { 10 args []string 11 flag string 12 wantV string 13 wantErr bool 14 }{ 15 { 16 []string{"--name="}, 17 "--name", 18 "", 19 true, 20 }, 21 { 22 []string{"--name"}, 23 "--name", 24 "", 25 true, 26 }, 27 { 28 []string{"--name", "--other"}, 29 "--name", 30 "", 31 true, 32 }, 33 { 34 []string{"--name", "-o"}, 35 "--name", 36 "", 37 true, 38 }, 39 { 40 []string{"--name=value"}, 41 "--name", 42 "value", 43 false, 44 }, 45 { 46 []string{"--name=-value-"}, 47 "--name", 48 "-value-", 49 false, 50 }, 51 { 52 []string{"--name", "value"}, 53 "--name", 54 "value", 55 false, 56 }, 57 } 58 for _, tt := range tests { 59 t.Run(strings.Join(tt.args, "_"), func(t *testing.T) { 60 gotV, err := GetUnparsedValue(tt.args, tt.flag) 61 if (err != nil) != tt.wantErr { 62 t.Errorf("GetUnparsedValue() error = %v, wantErr %v", err, tt.wantErr) 63 return 64 } 65 if gotV != tt.wantV { 66 t.Errorf("GetUnparsedValue() gotV = %v, want %v", gotV, tt.wantV) 67 } 68 }) 69 } 70 } 71 72 func TestGetUnparsedFlagBoolean(t *testing.T) { 73 tests := []struct { 74 args []string 75 flag string 76 wantV bool 77 wantS bool 78 wantErr bool 79 }{ 80 { 81 []string{"--rm="}, 82 "--rm", 83 false, 84 true, 85 true, 86 }, 87 { 88 []string{"--rm"}, 89 "--rm", 90 true, 91 true, 92 false, 93 }, 94 { 95 []string{"--rm", "--other"}, 96 "--rm", 97 true, 98 true, 99 false, 100 }, 101 { 102 []string{"--rm", "-o"}, 103 "--rm", 104 true, 105 true, 106 false, 107 }, 108 { 109 []string{"--rm=value"}, 110 "--rm", 111 false, 112 true, 113 true, 114 }, 115 { 116 []string{"--rm=true"}, 117 "--rm", 118 true, 119 true, 120 false, 121 }, 122 { 123 []string{"--rm=true"}, 124 "--rm", 125 true, 126 true, 127 false, 128 }, 129 { 130 []string{"--rm=True"}, 131 "--rm", 132 true, 133 true, 134 false, 135 }, 136 { 137 []string{"--rm=1"}, 138 "--rm", 139 true, 140 true, 141 false, 142 }, 143 { 144 []string{"--rm=false"}, 145 "--rm", 146 false, 147 true, 148 false, 149 }, 150 { 151 []string{"--rm=False"}, 152 "--rm", 153 false, 154 true, 155 false, 156 }, 157 { 158 []string{"--rm=0"}, 159 "--rm", 160 false, 161 true, 162 false, 163 }, 164 { 165 []string{"--do"}, 166 "--rm", 167 false, 168 false, 169 false, 170 }, 171 } 172 for _, tt := range tests { 173 t.Run(strings.Join(tt.args, "_"), func(t *testing.T) { 174 gotV, gotS, err := GetUnparsedBoolean(tt.args, tt.flag) 175 if (err != nil) != tt.wantErr { 176 t.Errorf("GetUnparsedBoolean() error = %v, wantErr %v", err, tt.wantErr) 177 return 178 } 179 if gotS != tt.wantS { 180 t.Errorf("GetUnparsedBoolean() gotS = %v, want %v", gotS, tt.wantS) 181 } 182 if gotV != tt.wantV { 183 t.Errorf("GetUnparsedBoolean() gotV = %v, want %v", gotV, tt.wantV) 184 } 185 }) 186 } 187 }