Files
game-cards/addons/gut/test/unit/test_parameter_factory.gd
2026-05-29 09:16:10 +08:00

39 lines
1.3 KiB
GDScript

extends GutTest
class TestNamedParameters:
extends GutTest
func test_creates_array_of_dictionaries():
var got = ParameterFactory.named_parameters(['a', 'b'], [[1, 2], [3, 4]])
assert_typeof(got[0], TYPE_DICTIONARY)
# spot check values.
func test_gets_what_you_expect_back():
var names = ['a', 'b', 'c']
var vals = [[1, 2, 3], ['one', 'two', 'three'], [4, 'five', 6]]
var got = ParameterFactory.named_parameters(names, vals)
assert_eq(got[0].a, 1, '0.a')
assert_eq(got[1]['c'], 'three', '1.c')
assert_eq(got[2].b, 'five', '2.b')
assert_eq(got[2]['a'], 4, '2.a')
func test_when_less_names_than_values_values_are_ignored():
var names = ['a', 'b']
var vals = [[1, 2, 3], [4, 5, 6]]
var got = ParameterFactory.named_parameters(names, vals)
assert_eq(got[0].size(), 2)
func test_when_less_values_then_nulls_are_filled_in():
var names = ['a', 'b','c']
var vals = [[1, 2], [3, 4]]
var got = ParameterFactory.named_parameters(names, vals)
assert_eq(got[0].size(), 3, 'size')
assert_null(got[0]['c'], 'c is null')
func test_fills_in_gaps_when_param_is_not_array():
var names = ['a', 'b','c']
var vals = [[1, 2], 'a', [3, 4]]
var got = ParameterFactory.named_parameters(names, vals)
assert_eq(got[1].size(), 3, 'size')
assert_null(got[1].b, 'b is null')