Hopp til innhold

Bruker:Jeblad/Module:JSONstat/testtilfeller

Fra Wikipedia, den frie encyklopedi


-- Unit tests for [[Module:Wb]]. Click talk page to run tests.
-- Note that the test set at [[Bruker:Jeblad/SSB01222.json]] is not live and only for test purposes.
local p = require('Module:UnitTests')
local jsonstat = require('Module:JSONstat')

local categoryAsJson =
[[{
	"index": { "A": 0, "B": 1 },
	"label": { "A": "test a", "B": "test b" },
	"unit": {
		"X": { "base": "apples" },
		"Y": { "base": "bananas" },
	}
}]]
local categoryAsTable = mw.text.jsonDecode( categoryAsJson )

local bundle = 
[[{"bar":{"class":"dataset"},"foo":{"class":"dataset"}}]]

function p:test_category()
	local instance = jsonstat.Category(categoryAsTable)
	self:equals('Recall signature', instance.signature(), 'JSONstatCategory')
	self:equals_deep('Call toTable to get data as table', instance.toTable(), categoryAsTable)
	self:equals_deep('Call toJSON to get data as JSON', mw.text.jsonDecode( instance.toJSON() ), categoryAsTable)
	self:equals_deep('Call index to get the indicies on table form', instance.index(), categoryAsTable.index)
	self:equals('Call index to get a single index', instance.index('A'), categoryAsTable.index['A'])
	self:equals('Call index to get a single non-existing index', instance.index('C'), categoryAsTable.index['C'])
	self:equals_deep('Call label to get the labels on table form', instance.label(), categoryAsTable.label)
	self:equals('Call label to get a single index', instance.label('A'), categoryAsTable.label['A'])
	self:equals('Call label to get a single non-existing index', instance.label('C'), categoryAsTable.label['C'])
	self:equals_deep('Call unit to get the units on table form', instance.unit(), categoryAsTable.unit)
	self:equals_deep('Call unit to get a single unit', instance.unit('X'), categoryAsTable.unit['X'])
	self:equals_deep('Call unit to get a single non-existing unit', instance.unit('Z'), categoryAsTable.label['Z'])
end

return p