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  }