Difference between revisions of "Module:Yesno/testcases"
Jump to navigation
Jump to search
blackwiki>Mr. Stradivarius (blank - these test cases aren't relevant for the new module code) |
blackwiki>Mr. Stradivarius (create test cases for current module) |
||
| Line 1: | Line 1: | ||
| + | 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: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: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: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 | ||
| + | |||
| + | -------------------------------------------------------------------------------- | ||
| + | -- 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 | ||
Revision as of 11:38, 18 April 2014
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: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: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: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
--------------------------------------------------------------------------------
-- 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