From b76dd15afa3015488b313d516f2a4813334f1855 Mon Sep 17 00:00:00 2001 From: the lemons Date: Sun, 28 Aug 2022 05:35:37 -0500 Subject: write tests for world module --- tests/world.lua | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 tests/world.lua diff --git a/tests/world.lua b/tests/world.lua new file mode 100644 index 0000000..ea35105 --- /dev/null +++ b/tests/world.lua @@ -0,0 +1,58 @@ +local world = require "world" +local component = require "component" + +local M = {} + +function M.world() + local w = world() + w:object() + w:object() + w:object() + local i = 0 + for _ in w:iterate() do + i = i + 1 + end + assert(i == 3) +end + +local A = component() +local B = component({A}) +local C = component({A}, {B}) + +function M.object() + local w = world() + local o = w:object(A()) + assert(o[A]) + + o:disable() + for _ in w:iterate() do assert(false) end + for _ in w:iterate(A) do assert(false) end + + o:enable() + local ok + for _ in w:iterate() do ok = true end + assert(ok) ok = false + for _ in w:iterate(A) do ok = true end + assert(ok) ok = false + + for c in o:all_components() do + assert(c.component_type == A) + ok = true + end + assert(ok) +end + +function M.object_dependencies() + local w = world() + local o = w:object(A()) + + assert_error(o.add, o, A) + o:add(C()) + assert(o[B]) + assert_error(o.remove, o, B) + assert_error(o.remove, o, A) + o:remove(C) + assert(not o[C]) +end + +return M -- cgit v1.2.3