Skip to content

Commit 941ae99

Browse files
committed
Add tests
1 parent 7e71363 commit 941ae99

File tree

1 file changed

+47
-66
lines changed

1 file changed

+47
-66
lines changed

args_test.go

Lines changed: 47 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -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

11799
func 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

260241
func TestArgumentsSubcommand(t *testing.T) {

0 commit comments

Comments
 (0)