v
Зеркало из https://github.com/vlang/v
1import cli
2
3fn test_if_string_flag_parses() {
4mut flag := cli.Flag{
5flag: .string
6name: 'flag'
7}
8flag.parse(['-flag', 'value1'], false) or { panic(err) }
9mut value := flag.get_string() or { panic(err) }
10assert value == 'value1'
11
12flag = cli.Flag{
13flag: .string
14name: 'flag'
15}
16flag.parse(['-flag=value2'], false) or { panic(err) }
17value = flag.get_string() or { panic(err) }
18assert value == 'value2'
19
20flag = cli.Flag{
21flag: .string_array
22name: 'flag'
23}
24flag.parse(['-flag=value1'], false) or { panic(err) }
25flag.parse(['-flag=value2'], false) or { panic(err) }
26mut values := flag.get_strings() or { panic(err) }
27assert values == ['value1', 'value2']
28}
29
30fn test_if_bool_flag_parses() {
31mut flag := cli.Flag{
32flag: .bool
33name: 'flag'
34}
35mut value := false
36flag.parse(['-flag'], false) or { panic(err) }
37value = flag.get_bool() or { panic(err) }
38assert value == true
39flag.parse(['-flag', 'false'], false) or { panic(err) }
40value = flag.get_bool() or { panic(err) }
41assert value == false
42flag.parse(['-flag', 'true'], false) or { panic(err) }
43value = flag.get_bool() or { panic(err) }
44assert value == true
45flag.parse(['-flag=false'], false) or { panic(err) }
46value = flag.get_bool() or { panic(err) }
47assert value == false
48flag.parse(['-flag=true'], false) or { panic(err) }
49value = flag.get_bool() or { panic(err) }
50assert value == true
51}
52
53fn test_if_int_flag_parses() {
54mut flag := cli.Flag{
55flag: .int
56name: 'flag'
57}
58
59mut value := 0
60flag.parse(['-flag', '42'], false) or { panic(err) }
61value = flag.get_int() or { panic(err) }
62assert value == 42
63
64flag = cli.Flag{
65flag: .int
66name: 'flag'
67}
68
69flag.parse(['-flag=45'], false) or { panic(err) }
70value = flag.get_int() or { panic(err) }
71assert value == 45
72
73flag = cli.Flag{
74flag: .int_array
75name: 'flag'
76}
77
78flag.parse(['-flag=42'], false) or { panic(err) }
79flag.parse(['-flag=45'], false) or { panic(err) }
80mut values := flag.get_ints() or { panic(err) }
81assert values == [42, 45]
82}
83
84fn test_if_float_flag_parses() {
85mut flag := cli.Flag{
86flag: .float
87name: 'flag'
88}
89mut value := f64(0)
90flag.parse(['-flag', '3.14158'], false) or { panic(err) }
91value = flag.get_float() or { panic(err) }
92assert value == 3.14158
93
94flag = cli.Flag{
95flag: .float
96name: 'flag'
97}
98
99flag.parse(['-flag=3.14159'], false) or { panic(err) }
100value = flag.get_float() or { panic(err) }
101assert value == 3.14159
102
103flag = cli.Flag{
104flag: .float_array
105name: 'flag'
106}
107
108flag.parse(['-flag=3.1'], false) or { panic(err) }
109flag.parse(['-flag=1.3'], false) or { panic(err) }
110mut values := flag.get_floats() or { panic(err) }
111assert values == [3.1, 1.3]
112}
113
114fn test_if_flag_parses_with_abbrev() {
115mut flag := cli.Flag{
116flag: .bool
117name: 'flag'
118abbrev: 'f'
119}
120mut value := false
121flag.parse(['--flag'], true) or { panic(err) }
122value = flag.get_bool() or { panic(err) }
123assert value == true
124
125value = false
126flag = cli.Flag{
127flag: .bool
128name: 'flag'
129abbrev: 'f'
130}
131flag.parse(['-f'], true) or { panic(err) }
132value = flag.get_bool() or { panic(err) }
133assert value == true
134}
135
136fn test_if_multiple_value_on_single_value() {
137mut flag := cli.Flag{
138flag: .float
139name: 'flag'
140}
141
142flag.parse(['-flag', '3.14158'], false) or { panic(err) }
143
144if _ := flag.parse(['-flag', '3.222'], false) {
145panic("No multiple value flag don't raise an error!")
146} else {
147assert true
148}
149}
150
151fn test_default_value() {
152mut flag := cli.Flag{
153flag: .float
154name: 'flag'
155default_value: ['1.234']
156}
157
158flag.parse(['-flag', '3.14158'], false) or { panic(err) }
159mut value := flag.get_float() or { panic(err) }
160assert value == 3.14158
161
162flag = cli.Flag{
163flag: .float
164name: 'flag'
165default_value: ['1.234']
166}
167
168flag.parse([''], false) or { panic(err) }
169value = flag.get_float() or { panic(err) }
170assert value == 1.234
171}
172