Modul:Wikidata/Formatters/wikibase-entityid/testcases
Vzhled
local myModule = require 'Modul:Wikidata/Formatters/wikibase-entityid'
local lib = require 'Modul:Wikidata/lib'
local builder = require 'Modul:Wikidata/build'
local ScribuntoUnit = require 'Modul:ScribuntoUnit'
local suite = ScribuntoUnit:new()
function suite:testGetRawValue()
local value = builder.buildValueFromDatatype{ datatype = 'wikibase-item', value = 1085 }
self:assertEquals('Q1085', myModule.getRawValue(value, {}))
self:assertEquals(1085, myModule.getRawValue(value, { numeric = true }))
local value = builder.buildValueFromDatatype{ datatype = 'wikibase-property', value = 1 }
self:assertEquals('P1', myModule.getRawValue(value, {}))
self:assertEquals(1, myModule.getRawValue(value, { numeric = true }))
end
function suite:testFormatValue()
local value = builder.buildValueFromDatatype{ datatype = 'wikibase-item', value = 1085 }
for _, numeric in ipairs{ false, true } do
local options = { numeric = numeric }
self:assertEquals(
myModule.formatEntityId('Q1085', options),
myModule.formatValue(value, options)
)
end
end
function suite:testFormatEntityId()
self:assertEquals( '[[Praha|Praha]]', myModule.formatEntityId( 'Q1085' ) )
self:assertEquals( mw.wikibase.label( 'Q4115189' ), myModule.formatEntityId( 'Q4115189' ) )
self:assertEquals(
lib.getLinkWhenNonexistingLabel('Q6'), -- neexistující položka
myModule.formatEntityId('Q6')
)
self:assertEquals(
'[[voy:en:Prague|Praha]]',
myModule.formatEntityId('Q1085', { link = 'enwikivoyage' })
)
self:assertEquals(
"[[Praha|''Brno'']]",
myModule.formatEntityId('Q1085', { text = "''Brno''" })
)
end
function suite:testFormatEntityGender()
local options = { label = 'gender' }
local value = 'Q36180'
options.id = 'Q157970' -- Božena Němcová (žena)
self:assertStringContains( 'spisovatelka', myModule.formatEntityId( value, options ), true )
self:assertStringContains( '[[Spisovatel|', myModule.formatEntityId( value, options ), true )
options.id = 'Q155855' -- Karel Čapek (muž)
self:assertNotStringContains( 'spisovatelka', myModule.formatEntityId( value, options ), true )
self:assertStringContains( 'spisovatel', myModule.formatEntityId( value, options ), true )
self:assertStringContains( '[[Spisovatel|', myModule.formatEntityId( value, options ), true )
options.id = 'Q1085' -- Praha (eh?)
self:assertNotStringContains( 'spisovatelka', myModule.formatEntityId( value, options ), true )
self:assertStringContains( 'spisovatel', myModule.formatEntityId( value, options ), true )
self:assertStringContains( '[[Spisovatel|', myModule.formatEntityId( value, options ), true )
end
function suite:testGetLinkWhenNonexistingLabel()
self:assertStringContains( 'Q6', lib.getLinkWhenNonexistingLabel( 'Q6' ), true )
end
function suite:testFormatUnit()
local options = { label = 'unitsymbol' }
self:assertEquals('[[Metr|m]]', myModule.formatEntityId('Q11573', options))
self:assertEquals(myModule.formatEntityId('Q1085', {}), myModule.formatEntityId('Q1085', options))
end
return suite