1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
|
require 'lunit'
lunit.setprivfenv()
lunit.import "assertions"
-- =======================================================================
-- Coords test
-- =======================================================================
coords_tests = lunit.TestCase("Coords creation")
function coords_tests:test_create()
c = wl.map.Coords(25,32)
assert_equal(c.x, 25)
assert_equal(c.y, 32)
end
function coords_tests:test_change()
c = wl.map.Coords(32,25)
c.x = 10
c.y = 11
assert_equal(c.x, 10)
assert_equal(c.y, 11)
end
-- TODO: c1 == c2 for two coords
-- =======================================================================
-- BaseImmovable Usage Tests
-- =======================================================================
-- ====================
-- Creation & Deletion
-- ====================
-- Note: these next functions implicitly also check that inheritance
-- works because serial is a property of a MapObject.
immovable_creation_tests = lunit.TestCase("Immovable Creation")
function immovable_creation_tests:test_create()
imm = wl.map.create_immovable("tree1", 9, 10)
imm2 = wl.map.create_immovable("tree2", 10, 10)
assert_table(imm)
assert_table(imm2)
assert_true(imm.serial > 0)
assert_true(imm2.serial > 0)
assert_true(imm2.serial > imm.serial)
imm:remove()
imm2:remove()
end
-- ===================
-- Simple usage tests
-- ===================
immovable_tests = lunit.TestCase("Immovable usage")
function immovable_tests:setup()
self.i = wl.map.create_immovable("tree1", 9, 10)
end
function immovable_tests:teardown()
pcall(self.i.remove, self.i)
end
function immovable_tests:test_wrongusage()
self.i:remove()
assert_error("Should not be able to remove an object twice!",
self.i.remove, self.i
)
end
function immovable_tests:test_serial_is_readonly()
function setserial(i)
i.serial = 12
end
assert_error("Serial should be read only", setserial, self.i)
end
-- ==============
-- Property tests
-- ==============
immovable_property_tests = lunit.TestCase("Immovable sizes")
function immovable_property_tests:setup()
self.none = wl.map.create_immovable("pebble1", 9, 10)
self.small = wl.map.create_immovable("tree1", 10, 10)
-- No medium bob in world. Need a user immovable here!!! TODO
-- self.medium = wl.map.create_immovable("tree1", 10, 10)
self.big = wl.map.create_immovable("stones4", 15, 10)
end
function immovable_property_tests:teardown()
pcall(self.none.remove, self.none)
pcall(self.small.remove, self.small)
-- pcall(self.medium.remove, self.medium)
pcall(self.big.remove, self.big)
end
function immovable_property_tests:test_size_none()
assert_equal("none", self.none.size)
end
function immovable_property_tests:test_size_small()
assert_equal("small", self.small.size)
end
function immovable_property_tests:test_size_big()
assert_equal("big", self.big.size)
end
function immovable_property_tests:test_name_pebble()
assert_equal("pebble1", self.none.name)
end
function immovable_property_tests:test_nsme_tree()
assert_equal("tree1", self.small.name)
end
function immovable_property_tests:test_name_stone()
assert_equal("stones4", self.big.name)
end
-- function immovable_tests:test_position()
-- assert_equal(self.i.pos.x, 9)
-- assert_equal(self.i.pos.y, 10)
--end
-- function testcase:test_creation()
-- wl.map.create_immovable("tree1", 25, 14)
-- rv = wl.map.find_immovable(25, 16, 5, "tree")
-- assert_equal(rv[1], 25)
-- assert_equal(rv[1], 14)
-- end
lunit:run()
|