Module:ScribuntoUnit/testcases

local ScribuntoUnit = require('Module:ScribuntoUnit')

local p = {}

--------------------------------------------------------------------------------

-- Test assertEquals

local function testAssertEquals(msg, expected, actual, shouldFail)

local out = msg .. ' '

local errmsg = ''

local success, details = pcall(function ()

local suite = ScribuntoUnit:new()

suite:assertEquals(expected, actual)

end)

if not success and (type(details) ~= 'table' or not details.ScribuntoUnit) then -- a real error, not a failed assertion

local errmsg = 'Lua error: ' .. tostring(details)

end

if success == not shouldFail then

out = out .. 'OK'

else

out = out .. 'FAIL' .. (errmsg and ' -- ' .. errmsg or '')

end

return out

end

function p.testAssertEqualsWithEqualStrings()

return testAssertEquals(

'Testing that assertEquals does not throw error for equal strings...',

'abc',

'abc',

false

)

end

function p.testAssertEqualsWithUnequalStrings()

return testAssertEquals(

'Testing that assertEquals throws error for unequal strings...',

'abc',

'def',

true

)

end

--------------------------------------------------------------------------------

-- TODO: Test more methods

--

return p