155 lines
6.8 KiB
GDScript
155 lines
6.8 KiB
GDScript
# GdUnit generated TestSuite
|
|
class_name GdUnitSettingsTest
|
|
extends GdUnitTestSuite
|
|
|
|
# TestSuite generated from
|
|
const __source = 'res://addons/gdUnit4/src/core/GdUnitSettings.gd'
|
|
|
|
const MAIN_CATEGORY = "unit_test"
|
|
const CATEGORY_A = MAIN_CATEGORY + "/category_a"
|
|
const CATEGORY_B = MAIN_CATEGORY + "/category_b"
|
|
const TEST_PROPERTY_A = CATEGORY_A + "/a/prop_a"
|
|
const TEST_PROPERTY_B = CATEGORY_A + "/a/prop_b"
|
|
const TEST_PROPERTY_C = CATEGORY_A + "/a/prop_c"
|
|
const TEST_PROPERTY_D = CATEGORY_B + "/prop_d"
|
|
const TEST_PROPERTY_E = CATEGORY_B + "/c/prop_e"
|
|
const TEST_PROPERTY_F = CATEGORY_B + "/c/prop_f"
|
|
const TEST_PROPERTY_G = CATEGORY_B + "/a/prop_g"
|
|
|
|
|
|
func before() -> void:
|
|
GdUnitSettings.dump_to_tmp()
|
|
|
|
|
|
func after() -> void:
|
|
GdUnitSettings.restore_dump_from_tmp()
|
|
|
|
|
|
func before_test() -> void:
|
|
GdUnitSettings.create_property_if_need(TEST_PROPERTY_A, true, "helptext TEST_PROPERTY_A.")
|
|
GdUnitSettings.create_property_if_need(TEST_PROPERTY_B, false, "helptext TEST_PROPERTY_B.")
|
|
GdUnitSettings.create_property_if_need(TEST_PROPERTY_C, 100, "helptext TEST_PROPERTY_C.")
|
|
GdUnitSettings.create_property_if_need(TEST_PROPERTY_D, true, "helptext TEST_PROPERTY_D.")
|
|
GdUnitSettings.create_property_if_need(TEST_PROPERTY_E, false, "helptext TEST_PROPERTY_E.")
|
|
GdUnitSettings.create_property_if_need(TEST_PROPERTY_F, "abc", "helptext TEST_PROPERTY_F.")
|
|
GdUnitSettings.create_property_if_need(TEST_PROPERTY_G, 200, "helptext TEST_PROPERTY_G.")
|
|
|
|
|
|
func after_test() -> void:
|
|
ProjectSettings.clear(TEST_PROPERTY_A)
|
|
ProjectSettings.clear(TEST_PROPERTY_B)
|
|
ProjectSettings.clear(TEST_PROPERTY_C)
|
|
ProjectSettings.clear(TEST_PROPERTY_D)
|
|
ProjectSettings.clear(TEST_PROPERTY_E)
|
|
ProjectSettings.clear(TEST_PROPERTY_F)
|
|
ProjectSettings.clear(TEST_PROPERTY_G)
|
|
|
|
|
|
func test_list_settings() -> void:
|
|
var settingsA := GdUnitSettings.list_settings(CATEGORY_A)
|
|
assert_array(settingsA).extractv(extr("name"), extr("type"), extr("value"), extr("default"), extr("help"))\
|
|
.contains_exactly_in_any_order([
|
|
tuple(TEST_PROPERTY_A, TYPE_BOOL, true, true, "helptext TEST_PROPERTY_A."),
|
|
tuple(TEST_PROPERTY_B, TYPE_BOOL,false, false, "helptext TEST_PROPERTY_B."),
|
|
tuple(TEST_PROPERTY_C, TYPE_INT, 100, 100, "helptext TEST_PROPERTY_C.")
|
|
])
|
|
var settingsB := GdUnitSettings.list_settings(CATEGORY_B)
|
|
assert_array(settingsB).extractv(extr("name"), extr("type"), extr("value"), extr("default"), extr("help"))\
|
|
.contains_exactly_in_any_order([
|
|
tuple(TEST_PROPERTY_D, TYPE_BOOL, true, true, "helptext TEST_PROPERTY_D."),
|
|
tuple(TEST_PROPERTY_E, TYPE_BOOL, false, false, "helptext TEST_PROPERTY_E."),
|
|
tuple(TEST_PROPERTY_F, TYPE_STRING, "abc", "abc", "helptext TEST_PROPERTY_F."),
|
|
tuple(TEST_PROPERTY_G, TYPE_INT, 200, 200, "helptext TEST_PROPERTY_G.")
|
|
])
|
|
|
|
|
|
func test_enum_property() -> void:
|
|
var value_set :PackedStringArray = GdUnitSettings.NAMING_CONVENTIONS.keys()
|
|
GdUnitSettings.create_property_if_need("test/enum", GdUnitSettings.NAMING_CONVENTIONS.AUTO_DETECT, "help", value_set)
|
|
|
|
var property := GdUnitSettings.get_property("test/enum")
|
|
assert_that(property.default()).is_equal(GdUnitSettings.NAMING_CONVENTIONS.AUTO_DETECT)
|
|
assert_that(property.value()).is_equal(GdUnitSettings.NAMING_CONVENTIONS.AUTO_DETECT)
|
|
assert_that(property.type()).is_equal(TYPE_INT)
|
|
assert_that(property.help()).is_equal('help ["AUTO_DETECT", "SNAKE_CASE", "PASCAL_CASE"]')
|
|
assert_that(property.value_set()).is_equal(value_set)
|
|
|
|
|
|
func test_migrate_property_change_key() -> void:
|
|
# setup old property
|
|
var old_property_X = "/category_patch/group_old/name"
|
|
var new_property_X = "/category_patch/group_new/name"
|
|
GdUnitSettings.create_property_if_need(old_property_X, "foo")
|
|
assert_str(GdUnitSettings.get_setting(old_property_X, null)).is_equal("foo")
|
|
assert_str(GdUnitSettings.get_setting(new_property_X, null)).is_null()
|
|
var old_property := GdUnitSettings.get_property(old_property_X)
|
|
|
|
# migrate
|
|
GdUnitSettings.migrate_property(old_property.name(),\
|
|
new_property_X,\
|
|
old_property.default(),\
|
|
old_property.help())
|
|
|
|
var new_property := GdUnitSettings.get_property(new_property_X)
|
|
assert_str(GdUnitSettings.get_setting(old_property_X, null)).is_null()
|
|
assert_str(GdUnitSettings.get_setting(new_property_X, null)).is_equal("foo")
|
|
assert_object(new_property).is_not_equal(old_property)
|
|
assert_str(new_property.value()).is_equal(old_property.value())
|
|
assert_array(new_property.value_set()).is_equal(old_property.value_set())
|
|
assert_int(new_property.type()).is_equal(old_property.type())
|
|
assert_str(new_property.default()).is_equal(old_property.default())
|
|
assert_str(new_property.help()).is_equal(old_property.help())
|
|
|
|
# cleanup
|
|
ProjectSettings.clear(new_property_X)
|
|
|
|
|
|
func test_migrate_property_change_value() -> void:
|
|
# setup old property
|
|
var old_property_X = "/category_patch/group_old/name"
|
|
var new_property_X = "/category_patch/group_new/name"
|
|
GdUnitSettings.create_property_if_need(old_property_X, "foo", "help to foo")
|
|
assert_str(GdUnitSettings.get_setting(old_property_X, null)).is_equal("foo")
|
|
assert_str(GdUnitSettings.get_setting(new_property_X, null)).is_null()
|
|
var old_property := GdUnitSettings.get_property(old_property_X)
|
|
|
|
# migrate property
|
|
GdUnitSettings.migrate_property(old_property.name(),\
|
|
new_property_X,\
|
|
old_property.default(),\
|
|
old_property.help(),\
|
|
func(_value): return "bar")
|
|
|
|
var new_property := GdUnitSettings.get_property(new_property_X)
|
|
assert_str(GdUnitSettings.get_setting(old_property_X, null)).is_null()
|
|
assert_str(GdUnitSettings.get_setting(new_property_X, null)).is_equal("bar")
|
|
assert_object(new_property).is_not_equal(old_property)
|
|
assert_str(new_property.value()).is_equal("bar")
|
|
assert_array(new_property.value_set()).is_equal(old_property.value_set())
|
|
assert_int(new_property.type()).is_equal(old_property.type())
|
|
assert_str(new_property.default()).is_equal(old_property.default())
|
|
assert_str(new_property.help()).is_equal(old_property.help())
|
|
# cleanup
|
|
ProjectSettings.clear(new_property_X)
|
|
|
|
|
|
const TEST_ROOT_FOLDER := "gdunit4/settings/test/test_root_folder"
|
|
const HELP_TEST_ROOT_FOLDER := "Sets the root folder where test-suites located/generated."
|
|
|
|
func test_migrate_properties_v215() -> void:
|
|
# rebuild original settings
|
|
GdUnitSettings.create_property_if_need(TEST_ROOT_FOLDER, "test", HELP_TEST_ROOT_FOLDER)
|
|
ProjectSettings.set_setting(TEST_ROOT_FOLDER, "xxx")
|
|
|
|
# migrate
|
|
GdUnitSettings.migrate_properties()
|
|
|
|
# verify
|
|
var property := GdUnitSettings.get_property(GdUnitSettings.TEST_LOOKUP_FOLDER)
|
|
assert_str(property.value()).is_equal("xxx")
|
|
assert_array(property.value_set()).is_empty()
|
|
assert_int(property.type()).is_equal(TYPE_STRING)
|
|
assert_str(property.default()).is_equal(GdUnitSettings.DEFAULT_TEST_LOOKUP_FOLDER)
|
|
assert_str(property.help()).is_equal(GdUnitSettings.HELP_TEST_LOOKUP_FOLDER)
|
|
assert_that(GdUnitSettings.get_property(TEST_ROOT_FOLDER)).is_null()
|
|
ProjectSettings.clear(GdUnitSettings.TEST_LOOKUP_FOLDER)
|