Table of Contents
test / helpers / test_resource_helper.gd
Attached Scenes
|
Note
|
No attached scenes. |
Code
extends GutTest
class TestResource:
extends Resource
var flag : bool = true
var name : String = 'test'
var items : Array = [1.0, '2', null]
var children : Array[ChildResource] = [
ChildResource.new()
]
static func parse_mapping() -> Dictionary:
return { 'children': ChildResource }
class ChildResource:
extends Resource
var foo : float = 1.234
var bar = null
var children : Array[GrandChildResource] = [
GrandChildResource.new()
]
static func parse_mapping() -> Dictionary:
return { 'children': GrandChildResource }
class GrandChildResource:
extends Resource
var piyo : String = 'bar'
func test_init():
var res = TestResource.new()
assert_eq(res.flag, true)
assert_eq(res.children[0].foo, 1.234)
func test_properties_of():
var res = TestResource.new()
assert_eq(ResourceHelper.properties_of(res),
['flag', 'name', 'items', 'children'])
assert_eq(ResourceHelper.properties_of(res.children[0]),
['foo', 'bar', 'children'])
assert_eq(ResourceHelper.properties_of(res.children[0].children[0]),
['piyo'])
func test_json():
var res = TestResource.new()
var dict = ResourceHelper.dict(res)
var json = ResourceHelper.json(res)
var parsed = JSON.parse_string(json)
assert_eq(res.name, dict.name)
assert_eq(res.name, parsed.name)
assert_eq(res.items[0], dict.items[0])
assert_eq(res.items[0], parsed.items[0])
assert_eq(res.children[0].foo, dict.children[0].foo)
assert_eq(res.children[0].foo, parsed.children[0].foo)
assert_eq(
res.children[0].children[0].piyo,
dict.children[0].children[0].piyo)
assert_eq(
res.children[0].children[0].piyo,
parsed.children[0].children[0].piyo)
assert_eq(dict.items, parsed.items)
assert_eq(dict.children, parsed.children)
assert_eq(dict.children[0].children, parsed.children[0].children)
assert_eq(dict, parsed)
func test_parse():
var res = TestResource.new()
var json = ResourceHelper.json(res)
var parsed = ResourceHelper.parse(TestResource, json)
for key in ResourceHelper.properties_of(res):
if key == 'children':
var child = res.children[0]
assert_eq(child.foo, parsed.children[0].foo)
var grand_child = child.children[0]
assert_eq(grand_child.piyo, parsed.children[0].children[0].piyo)
else:
assert_eq(res.get(key), parsed.get(key))