Difference between revisions of "Module:Yesno/testcases"
Jump to navigation
Jump to search
blackwiki>Mr. Stradivarius (create test cases for current module) |
blackwiki>Andrybak (+ test cases for "on" and "off" (per Module_talk:Yesno#Support_on/off_detection)) |
||
| Line 29: | Line 29: | ||
function suite:testOne() | function suite:testOne() | ||
self:assertEquals(true, yesno(1)) | self:assertEquals(true, yesno(1)) | ||
| + | end | ||
| + | |||
| + | function suite:testOn() | ||
| + | self:assertEquals(true, yesno('on')) | ||
end | end | ||
| Line 53: | Line 57: | ||
function suite:testZeroText() | function suite:testZeroText() | ||
self:assertEquals(false, yesno('0')) | self:assertEquals(false, yesno('0')) | ||
| + | end | ||
| + | |||
| + | function suite:testOff() | ||
| + | self:assertEquals(false, yesno('off')) | ||
end | end | ||
| Line 77: | Line 85: | ||
self:assertEquals(true, yesno('TRUE')) | self:assertEquals(true, yesno('TRUE')) | ||
self:assertEquals(true, yesno('trUE')) | self:assertEquals(true, yesno('trUE')) | ||
| + | end | ||
| + | |||
| + | function suite:testOnCaps() | ||
| + | self:assertEquals(false, yesno('On')) | ||
| + | self:assertEquals(false, yesno('ON')) | ||
| + | self:assertEquals(false, yesno('oN')) | ||
end | end | ||
| Line 93: | Line 107: | ||
self:assertEquals(false, yesno('FALSE')) | self:assertEquals(false, yesno('FALSE')) | ||
self:assertEquals(false, yesno('fALSe')) | self:assertEquals(false, yesno('fALSe')) | ||
| + | end | ||
| + | |||
| + | function suite:testOffCaps() | ||
| + | self:assertEquals(false, yesno('ofF')) | ||
| + | self:assertEquals(false, yesno('oFf')) | ||
| + | self:assertEquals(false, yesno('oFF')) | ||
| + | self:assertEquals(false, yesno('Off')) | ||
| + | self:assertEquals(false, yesno('OfF')) | ||
| + | self:assertEquals(false, yesno('OFf')) | ||
| + | self:assertEquals(false, yesno('OFF')) | ||
end | end | ||
Revision as of 06:38, 1 April 2020
Documentation for this module may be created at Module:Yesno/testcases/doc
local yesno = require('Module:Yesno/sandbox')
local ScribuntoUnit = require('Module:ScribuntoUnit')
local suite = ScribuntoUnit:new()
--------------------------------------------------------------------------------
-- Basic tests
--------------------------------------------------------------------------------
function suite:testYes()
self:assertEquals(true, yesno('yes'))
end
function suite:testY()
self:assertEquals(true, yesno('y'))
end
function suite:testTrueText()
self:assertEquals(true, yesno('true'))
end
function suite:testTrue()
self:assertEquals(true, yesno(true))
end
function suite:testOneText()
self:assertEquals(true, yesno('1'))
end
function suite:testOne()
self:assertEquals(true, yesno(1))
end
function suite:testOn()
self:assertEquals(true, yesno('on'))
end
function suite:testNo()
self:assertEquals(false, yesno('no'))
end
function suite:testN()
self:assertEquals(false, yesno('n'))
end
function suite:testFalseText()
self:assertEquals(false, yesno('false'))
end
function suite:testFalse()
self:assertEquals(false, yesno(false))
end
function suite:testZero()
self:assertEquals(false, yesno(0))
end
function suite:testZeroText()
self:assertEquals(false, yesno('0'))
end
function suite:testOff()
self:assertEquals(false, yesno('off'))
end
function suite:testNil()
self:assertEquals(nil, yesno(nil))
end
--------------------------------------------------------------------------------
-- Capitalisation tests
--------------------------------------------------------------------------------
function suite:testYesCaps()
self:assertEquals(true, yesno('Yes'))
self:assertEquals(true, yesno('YES'))
self:assertEquals(true, yesno('yEs'))
end
function suite:testYCaps()
self:assertEquals(true, yesno('Y'))
end
function suite:testTrueTextCaps()
self:assertEquals(true, yesno('True'))
self:assertEquals(true, yesno('TRUE'))
self:assertEquals(true, yesno('trUE'))
end
function suite:testOnCaps()
self:assertEquals(false, yesno('On'))
self:assertEquals(false, yesno('ON'))
self:assertEquals(false, yesno('oN'))
end
function suite:testNoCaps()
self:assertEquals(false, yesno('No'))
self:assertEquals(false, yesno('NO'))
self:assertEquals(false, yesno('nO'))
end
function suite:testNCaps()
self:assertEquals(false, yesno('N'))
end
function suite:testFalseTextCaps()
self:assertEquals(false, yesno('False'))
self:assertEquals(false, yesno('FALSE'))
self:assertEquals(false, yesno('fALSe'))
end
function suite:testOffCaps()
self:assertEquals(false, yesno('ofF'))
self:assertEquals(false, yesno('oFf'))
self:assertEquals(false, yesno('oFF'))
self:assertEquals(false, yesno('Off'))
self:assertEquals(false, yesno('OfF'))
self:assertEquals(false, yesno('OFf'))
self:assertEquals(false, yesno('OFF'))
end
--------------------------------------------------------------------------------
-- Number conversion tests
--------------------------------------------------------------------------------
function suite:testOneTextConversion()
self:assertEquals(true, yesno('1.0'))
self:assertEquals(true, yesno('001'))
end
function suite:testZeroTextConversion()
self:assertEquals(false, yesno('0.0'))
self:assertEquals(false, yesno('000'))
end
--------------------------------------------------------------------------------
-- Test no default set
--------------------------------------------------------------------------------
function suite:testStringNoDefault()
self:assertEquals(nil, yesno('foo'))
end
function suite:testNumberNoDefault()
self:assertEquals(nil, yesno(100))
end
function suite:testTableNoDefault()
self:assertEquals(nil, yesno({}))
end
function suite:testFunctionNoDefault()
self:assertEquals(nil, yesno(function() return true end))
end
function suite:testBlankStringNoDefault()
self:assertEquals(nil, yesno(''))
end
--------------------------------------------------------------------------------
-- Test default set
--------------------------------------------------------------------------------
function suite:testStringDefaultSet()
self:assertEquals('default', yesno('foo', 'default'))
end
function suite:testNumberDefaultSet()
self:assertEquals('default', yesno(100, 'default'))
end
function suite:testTableDefaultSet()
self:assertEquals('default', yesno({}, 'default'))
end
function suite:testFunctionDefaultSet()
self:assertEquals('default', yesno(function() return true end, 'default'))
end
function suite:testBlankStringDefaultSet()
self:assertEquals('default', yesno('', 'default'))
end
--------------------------------------------------------------------------------
-- Test default precedence with true, false, and nil
--------------------------------------------------------------------------------
function suite:testYesDefaultPrecedence()
self:assertEquals(true, yesno('yes', 'default'))
end
function suite:testYDefaultPrecedence()
self:assertEquals(true, yesno('y', 'default'))
end
function suite:testTrueTextDefaultPrecedence()
self:assertEquals(true, yesno('true', 'default'))
end
function suite:testTrueDefaultPrecedence()
self:assertEquals(true, yesno(true, 'default'))
end
function suite:testOneTextDefaultPrecedence()
self:assertEquals(true, yesno('1', 'default'))
end
function suite:testOneDefaultPrecedence()
self:assertEquals(true, yesno(1, 'default'))
end
function suite:testNoDefaultPrecedence()
self:assertEquals(false, yesno('no', 'default'))
end
function suite:testNDefaultPrecedence()
self:assertEquals(false, yesno('n', 'default'))
end
function suite:testFalseTextDefaultPrecedence()
self:assertEquals(false, yesno('false', 'default'))
end
function suite:testFalseDefaultPrecedence()
self:assertEquals(false, yesno(false, 'default'))
end
function suite:testZeroDefaultPrecedence()
self:assertEquals(false, yesno(0, 'default'))
end
function suite:testZeroTextDefaultPrecedence()
self:assertEquals(false, yesno('0', 'default'))
end
function suite:testNilDefaultPrecedence()
self:assertEquals(nil, yesno(nil, 'default'))
end
return suite