71 lines
2.6 KiB
GDScript
71 lines
2.6 KiB
GDScript
extends GutTest
|
|
|
|
const INNER_CLASSES_PATH = 'res://test/resources/doubler_test_objects/inner_classes.gd'
|
|
var InnerClasses = load(INNER_CLASSES_PATH)
|
|
var CyclicRefA = load('res://test/resources/parsing_and_loading_samples/cyclic_ref_class_a.gd')
|
|
|
|
func test_can_make_one():
|
|
var reg = GutUtils.InnerClassRegistry.new()
|
|
assert_not_null(reg)
|
|
|
|
func test_when_inner_not_registered_null_is_returned():
|
|
var reg = GutUtils.InnerClassRegistry.new()
|
|
assert_null(reg.get_extends_path(InnerClasses.InnerA))
|
|
|
|
func test_has_level_1_inner_classes():
|
|
var reg = GutUtils.InnerClassRegistry.new()
|
|
reg.register(InnerClasses)
|
|
var ext_txt = reg.get_extends_path(InnerClasses.InnerA)
|
|
assert_eq(ext_txt, str("'", INNER_CLASSES_PATH, "'.InnerA" ))
|
|
|
|
func test_has_level_2_inner_classes():
|
|
var reg = GutUtils.InnerClassRegistry.new()
|
|
reg.register(InnerClasses)
|
|
var ext_txt = reg.get_extends_path(InnerClasses.InnerB.InnerB1)
|
|
assert_eq(ext_txt, str("'", INNER_CLASSES_PATH, "'.InnerB.InnerB1" ))
|
|
|
|
func test_get_AnotherA_back_for_AnotherA():
|
|
var reg = GutUtils.InnerClassRegistry.new()
|
|
reg.register(InnerClasses)
|
|
var ext_txt = reg.get_extends_path(InnerClasses.AnotherInnerA)
|
|
assert_eq(ext_txt, str("'", INNER_CLASSES_PATH, "'.AnotherInnerA" ))
|
|
|
|
func test_can_get_subpath_for_registered():
|
|
var reg = GutUtils.InnerClassRegistry.new()
|
|
reg.register(InnerClasses)
|
|
var subpath = reg.get_subpath(InnerClasses.InnerB.InnerB1)
|
|
assert_eq(subpath, ".InnerB.InnerB1" )
|
|
|
|
func tet_subpath_is_empty_string_when_not_registered():
|
|
var reg = GutUtils.InnerClassRegistry.new()
|
|
var subpath = reg.get_subpath(InnerClasses.InnerB.InnerB1)
|
|
assert_eq(subpath, "" )
|
|
|
|
func test_base_path_is_the_path_to_the_script():
|
|
var reg = GutUtils.InnerClassRegistry.new()
|
|
reg.register(InnerClasses)
|
|
var base_path = reg.get_base_path(InnerClasses.InnerCA)
|
|
assert_eq(base_path, INNER_CLASSES_PATH)
|
|
|
|
func test_can_get_base_resource_for_inner_class():
|
|
var reg = GutUtils.InnerClassRegistry.new()
|
|
reg.register(InnerClasses)
|
|
var resource = reg.get_base_resource(InnerClasses.InnerCA)
|
|
assert_eq(resource, InnerClasses)
|
|
|
|
func test_get_base_resource_returns_null_when_not_registered():
|
|
var reg = GutUtils.InnerClassRegistry.new()
|
|
var resource = reg.get_base_resource(InnerClasses.InnerCA)
|
|
assert_eq(resource, null)
|
|
|
|
func test_does_not_spin_out_of_control_with_const_cyclic_refs():
|
|
var reg = GutUtils.InnerClassRegistry.new()
|
|
reg.register(CyclicRefA)
|
|
pass_test('we got here')
|
|
|
|
func test_does_not_contain_a_ref_to_external_classes():
|
|
var reg = GutUtils.InnerClassRegistry.new()
|
|
reg.register(CyclicRefA)
|
|
var result = reg.get_base_path(CyclicRefA.b_ref)
|
|
assert_null(result)
|