@@ -8,19 +8,11 @@ import (
88 "github.com/stretchr/testify/require"
99)
1010
11- type intnum interface {
12- int | int8 | int16 | int32 | int64
13- }
14-
15- type uintnum interface {
16- uint | uint8 | uint16 | uint32 | uint64
17- }
18-
19- func intTypes [T intnum ](t * testing.T ) {
11+ func TestArgsIntTypes (t * testing.T ) {
2012 cmd := buildMinimalTestCommand ()
21- var ival T
13+ var ival int
2214 cmd .Arguments = []Argument {
23- & ArgumentBase [ T , IntegerConfig , intValue [ T ]] {
15+ & IntArg {
2416 Name : "ia" ,
2517 Destination : & ival ,
2618 },
@@ -29,34 +21,42 @@ func intTypes[T intnum](t *testing.T) {
2921 err := cmd .Run (buildTestContext (t ), []string {"foo" , "10" })
3022 r := require .New (t )
3123 r .NoError (err )
32- r .Equal (T (10 ), ival )
33- r .Equal (T (10 ), arg [T ]("ia" , cmd ))
24+ r .Equal (10 , ival )
25+ r .Equal (10 , cmd .IntArg ("ia" ))
26+ r .Equal (int8 (0 ), cmd .Int8Arg ("ia" ))
27+ r .Equal (int16 (0 ), cmd .Int16Arg ("ia" ))
28+ r .Equal (int32 (0 ), cmd .Int32Arg ("ia" ))
29+ r .Equal (int64 (0 ), cmd .Int64Arg ("ia" ))
3430}
3531
36- func intArrTypes [ T intnum ] (t * testing.T ) {
32+ func TestArgsIntSliceTypes (t * testing.T ) {
3733 cmd := buildMinimalTestCommand ()
38- var ival []T
34+ var ival []int
3935 cmd .Arguments = []Argument {
40- & ArgumentsBase [ T , IntegerConfig , intValue [ T ]] {
36+ & IntArgs {
4137 Name : "ia" ,
4238 Min : 1 ,
4339 Max : - 1 ,
4440 Destination : & ival ,
4541 },
4642 }
4743
48- err := cmd .Run (buildTestContext (t ), []string {"foo" , "10" , "11 " , "12 " })
44+ err := cmd .Run (buildTestContext (t ), []string {"foo" , "10" , "20 " , "30 " })
4945 r := require .New (t )
5046 r .NoError (err )
51- r .Equal ([]T {10 , 11 , 12 }, ival )
52- r .Equal ([]T {10 , 11 , 12 }, arg [[]T ]("ia" , cmd ))
47+ r .Equal ([]int {10 , 20 , 30 }, ival )
48+ r .Equal ([]int {10 , 20 , 30 }, cmd .IntArgs ("ia" ))
49+ r .Nil (cmd .Int8Args ("ia" ))
50+ r .Nil (cmd .Int16Args ("ia" ))
51+ r .Nil (cmd .Int32Args ("ia" ))
52+ r .Nil (cmd .Int64Args ("ia" ))
5353}
5454
55- func uintTypes [ T uintnum ] (t * testing.T ) {
55+ func TestArgsUintTypes (t * testing.T ) {
5656 cmd := buildMinimalTestCommand ()
57- var ival T
57+ var ival uint
5858 cmd .Arguments = []Argument {
59- & ArgumentBase [ T , IntegerConfig , uintValue [ T ]] {
59+ & UintArg {
6060 Name : "ia" ,
6161 Destination : & ival ,
6262 },
@@ -65,53 +65,35 @@ func uintTypes[T uintnum](t *testing.T) {
6565 err := cmd .Run (buildTestContext (t ), []string {"foo" , "10" })
6666 r := require .New (t )
6767 r .NoError (err )
68- r .Equal (T (10 ), ival )
69- r .Equal (T (10 ), arg [T ]("ia" , cmd ))
68+ r .Equal (uint (10 ), ival )
69+ r .Equal (uint (10 ), cmd .UintArg ("ia" ))
70+ r .Equal (uint8 (0 ), cmd .Uint8Arg ("ia" ))
71+ r .Equal (uint16 (0 ), cmd .Uint16Arg ("ia" ))
72+ r .Equal (uint32 (0 ), cmd .Uint32Arg ("ia" ))
73+ r .Equal (uint64 (0 ), cmd .Uint64Arg ("ia" ))
7074}
7175
72- func uintArrTypes [ T uintnum ] (t * testing.T ) {
76+ func TestArgsUintSliceTypes (t * testing.T ) {
7377 cmd := buildMinimalTestCommand ()
74- var ival []T
78+ var ival []uint
7579 cmd .Arguments = []Argument {
76- & ArgumentsBase [ T , IntegerConfig , uintValue [ T ]] {
80+ & UintArgs {
7781 Name : "ia" ,
7882 Min : 1 ,
7983 Max : - 1 ,
8084 Destination : & ival ,
8185 },
8286 }
8387
84- err := cmd .Run (buildTestContext (t ), []string {"foo" , "10" , "11 " , "12 " })
88+ err := cmd .Run (buildTestContext (t ), []string {"foo" , "10" , "20 " , "30 " })
8589 r := require .New (t )
8690 r .NoError (err )
87- r .Equal ([]T {10 , 11 , 12 }, ival )
88- r .Equal ([]T {10 , 11 , 12 }, arg [[]T ]("ia" , cmd ))
89- }
90-
91- func TestArgumentsRootCommandAllTypes (t * testing.T ) {
92- intTypes [int ](t )
93- intTypes [int8 ](t )
94- intTypes [int16 ](t )
95- intTypes [int32 ](t )
96- intTypes [int64 ](t )
97-
98- uintTypes [uint ](t )
99- uintTypes [uint8 ](t )
100- uintTypes [uint16 ](t )
101- uintTypes [uint32 ](t )
102- uintTypes [uint64 ](t )
103-
104- intArrTypes [int ](t )
105- intArrTypes [int8 ](t )
106- intArrTypes [int16 ](t )
107- intArrTypes [int32 ](t )
108- intArrTypes [int64 ](t )
109-
110- uintArrTypes [uint ](t )
111- uintArrTypes [uint8 ](t )
112- uintArrTypes [uint16 ](t )
113- uintArrTypes [uint32 ](t )
114- uintArrTypes [uint64 ](t )
91+ r .Equal ([]uint {10 , 20 , 30 }, ival )
92+ r .Equal ([]uint {10 , 20 , 30 }, cmd .UintArgs ("ia" ))
93+ r .Nil (cmd .Uint8Args ("ia" ))
94+ r .Nil (cmd .Uint16Args ("ia" ))
95+ r .Nil (cmd .Uint32Args ("ia" ))
96+ r .Nil (cmd .Uint64Args ("ia" ))
11597}
11698
11799func TestArgumentsRootCommand (t * testing.T ) {
@@ -206,16 +188,8 @@ func TestArgumentsRootCommand(t *testing.T) {
206188 r .Equal (test .expectedIvals , ivals )
207189 }
208190 r .Equal (test .expectedIvals , cmd .IntArgs ("ia" ))
209- r .Equal (int8 (0 ), cmd .Int8Arg ("ia" ))
210- r .Equal (int16 (0 ), cmd .Int16Arg ("ia" ))
211- r .Equal (int32 (0 ), cmd .Int32Arg ("ia" ))
212- r .Equal (int64 (0 ), cmd .Int64Arg ("ia" ))
213191 r .Equal (test .expectedFvals , cmd .FloatArgs ("fa" ))
214192 r .Equal (test .expectedUivals , cmd .UintArgs ("uia" ))
215- r .Equal (uint8 (0 ), cmd .Uint8Arg ("uia" ))
216- r .Equal (uint16 (0 ), cmd .Uint16Arg ("uia" ))
217- r .Equal (uint32 (0 ), cmd .Uint32Arg ("uia" ))
218- r .Equal (uint64 (0 ), cmd .Uint64Arg ("uia" ))
219193 /*if test.expectedFvals != nil {
220194 r.Equal(test.expectedFvals, fvals)
221195 }*/
@@ -252,9 +226,16 @@ func TestArgumentsInvalidType(t *testing.T) {
252226 r := require .New (t )
253227 r .Nil (cmd .StringArgs ("ia" ))
254228 r .Nil (cmd .FloatArgs ("ia" ))
255- r .Nil (cmd .UintArgs ("ia" ))
229+ r .Nil (cmd .Int8Args ("ia" ))
230+ r .Nil (cmd .Int16Args ("ia" ))
231+ r .Nil (cmd .Int32Args ("ia" ))
232+ r .Nil (cmd .Int64Args ("ia" ))
256233 r .Nil (cmd .TimestampArgs ("ia" ))
257- r .Nil (cmd .IntArgs ("uia" ))
234+ r .Nil (cmd .UintArgs ("ia" ))
235+ r .Nil (cmd .Uint8Args ("ia" ))
236+ r .Nil (cmd .Uint16Args ("ia" ))
237+ r .Nil (cmd .Uint32Args ("ia" ))
238+ r .Nil (cmd .Uint64Args ("ia" ))
258239}
259240
260241func TestArgumentsSubcommand (t * testing.T ) {
0 commit comments