Jump to content

Module:Mapframe/sandbox/testcases

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Evad37 (talk | contribs) at 04:23, 25 March 2020 (qux -> id). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
-- Unit tests for [[Module:Example]]. Click talk page to run tests.
local mapframeModule = require('Module:Mapframe/sandbox').test -- the module to be tested
local ScribuntoUnit = require('Module:ScribuntoUnit')
local suite = ScribuntoUnit:new()

function suite:testGetParameterValue()
	-- @params {Table}args, {String}param_id, [{Number}suffix]
	-- @returns {String|nil}
	local args = {
		display = "foo",
		type = "bar",
		type2 = "bar2",
	}
	
    self:assertEquals(
    	"foo",  mapframeModule.getParameterValue(args, "display"),
    	"arg without suffix")
    
    self:assertEquals(
    	"bar",  mapframeModule.getParameterValue(args, "type"),
    	"arg without suffix (where there is also a same-named arg with a suffix)")
    
    self:assertEquals(
    	"bar2", mapframeModule.getParameterValue(args, "type", 2),
    	"arg with suffix")
    
    self:assertEquals(
    	nil, mapframeModule.getParameterValue(args, "type", 3),
    	"arg with suffix not present (same-named arg with different suffix is present)")
    
    self:assertEquals(
    	nil, mapframeModule.getParameterValue(args, "display", 3)
    	"arg with suffix not present (same-named arg without any suffix is present)")
    
    self:assertEquals(
    	nil, mapframeModule.getParameterValue(args, "id"),
    	"arg not present")
    
   self:assertEquals(
   	nil, mapframeModule.getParameterValue(args, "id", 3),
   	"-- arg with suffix not present (no same-named arg with or without any suffix)")
end

function suite:testTrimArgs()
	-- @param {Table<String, String|Number>}argsTable
	-- @returns {Table<String, String|Number>}
	local args = {
		foo = "foo",
		spaced = " spaced ",
		leadingSpace = "   leading space",
		trailingSpace = "trailingSapce    ",
		empty = "",
		number = 42,
		controlChar = "controlChar" .. string.char(0x05)
	}
	local expected = {
		foo = "foo",
		spaced = "spaced",
		leadingSpace = "leading space",
		trailingSpace = "trailingSapce",
		number = 42,
		controlChar = "controlChar"
	}
    self:assertDeepEquals(expected, mapframeModule.trimArgs(args))
end

return suite