Vendor gdUnit4 for Godot 4 client testing (D-030). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
98 lines
3.7 KiB
GDScript
98 lines
3.7 KiB
GDScript
# GdUnit generated TestSuite
|
|
class_name GdUnitTestSuiteTest
|
|
extends GdUnitTestSuite
|
|
|
|
# TestSuite generated from
|
|
const __source = 'res://addons/gdUnit4/src/GdUnitTestSuite.gd'
|
|
|
|
var _events :Array[GdUnitEvent] = []
|
|
var _retry_count := 0
|
|
var _flaky_settings: bool
|
|
var _test_unknown_argument_in_test_case_is_called := false
|
|
|
|
|
|
|
|
func collect_report(event :GdUnitEvent) -> void:
|
|
_events.push_back(event)
|
|
|
|
|
|
func before() -> void:
|
|
# register to receive test reports
|
|
GdUnitSignals.instance().gdunit_event.connect(collect_report)
|
|
_flaky_settings = ProjectSettings.get_setting(GdUnitSettings.TEST_FLAKY_CHECK, false)
|
|
ProjectSettings.set_setting(GdUnitSettings.TEST_FLAKY_CHECK, true)
|
|
|
|
|
|
func after() -> void:
|
|
# verify the test case `test_unknown_argument_in_test_case` was skipped
|
|
assert_bool(_test_unknown_argument_in_test_case_is_called)\
|
|
.override_failure_message("Expecting 'test_unknown_argument_in_test_case' is skipped!")\
|
|
.is_false()
|
|
GdUnitSignals.instance().gdunit_event.disconnect(collect_report)
|
|
# Restore original project settings
|
|
ProjectSettings.set_setting(GdUnitSettings.TEST_FLAKY_CHECK, _flaky_settings)
|
|
|
|
|
|
func test_assert_that_types() -> void:
|
|
assert_object(assert_that(true)).is_instanceof(GdUnitBoolAssert)
|
|
assert_object(assert_that(1)).is_instanceof(GdUnitIntAssert)
|
|
assert_object(assert_that(3.12)).is_instanceof(GdUnitFloatAssert)
|
|
assert_object(assert_that("abc")).is_instanceof(GdUnitStringAssert)
|
|
assert_object(assert_that(Vector2.ONE)).is_instanceof(GdUnitVectorAssert)
|
|
assert_object(assert_that(Vector2i.ONE)).is_instanceof(GdUnitVectorAssert)
|
|
assert_object(assert_that(Vector3.ONE)).is_instanceof(GdUnitVectorAssert)
|
|
assert_object(assert_that(Vector3i.ONE)).is_instanceof(GdUnitVectorAssert)
|
|
assert_object(assert_that(Vector4.ONE)).is_instanceof(GdUnitVectorAssert)
|
|
assert_object(assert_that(Vector4i.ONE)).is_instanceof(GdUnitVectorAssert)
|
|
assert_object(assert_that([])).is_instanceof(GdUnitArrayAssert)
|
|
assert_object(assert_that({})).is_instanceof(GdUnitDictionaryAssert)
|
|
assert_object(assert_that(GdUnitResult.new())).is_instanceof(GdUnitObjectAssert)
|
|
# all not a built-in types mapped to default GdUnitAssert
|
|
assert_object(assert_that(Color.RED)).is_instanceof(GdUnitAssertImpl)
|
|
assert_object(assert_that(Plane.PLANE_XY)).is_instanceof(GdUnitAssertImpl)
|
|
|
|
|
|
func test_unknown_argument_in_test_case(_invalid_arg :int) -> void:
|
|
_test_unknown_argument_in_test_case_is_called = true
|
|
fail("This test case should be not executed, it must be skipped.")
|
|
|
|
|
|
func test_find_child() -> void:
|
|
var node_a :Node3D = auto_free(Node3D.new())
|
|
node_a.set_name("node_a")
|
|
var node_b :Node3D = auto_free(Node3D.new())
|
|
node_b.set_name("node_b")
|
|
var node_c :Node3D = auto_free(Node3D.new())
|
|
node_c.set_name("node_c")
|
|
add_child(node_a, true)
|
|
node_a.add_child(node_b, true)
|
|
node_b.add_child(node_c, true)
|
|
|
|
assert_object(find_child("node_a", true, false)).is_same(node_a)
|
|
assert_object(find_child("node_b", true, false)).is_same(node_b)
|
|
assert_object(find_child("node_c", true, false)).is_same(node_c)
|
|
|
|
|
|
func test_find_by_path() -> void:
|
|
var node_a :Node3D = auto_free(Node3D.new())
|
|
node_a.set_name("node_a")
|
|
var node_b :Node3D = auto_free(Node3D.new())
|
|
node_b.set_name("node_b")
|
|
var node_c :Node3D = auto_free(Node3D.new())
|
|
node_c.set_name("node_c")
|
|
add_child(node_a, true)
|
|
node_a.add_child(node_b, true)
|
|
node_b.add_child(node_c, true)
|
|
|
|
assert_object(get_node(node_a.get_path())).is_same(node_a)
|
|
assert_object(get_node(node_b.get_path())).is_same(node_b)
|
|
assert_object(get_node(node_c.get_path())).is_same(node_c)
|
|
|
|
|
|
func test_flaky_success() -> void:
|
|
_retry_count += 1
|
|
# do fail on first two retries
|
|
if _retry_count <= 2:
|
|
fail("failure 1: at retry %d" % _retry_count)
|
|
fail("failure 2: at retry %d" % _retry_count)
|