Files
herolib/lib/data/paramsparser/params_gettime_test.v
2024-12-25 09:23:31 +01:00

127 lines
2.9 KiB
V

module paramsparser
import freeflowuniverse.herolib.data.ourtime
import time
const testparams = Params{
params: [
Param{
key: 'when'
value: '2022-12-5 20:14:35'
},
Param{
key: 'date'
value: '2022-12-5'
},
Param{
key: 'interval'
value: '2022-12-5'
},
Param{
key: 'timestamp_12h_format_am'
value: '10AM'
},
Param{
key: 'timestamp_12h_format_pm'
value: '8PM'
},
Param{
key: 'timestamp_12h_format_am_minutes'
value: '10:13AM'
},
Param{
key: 'timestamp_12h_format_pm_minutes'
value: '8:07PM'
},
Param{
key: 'timestamp_12h_format_invalid'
value: '15AM'
},
Param{
key: 'timestamp_24h_format'
value: '16:21'
},
Param{
key: 'timestamp_24h_format_invalid'
value: '25:12'
},
]
}
fn test_get_time() ! {
sometime := testparams.get_time('when')!
assert sometime.unixt == 1670271275
anothertime := testparams.get_time('date')!
assert anothertime.unixt == 1670198400
}
fn test_get_time_default() ! {
now := ourtime.now()
notime := testparams.get_time_default('now', now)!
assert notime.day() == now.day()
}
fn test_get_time_interval() ! {
//
}
fn test_get_timestamp_12h_am() ! {
parsed_time := testparams.get_timestamp('timestamp_12h_format_am')!
expected := time.Duration(time.hour * 10)
assert parsed_time == expected
}
fn test_get_timestamp_12h_pm() ! {
parsed_time := testparams.get_timestamp('timestamp_12h_format_pm')!
assert parsed_time == time.Duration(time.hour * 20)
}
fn test_get_timestamp_12h_am_minutes() ! {
parsed_time := testparams.get_timestamp('timestamp_12h_format_am_minutes')!
assert parsed_time == time.Duration(time.hour * 10 + time.minute * 13)
}
fn test_get_timestamp_12h_pm_minutes() ! {
parsed_time := testparams.get_timestamp('timestamp_12h_format_pm_minutes')!
assert parsed_time == time.Duration(time.hour * 20 + time.minute * 7)
}
fn test_get_timestamp_12h_pm_fails() ! {
mut passed := true
parsed_time := testparams.get_timestamp('timestamp_12h_format_invalid') or {
passed = false
time.Duration(time.hour)
}
if passed {
return error('Did not throw error, it should')
}
}
fn test_get_timestamp_24h_format() ! {
parsed_time := testparams.get_timestamp('timestamp_24h_format')!
assert parsed_time == time.Duration(time.hour * 16 + time.minute * 21)
}
fn test_get_timestamp_24h_format_fails() ! {
mut passed := true
parsed_time := testparams.get_timestamp('timestamp_24h_format_invalid') or {
passed = false
time.Duration(time.hour)
}
if passed {
return error('Did not throw error, it should')
}
}
fn test_get_timestamp_default() ! {
default_duration := time.Duration(time.hour * 8 + time.minute * 30)
parsed_time := testparams.get_timestamp_default('timestamp_24h_format', default_duration)!
assert parsed_time == time.Duration(time.hour * 16 + time.minute * 21)
parsed_time_default := testparams.get_timestamp_default('non_existing_timestamp',
default_duration)!
assert parsed_time_default == default_duration
}