parent
a7aa7bc3ca
commit
5186b7c61d
@ -0,0 +1,158 @@
|
||||
require "lunit"
|
||||
|
||||
bc = require("bc")
|
||||
|
||||
module("test_bc", package.seeall, lunit.testcase)
|
||||
|
||||
function test_init()
|
||||
bci = bc:init("master")
|
||||
end
|
||||
|
||||
function test_set_get_noun()
|
||||
bci = bc:init("master")
|
||||
for i,val in ipairs({"string", true, 10}) do
|
||||
assert_true(bci:set_noun("light", val), "Could not set noun")
|
||||
assert_equal(val, bci:get_noun("light"), "Result does not match")
|
||||
end
|
||||
end
|
||||
|
||||
function test_set_remote_noun_failure()
|
||||
bci = bc:init("master")
|
||||
assert_false(bci:set_noun("power"), "Something did not go to plan")
|
||||
end
|
||||
|
||||
function test_request_remote_noun()
|
||||
bci = bc:init("master")
|
||||
assert_equal(12, bci:get_noun("power"), "Wrong value returned")
|
||||
end
|
||||
|
||||
function test_call_verb()
|
||||
bci = bc:init("master")
|
||||
bci:call_verb("inc_pwr", 11)
|
||||
assert_equal(11, bci:get_noun("power"), "Wrong value returned")
|
||||
end
|
||||
|
||||
function test_listen_onchange()
|
||||
bci = bc:init("master")
|
||||
i = false
|
||||
bci:listen_noun("power", "onchange", nil, function()
|
||||
i = true
|
||||
end)
|
||||
bci:call_verb("inc_pwr", 13)
|
||||
assert_true(i, "Callback was not invoked")
|
||||
end
|
||||
|
||||
function test_listen_cancel()
|
||||
bci = bc:init("master")
|
||||
i = false
|
||||
local id = bci:listen_noun("power", "onchange", nil, function()
|
||||
i = true
|
||||
end)
|
||||
bci:listen_cancel("power", id)
|
||||
bci:call_verb("inc_pwr", 13)
|
||||
assert_false(i, "Callback was not canelled")
|
||||
end
|
||||
|
||||
function test_fromafar_request_noun()
|
||||
bci = bc:init("master")
|
||||
bci:set_noun("light", true)
|
||||
assert_equal(true, bci._backend:debug_request_noun("light"), "Wrong value returned")
|
||||
end
|
||||
|
||||
function test_fromafar_call_verb()
|
||||
bci = bc:init("master")
|
||||
local i = false
|
||||
bci:on_verb("toggle_light", function()
|
||||
i = true
|
||||
end)
|
||||
bci._backend:debug_call_verb("toggle_light")
|
||||
assert_true(i, "Verb was not called")
|
||||
end
|
||||
|
||||
function test_fromafar_register_cb_onchange()
|
||||
bci = bc:init("master")
|
||||
local i = false
|
||||
bci._backend:debug_register_cb("light", "onchange", nil, function()
|
||||
i = true
|
||||
end)
|
||||
bci:set_noun("light", true)
|
||||
assert_true(i, "Callback was not invoked")
|
||||
end
|
||||
|
||||
function test_fromafar_register_cb_onrising()
|
||||
bci = bc:init("master")
|
||||
local i = false
|
||||
bci:set_noun("light", 10)
|
||||
bci._backend:debug_register_cb("light", "onrising", nil, function()
|
||||
i = true
|
||||
end)
|
||||
bci:set_noun("light", 9)
|
||||
assert_false(i, "Callback was wrongly invoked")
|
||||
bci:set_noun("light", 10)
|
||||
assert_true(i, "Callback was not invoked")
|
||||
end
|
||||
|
||||
function test_fromafar_register_cb_onfalling()
|
||||
bci = bc:init("master")
|
||||
local i = false
|
||||
bci:set_noun("light", 10)
|
||||
bci._backend:debug_register_cb("light", "onfalling", nil, function()
|
||||
i = true
|
||||
end)
|
||||
bci:set_noun("light", 11)
|
||||
assert_false(i, "Callback was wrongly invoked")
|
||||
bci:set_noun("light", 10)
|
||||
assert_true(i, "Callback was not invoked")
|
||||
end
|
||||
|
||||
function test_fromafar_register_cb_onvalue()
|
||||
bci = bc:init("master")
|
||||
local i = false
|
||||
bci:set_noun("light", 10)
|
||||
bci._backend:debug_register_cb("light", "onvalue", 11, function()
|
||||
i = true
|
||||
end)
|
||||
bci:set_noun("light", 12)
|
||||
assert_false(i, "Callback was wrongly invoked")
|
||||
bci:set_noun("light", 11)
|
||||
assert_true(i, "Callback was not invoked")
|
||||
end
|
||||
|
||||
function test_fromafar_register_cb_onabove()
|
||||
bci = bc:init("master")
|
||||
local i = false
|
||||
bci:set_noun("light", 10)
|
||||
bci._backend:debug_register_cb("light", "onabove", 20, function()
|
||||
i = true
|
||||
end)
|
||||
bci:set_noun("light", 15)
|
||||
assert_false(i, "Callback was wrongly invoked")
|
||||
bci:set_noun("light", 26)
|
||||
assert_true(i, "Callback was not invoked")
|
||||
end
|
||||
|
||||
function test_fromafar_register_cb_onbelow()
|
||||
bci = bc:init("master")
|
||||
local i = false
|
||||
bci:set_noun("light", 10)
|
||||
bci._backend:debug_register_cb("light", "onbelow", 5, function()
|
||||
i = true
|
||||
end)
|
||||
bci:set_noun("light", 11)
|
||||
assert_false(i, "Callback was wrongly invoked")
|
||||
bci:set_noun("light", 3)
|
||||
assert_true(i, "Callback was not invoked")
|
||||
end
|
||||
|
||||
function test_fromafar_cancel_cb()
|
||||
bci = bc:init("master")
|
||||
local i = false
|
||||
bci:set_noun("light", 10)
|
||||
bci._backend:debug_register_cb("light", "onchange", nil, function()
|
||||
i = true
|
||||
end)
|
||||
bci._backend:debug_cancel_cb()
|
||||
bci:set_noun("light", 3)
|
||||
assert_false(i, "Callback was not cancelled")
|
||||
end
|
||||
|
||||
Loading…
Reference in new issue