You can edit almost every page by Creating an account and confirming your email.

Module:Middleclass/testcases

From EverybodyWiki Bios & Wiki

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

-- Tests for [[Module:Middleclass]]. Click talk page to run tests.
local middleclass = require('Module:Middleclass') -- the module to be tested
local ScribuntoUnit = require('Module:ScribuntoUnit')
local suite = ScribuntoUnit:new()

local TestClass0 = middleclass('TestClass0')

function TestClass0:testMe()
	return 1234
end

function suite:testSimple()
	self:assertEquals(TestClass0:new():testMe(), 1234)
end

function suite:testImplicitNew()
	self:assertEquals(TestClass0():testMe(), 1234)
end

local TestClass1 = middleclass('TestClass1', TestClass0)

function TestClass1:initialize()
	self.val0 = 6
	self.val1 = {}
	self.val2 = 8
end

function TestClass1:testMe0()
	return self.val0
end

function TestClass1:testMe1()
	return self.val1
end

function TestClass1:testMe2()
	return self.val2
end

function suite:testNumericValues()
	local obj = TestClass1:new()
	self:assertEquals(obj:testMe0(), 6)
	self:assertEquals(obj:testMe2(), 8)
end

function suite:testInheritance()
	-- Test invoking the inherited TestClass0:testMe() method from an instance of TestClass1
	self:assertEquals(TestClass1:new():testMe(), 1234)
end

function TestClass1:mySuper()
	return TestClass1.super
end

function suite:testSuper()
	self:assertEquals(TestClass1:new():mySuper(), TestClass0)
end

function suite:testTableValue()
	self:assertDeepEquals(TestClass1:new():testMe1(), {})
end

return suite