Jump to content

Module:File link/testcases: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
start test cases
 
add tests for the name method
Line 4: Line 4:
local ScribuntoUnit = require('Module:ScribuntoUnit')
local ScribuntoUnit = require('Module:ScribuntoUnit')
local suite = ScribuntoUnit:new()
local suite = ScribuntoUnit:new()

--------------------------------------------------------------------------------
-- Default values
--------------------------------------------------------------------------------

local d = {}
d.name = 'Example.png'

-- Default types
d.string = 'foo'
d.number = 5
d.bool = true
d.tbl = {}
d.func = function () return end


--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- Helper functions
-- Helper functions
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

function suite.dummyObject(args)
local obj = {theName = d.name}
for k, v in pairs(args or {}) do
obj[k] = v
end
return obj
end


function suite:assertError(func, ...)
function suite:assertError(func, ...)
Line 25: Line 47:
function suite:testNewInputTypes()
function suite:testNewInputTypes()
self:assertNotError(mFileLink.new, nil)
self:assertNotError(mFileLink.new, nil)
self:assertNotError(mFileLink.new, 'foo')
self:assertNotError(mFileLink.new, d.string)
self:assertError(mFileLink.new, 5)
self:assertError(mFileLink.new, d.number)
self:assertError(mFileLink.new, true)
self:assertError(mFileLink.new, d.bool)
self:assertError(mFileLink.new, {})
self:assertError(mFileLink.new, d.tbl)
self:assertError(mFileLink.new, function () return end)
self:assertError(mFileLink.new, d.func)
end

function suite:testNewFilename()
self:assertStringContains(d.name, mFileLink.new(d.name):render())
end

--------------------------------------------------------------------------------
-- Test name
--------------------------------------------------------------------------------

function suite:testNameInputTypes()
local obj = mFileLink.new()
self:assertNotError(obj.name, obj, d.string)
self:assertError(obj.name, obj, nil)
self:assertError(obj.name, obj, d.number)
self:assertError(obj.name, obj, d.bool)
self:assertError(obj.name, obj, d.tbl)
self:assertError(obj.name, obj, d.func)
end

function suite:testNameSelf()
local obj = mFileLink.new()
self:assertError(obj.name, {}, d.string)
end

function suite:testName()
local obj = mFileLink.new()
obj:name(d.name)
self:assertStringContains(d.name, obj:render())
end

function suite:testNameChaining()
local obj = mFileLink.new()
self:assertEquals(obj, obj:name(d.name))
end
end



Revision as of 13:41, 4 June 2014

-- Unit tests for [[Module:File link]]. Click on the talk page to run the tests.

local mFileLink = require('Module:File link')
local ScribuntoUnit = require('Module:ScribuntoUnit')
local suite = ScribuntoUnit:new()

--------------------------------------------------------------------------------
-- Default values
--------------------------------------------------------------------------------

local d = {}
d.name = 'Example.png'

-- Default types
d.string = 'foo'
d.number = 5
d.bool = true
d.tbl = {}
d.func = function () return end

--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------

function suite.dummyObject(args)
	local obj = {theName = d.name}
	for k, v in pairs(args or {}) do
		obj[k] = v
	end
	return obj
end

function suite:assertError(func, ...)
	local success, result = pcall(func, ...)
	self:assertFalse(success)
end

function suite:assertNotError(func, ...)
	local success, result = pcall(func, ...)
	self:assertTrue(success)
end

--------------------------------------------------------------------------------
-- Test fileLink.new
--------------------------------------------------------------------------------

function suite:testNewInputTypes()
	self:assertNotError(mFileLink.new, nil)
	self:assertNotError(mFileLink.new, d.string)
	self:assertError(mFileLink.new, d.number)
	self:assertError(mFileLink.new, d.bool)
	self:assertError(mFileLink.new, d.tbl)
	self:assertError(mFileLink.new, d.func)
end

function suite:testNewFilename()
	self:assertStringContains(d.name, mFileLink.new(d.name):render())
end

--------------------------------------------------------------------------------
-- Test name
--------------------------------------------------------------------------------

function suite:testNameInputTypes()
	local obj = mFileLink.new()
	self:assertNotError(obj.name, obj, d.string)
	self:assertError(obj.name, obj, nil)
	self:assertError(obj.name, obj, d.number)
	self:assertError(obj.name, obj, d.bool)
	self:assertError(obj.name, obj, d.tbl)
	self:assertError(obj.name, obj, d.func)
end

function suite:testNameSelf()
	local obj = mFileLink.new()
	self:assertError(obj.name, {}, d.string)
end

function suite:testName()
	local obj = mFileLink.new()
	obj:name(d.name)
	self:assertStringContains(d.name, obj:render())
end

function suite:testNameChaining()
	local obj = mFileLink.new()
	self:assertEquals(obj, obj:name(d.name))
end

return suite