forked from github/server
112 lines
3.3 KiB
Lua
112 lines
3.3 KiB
Lua
require "lunit"
|
|
|
|
module("tests.undead", package.seeall, lunit.testcase)
|
|
|
|
function setup()
|
|
eressea.free_game()
|
|
eressea.settings.set("nmr.timeout", "0")
|
|
eressea.settings.set("NewbieImmunity", "0")
|
|
eressea.settings.set("rules.food.flags", "4")
|
|
eressea.settings.set("rules.peasants.growth", "1")
|
|
eressea.settings.set("study.random_progress", "0")
|
|
eressea.settings.set("GiveRestriction", "0")
|
|
end
|
|
|
|
function test_give_undead_to_self()
|
|
-- generic undead cannot be given
|
|
local r = region.create(0, 0, "plain")
|
|
local f = faction.create("human")
|
|
local u1 = unit.create(f, r, 2, "undead")
|
|
local u2 = unit.create(f, r, 1, "undead")
|
|
u1:add_order("GIB " .. itoa36(u2.id) .. " 1 PERSON")
|
|
process_orders()
|
|
assert_equal(1, u1.number)
|
|
assert_equal(2, u2.number)
|
|
end
|
|
|
|
function test_give_self_clone_fail()
|
|
-- disallow giving basic undead units
|
|
local r = region.create(0, 0, "plain")
|
|
local f = faction.create("human")
|
|
local u1 = unit.create(f, r, 2, "clone")
|
|
local u2 = unit.create(f, r, 1, "clone")
|
|
u1:add_order("GIB " .. itoa36(u2.id) .. " 1 PERSON")
|
|
process_orders()
|
|
assert_equal(2, u1.number)
|
|
assert_equal(1, u2.number)
|
|
end
|
|
|
|
local function setup_give_self(race)
|
|
local r = region.create(0, 0, "plain")
|
|
local f = faction.create("human")
|
|
local u1 = unit.create(f, r, 2, race)
|
|
local u2 = unit.create(f, r, 1, race)
|
|
u1:add_order("GIB " .. itoa36(u2.id) .. " 1 PERSON")
|
|
return u1, u2
|
|
end
|
|
|
|
local function setup_give_other(race)
|
|
local r = region.create(0, 0, "plain")
|
|
local f1 = faction.create("human")
|
|
local f2 = faction.create("human")
|
|
local u1 = unit.create(f1, r, 2, race)
|
|
local u2 = unit.create(f2, r, 1, race)
|
|
u2:add_order("KONTAKTIERE " .. itoa36(u1.id))
|
|
u1:add_order("GIB " .. itoa36(u2.id) .. " 1 PERSON")
|
|
return u1, u2
|
|
end
|
|
|
|
function test_give_other_zombie_fail()
|
|
u1, u2 = setup_give_other("zombie")
|
|
process_orders()
|
|
assert_equal(2, u1.number)
|
|
assert_equal(1, u2.number)
|
|
end
|
|
|
|
function test_give_self_zombie_okay()
|
|
-- allow giving zombie units to own units of same race
|
|
u1, u2 = setup_give_self("zombie")
|
|
process_orders()
|
|
assert_equal(1, u1.number)
|
|
assert_equal(2, u2.number)
|
|
end
|
|
|
|
function test_give_self_skeleton_okay()
|
|
-- allow giving skeleton units to own units of same race
|
|
u1, u2 = setup_give_self("skeleton")
|
|
process_orders()
|
|
assert_equal(1, u1.number)
|
|
assert_equal(2, u2.number)
|
|
end
|
|
|
|
function test_give_self_ghoul_okay()
|
|
-- allow giving ghoul units to own units of same race
|
|
u1, u2 = setup_give_self("ghoul")
|
|
process_orders()
|
|
assert_equal(1, u1.number)
|
|
assert_equal(2, u2.number)
|
|
end
|
|
|
|
function test_give_self_ghast_okay()
|
|
-- allow giving ghast units to own units of same race
|
|
u1, u2 = setup_give_self("ghast")
|
|
process_orders()
|
|
assert_equal(1, u1.number)
|
|
assert_equal(2, u2.number)
|
|
end
|
|
|
|
function test_give_self_juju_okay()
|
|
-- allow giving juju units to own units of same race
|
|
u1, u2 = setup_give_self("juju")
|
|
process_orders()
|
|
assert_equal(1, u1.number)
|
|
assert_equal(2, u2.number)
|
|
end
|
|
|
|
function test_give_self_skeletonlord_okay()
|
|
-- allow giving skeletonlord units to own units of same race
|
|
u1, u2 = setup_give_self("skeletonlord")
|
|
process_orders()
|
|
assert_equal(1, u1.number)
|
|
assert_equal(2, u2.number)
|
|
end
|