You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

69 lines
1.6 KiB

require("lunit")
local network = require("network")
local serialization = require("serialization")
local BaseControl = require("bc")
module("cleanup", package.seeall, lunit.testcase)
function test_clean_simple()
local bc = BaseControl:new()
bc:close()
local bc = BaseControl:finalize()
bc:close()
assert_error(function()
bc:nouns()
end)
end
function test_clean_network()
local bc1 = BaseControl:new()
local addr1 = network.get_scene()
bc1:register("cln1", 123)
bc1:register("cln2v", function() end)
bc1:finalize()
local bc2 = BaseControl:new()
local addr2 = network.get_scene()
assert_true(bc2:has_noun("cln1"), "init failed")
assert_true(bc2:has_verb("cln2v"), "init failed")
network.set_scene(addr1)
bc1:close()
network.set_scene(addr2)
assert_false(bc2:has_noun("cln1"), "close failed")
assert_false(bc2:has_verb("cln2v"), "close failed")
end
function test_clean_network2()
local bc1 = BaseControl:new()
local addr1 = network.get_scene()
local n = 0
bc1:register("cln3", 1231)
bc1:register("cln4v", function()
n = n + 1
end)
bc1:finalize()
local bc2 = BaseControl:new()
local addr2 = network.get_scene()
assert_equal(0, n, "verb called too much/little")
assert_true(bc2:call("cln4v"), "verb not called")
assert_equal(1, n, "verb called too much/little")
assert_equal(1231, bc2:get("cln3"), "noun not retrieved correctly")
network.set_scene(addr1)
bc1:close()
assert_false(bc2:call("cln4v"), "verb called")
assert_equal(1, n, "verb called too much/little")
assert_error_match("unknown", function()
bc2:get("cln3")
end)
end