123 lines
4.1 KiB
GDScript
123 lines
4.1 KiB
GDScript
# GdUnit generated TestSuite
|
|
class_name CmdCommandHandlerTest
|
|
extends GdUnitTestSuite
|
|
|
|
# TestSuite generated from
|
|
const __source = 'res://addons/gdUnit4/src/cmd/CmdCommandHandler.gd'
|
|
|
|
var _cmd_options: CmdOptions
|
|
var _cmd_instance: TestCommands
|
|
|
|
|
|
# small example of command class
|
|
class TestCommands:
|
|
func cmd_a() -> String:
|
|
return "cmd_a"
|
|
|
|
func cmd_foo() -> String:
|
|
return "cmd_foo"
|
|
|
|
func cmd_bar(value :String) -> String:
|
|
return value
|
|
|
|
func cmd_bar2(value_a: String, value_b: String) -> Array:
|
|
return [value_a, value_b]
|
|
|
|
func cmd_x() -> String:
|
|
return "cmd_x"
|
|
|
|
|
|
func before() -> void:
|
|
# setup command options
|
|
_cmd_options = CmdOptions.new([
|
|
CmdOption.new("-a", "some help text a", "some description a"),
|
|
CmdOption.new("-f, --foo", "some help text foo", "some description foo"),
|
|
CmdOption.new("-b, --bar", "some help text bar", "some description bar"),
|
|
CmdOption.new("-b2, --bar2", "some help text bar", "some description bar"),
|
|
],
|
|
# advnaced options
|
|
[
|
|
CmdOption.new("-x", "some help text x", "some description x"),
|
|
])
|
|
_cmd_instance = TestCommands.new()
|
|
|
|
|
|
func test__validate_no_registerd_commands() -> void:
|
|
var cmd_handler := CmdCommandHandler.new(_cmd_options)
|
|
|
|
assert_result(cmd_handler._validate()).is_success()
|
|
|
|
|
|
func test__validate_registerd_commands() -> void:
|
|
var cmd_handler: = CmdCommandHandler.new(_cmd_options)
|
|
cmd_handler.register_cb("-a", Callable(_cmd_instance, "cmd_a"))
|
|
cmd_handler.register_cb("-f", Callable(_cmd_instance, "cmd_foo"))
|
|
cmd_handler.register_cb("-b", Callable(_cmd_instance, "cmd_bar"))
|
|
|
|
assert_result(cmd_handler._validate()).is_success()
|
|
|
|
|
|
func test__validate_registerd_unknown_commands() -> void:
|
|
var cmd_handler: = CmdCommandHandler.new(_cmd_options)
|
|
cmd_handler.register_cb("-a", Callable(_cmd_instance, "cmd_a"))
|
|
cmd_handler.register_cb("-d", Callable(_cmd_instance, "cmd_foo"))
|
|
cmd_handler.register_cb("-b", Callable(_cmd_instance, "cmd_bar"))
|
|
cmd_handler.register_cb("-y", Callable(_cmd_instance, "cmd_x"))
|
|
|
|
assert_result(cmd_handler._validate())\
|
|
.is_error()\
|
|
.contains_message("The command '-d' is unknown, verify your CmdOptions!\nThe command '-y' is unknown, verify your CmdOptions!")
|
|
|
|
|
|
func test__validate_registerd_invalid_callbacks() -> void:
|
|
var cmd_handler := CmdCommandHandler.new(_cmd_options)
|
|
cmd_handler.register_cb("-a", Callable(_cmd_instance, "cmd_a"))
|
|
cmd_handler.register_cb("-f")
|
|
cmd_handler.register_cb("-b", Callable(_cmd_instance, "cmd_not_exists"))
|
|
|
|
assert_result(cmd_handler._validate())\
|
|
.is_error()\
|
|
.contains_message("Invalid function reference for command '-b', Check the function reference!")
|
|
|
|
|
|
func test__validate_registerd_register_same_callback_twice() -> void:
|
|
var cmd_handler: = CmdCommandHandler.new(_cmd_options)
|
|
cmd_handler.register_cb("-a", Callable(_cmd_instance, "cmd_a"))
|
|
cmd_handler.register_cb("-b", Callable(_cmd_instance, "cmd_a"))
|
|
if cmd_handler._enhanced_fr_test:
|
|
assert_result(cmd_handler._validate())\
|
|
.is_error()\
|
|
.contains_message("The function reference 'cmd_a' already registerd for command '-a'!")
|
|
|
|
|
|
func test_execute_no_commands() -> void:
|
|
var cmd_handler: = CmdCommandHandler.new(_cmd_options)
|
|
assert_result(cmd_handler.execute([])).is_success()
|
|
|
|
|
|
func test_execute_commands_no_cb_registered() -> void:
|
|
var cmd_handler: = CmdCommandHandler.new(_cmd_options)
|
|
assert_result(cmd_handler.execute([CmdCommand.new("-a")])).is_success()
|
|
|
|
|
|
func test_execute_commands_with_cb_registered() -> void:
|
|
var cmd_handler: = CmdCommandHandler.new(_cmd_options)
|
|
var cmd_spy = spy(_cmd_instance)
|
|
|
|
cmd_handler.register_cb("-a", Callable(cmd_spy, "cmd_a"))
|
|
cmd_handler.register_cb("-b", Callable(cmd_spy, "cmd_bar"))
|
|
cmd_handler.register_cbv("-b2", Callable(cmd_spy, "cmd_bar2"))
|
|
|
|
assert_result(cmd_handler.execute([CmdCommand.new("-a")])).is_success()
|
|
verify(cmd_spy).cmd_a()
|
|
verify_no_more_interactions(cmd_spy)
|
|
|
|
reset(cmd_spy)
|
|
assert_result(cmd_handler.execute([
|
|
CmdCommand.new("-a"),
|
|
CmdCommand.new("-b", ["some_value"]),
|
|
CmdCommand.new("-b2", ["value1", "value2"])])).is_success()
|
|
verify(cmd_spy).cmd_a()
|
|
verify(cmd_spy).cmd_bar("some_value")
|
|
verify(cmd_spy).cmd_bar2("value1", "value2")
|
|
verify_no_more_interactions(cmd_spy)
|