Jump to content

Module:GameData/EvoCreo2/testcases

From Creopedia

Documentation for this module may be created at Module:GameData/EvoCreo2/testcases/doc

require( 'strict' )

local ScribuntoUnit = require( 'Module:ScribuntoUnit' )
local ec2 = require( 'Module:GameData/EvoCreo2' )

local suite = ScribuntoUnit:new()

function suite:testDecodeValid()
	local list = ec2.decodeCreoTable( '{"creoTable":[{"name":"Fyroey","id":1}]}' )
	self:assertEquals( 1, #list )
	self:assertEquals( 'Fyroey', list[1].name )
end

function suite:testDecodeSentinel()
	self:assertTrue( ec2.decodeCreoTable( 'Could not retrieve API Data' ) == nil )
end

function suite:testDecodeEmpty()
	self:assertTrue( ec2.decodeCreoTable( '' ) == nil )
end

function suite:testDecodeNil()
	self:assertTrue( ec2.decodeCreoTable( nil ) == nil )
end

function suite:testDecodeMalformed()
	self:assertTrue( ec2.decodeCreoTable( '{not json' ) == nil )
end

function suite:testDecodeMissingCreoTable()
	self:assertTrue( ec2.decodeCreoTable( '{"foo":1}' ) == nil )
end

function suite:testFindHit()
	local list = { { name = 'A' }, { name = 'B' } }
	self:assertEquals( 'B', ec2.findCreo( list, 'B' ).name )
end

function suite:testFindMiss()
	self:assertTrue( ec2.findCreo( { { name = 'A' } }, 'Z' ) == nil )
end

function suite:testFindNilList()
	self:assertTrue( ec2.findCreo( nil, 'A' ) == nil )
end

return suite