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
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
|