123 lines
2.1 KiB
V
123 lines
2.1 KiB
V
module paramsparser
|
|
|
|
fn test_get_arg() {
|
|
text := '
|
|
key1: val1
|
|
key2: val2
|
|
|
|
arg1
|
|
arg2
|
|
'
|
|
|
|
params := new(text)!
|
|
assert params.get_arg(0)! == 'arg1'
|
|
assert params.get_arg(1)! == 'arg2'
|
|
arg3 := params.get_arg(2) or { 'arg3 does not exists' }
|
|
assert arg3 == 'arg3 does not exists'
|
|
}
|
|
|
|
fn test_get_arg_check() {
|
|
text := '
|
|
key1: val1
|
|
key2: val2
|
|
|
|
arg1
|
|
arg2
|
|
'
|
|
|
|
params := new(text)!
|
|
|
|
assert params.get_arg_check(0, 2)! == 'arg1'
|
|
assert params.get_arg_check(1, 2)! == 'arg2'
|
|
t3 := params.get_arg_check(1, 3) or { 'len is 2' }
|
|
assert t3 == 'len is 2'
|
|
t4 := params.get_arg_check(2, 2) or { 'len is 2' }
|
|
assert t4 == 'len is 2'
|
|
}
|
|
|
|
fn test_check_arg_len() {
|
|
text := '
|
|
key1: val1
|
|
key2: val2
|
|
|
|
arg1
|
|
arg2
|
|
'
|
|
|
|
params := new(text)!
|
|
|
|
if _ := params.check_arg_len(0) {
|
|
assert false, 'arg len should be 2'
|
|
}
|
|
if _ := params.check_arg_len(1) {
|
|
assert false, 'arg len should be 2'
|
|
}
|
|
params.check_arg_len(2) or { assert false }
|
|
if _ := params.check_arg_len(3) {
|
|
assert false, 'arg len should be 2'
|
|
}
|
|
}
|
|
|
|
fn test_get_arg_default() {
|
|
text := '
|
|
key1: val1
|
|
key2: val2
|
|
|
|
arg1
|
|
arg2
|
|
'
|
|
|
|
params := new(text)!
|
|
|
|
assert params.get_arg_default(0, 'arg3')! == 'arg1'
|
|
assert params.get_arg_default(1, 'arg3')! == 'arg2'
|
|
assert params.get_arg_default(2, 'arg3')! == 'arg3'
|
|
assert params.get_arg_default(3, 'arg3')! == 'arg3'
|
|
}
|
|
|
|
fn test_get_arg_int() {
|
|
text := '
|
|
key1: val1
|
|
key2: val2
|
|
|
|
arg1
|
|
arg2
|
|
13
|
|
'
|
|
|
|
params := new(text)!
|
|
|
|
if _ := params.get_arg_int(0) {
|
|
assert false, 'first argument is a string, not an int'
|
|
}
|
|
if _ := params.get_arg_int(1) {
|
|
assert false, 'second argument is a string, not an int'
|
|
}
|
|
assert params.get_arg_int(2)! == 13
|
|
if _ := params.get_arg_int(3) {
|
|
assert false, 'there is no 4th argument'
|
|
}
|
|
}
|
|
|
|
fn test_get_arg_int_default() {
|
|
text := '
|
|
key1: val1
|
|
key2: val2
|
|
|
|
arg1
|
|
arg2
|
|
13
|
|
'
|
|
|
|
params := new(text)!
|
|
|
|
if _ := params.get_arg_int_default(0, 5) {
|
|
assert false, '1st argument is a string, not an int'
|
|
}
|
|
if _ := params.get_arg_int_default(1, 5) {
|
|
assert false, '2nd argument is a string, not an int'
|
|
}
|
|
assert params.get_arg_int_default(2, 5)! == 13
|
|
assert params.get_arg_int_default(3, 5)! == 5
|
|
}
|