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

96 lines
2.3 KiB
GDScript

extends GutTest
class BaseTest:
extends GutInternalTester
var MethodMaker = load('res://addons/gut/method_maker.gd')
func make_meta(fname, params = [], flags = 65):
var to_return = {
name = fname,
args = params,
default_args = [],
flags = flags
}
return to_return
func make_param(pname, ptype):
var to_return = {
name = pname,
type = ptype
}
return to_return
class TestGetDecleration:
extends BaseTest
var _mm = null
func before_each():
_mm = MethodMaker.new()
func test_get_function_text_no_params():
assert_string_contains(_mm.get_function_text(make_meta('dummy')), 'func dummy():')
func test_parameters_get_prefix_and_default_to_call_stubber():
var params = [make_param('value1', TYPE_INT), make_param('value2', TYPE_INT)]
var meta = make_meta('dummy', params)
var txt = _mm.get_function_text(meta)
assert_string_contains(txt, 'func dummy(p_value1=__gutdbl.default_val("dummy",0), p_value2=__gutdbl.default_val("dummy",1)):')
class TestSuperCall:
extends BaseTest
var _mm = null
func before_each():
_mm = MethodMaker.new()
func test_super_call_works_with_no_parameters():
var meta = make_meta('dummy')
var text = _mm.get_function_text(meta)
assert_string_contains(text, 'return await super()')
func test_super_call_contains_all_parameters():
var params = [
make_param('value1', TYPE_COLOR),
make_param('value2', TYPE_INT),
make_param('value3', TYPE_STRING)
]
var meta = make_meta('dummy', params)
var text = _mm.get_function_text(meta)
assert_string_contains(text, 'return await super(p_value1, p_value2, p_value3)')
class TestVarargMethods:
extends BaseTest
func test_rpc():
var mm = MethodMaker.new()
var n = autofree(Node.new())
var meta = find_method_meta(n.get_method_list(), 'rpc')
var func_def = mm.get_function_text(meta)
assert_string_contains(func_def, ", ...args: Array")
assert_string_contains(func_def, "__gutdbl.spy_on('rpc', [p_method, args])")
func test_rpc_id():
var mm = MethodMaker.new()
var n = autofree(Node.new())
var meta = find_method_meta(n.get_method_list(), 'rpc_id')
var func_def = mm.get_function_text(meta)
assert_string_contains(func_def, ", ...args: Array")
assert_string_contains(func_def, "__gutdbl.spy_on('rpc_id', [p_peer_id, p_method, args])")