Files
love/testing/tests/objects.lua
T
2023-10-08 18:25:00 +01:00

412 lines
13 KiB
Lua

-- objects put in their own test methods to test all attributes and class methods
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
------------------------------------AUDIO---------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- RecordingDevice (love.audio.getRecordingDevices)
love.test.objects.RecordingDevice = function(test)
test:skipTest('test class needs writing')
end
-- Source (love.audio.newSource)
love.test.objects.Source = function(test)
test:skipTest('test class needs writing')
-- local source1 = love.audio.newSource('resources/click.ogg', 'static')
--source1:clone()
--source1:getChannelCount()
--source1:getDuration()
--source1:isRelative()
--source1:queue()
--source1:getFreeBufferCount()
--source1:getType()
--source1:isPlaying()
--source1:play()
--source1:pause()
--source1:stop()
--source1:seek()
--source1:tell()
--source1:isLooping()
--source1:setLooping()
--source1:setAirAbsorption()
--source1:getAirAbsorption()
--source1:setAttenuationDistances()
--source1:getAttenuationDistances()
--source1:setCone()
--source1:getCone()
--source1:setDirection()
--source1:getDirection()
--source1:setEffect()
--source1:getEffect()
--source1:getActiveEffects()
--source1:setFilter()
--source1:getFilter()
--source1:setPitch()
--source1:getPitch()
--source1:setPosition()
--source1:getPosition()
--source1:setRelative()
--source1:setRolloff()
--source1:getRolloff()
--source1:setVelocity()
--source1:getVelocity()
--source1:setVolume()
--source1:getVolume()
--source1:setVolumeLimits()
--source1:getVolumeLimits()
end
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
------------------------------------DATA----------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- ByteData (love.data.newByteData)
love.test.objects.ByteData = function(test)
test:skipTest('test class needs writing')
end
-- CompressedData (love.data.compress)
love.test.objects.CompressedData = function(test)
test:skipTest('test class needs writing')
end
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
---------------------------------FILESYSTEM-------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- File (love.filesystem.newFile)
love.test.objects.File = function(test)
-- setup a file to play with
local file1 = love.filesystem.openFile('data.txt', 'w')
file1:write('helloworld')
test:assertObject(file1)
file1:close()
-- test read mode
file1:open('r')
test:assertEquals('r', file1:getMode(), 'check read mode')
local contents, size = file1:read()
test:assertEquals('helloworld', contents)
test:assertEquals(10, size, 'check file read')
test:assertEquals(10, file1:getSize())
local ok, err = file1:write('hello')
test:assertNotEquals(nil, err, 'check cant write in read mode')
local iterator = file1:lines()
test:assertNotEquals(nil, iterator, 'check can read lines')
test:assertEquals('data.txt', file1:getFilename(), 'check filename matches')
file1:close()
-- test write mode
file1:open('w')
test:assertEquals('w', file1:getMode(), 'check write mode')
contents, size = file1:read()
test:assertEquals(nil, contents, 'check cant read file in write mode')
test:assertEquals('string', type(size), 'check err message shown')
ok, err = file1:write('helloworld')
test:assertEquals(true, ok, 'check file write')
test:assertEquals(nil, err, 'check no err writing')
-- test open/closing
file1:open('r')
test:assertEquals(true, file1:isOpen(), 'check file is open')
file1:close()
test:assertEquals(false, file1:isOpen(), 'check file gets closed')
file1:close()
-- test buffering
-- @NOTE think I'm just not understanding how this is supposed to work?
-- I thought if buffering is enabled then nothing should get written until
-- buffer overflows?
-- file1:open('a')
-- ok, err = file1:setBuffer('full', 10000)
-- test:assertEquals(true, ok)
-- test:assertEquals('full', file1:getBuffer())
-- file1:write('morecontent')
-- file1:close()
-- file1:open('r')
-- contents, size = file1:read()
-- test:assertEquals('helloworld', contents, 'check buffered content wasnt written')
-- file1:close()
-- @NOTE :close() commits buffer content so need to check before not after
-- test buffering and flushing
file1:open('w')
ok, err = file1:setBuffer('full', 10000)
test:assertEquals(true, ok)
test:assertEquals('full', file1:getBuffer())
file1:write('replacedcontent')
file1:flush()
file1:close()
file1:open('r')
contents, size = file1:read()
test:assertEquals('replacedcontent', contents, 'check buffered content was written')
file1:close()
-- loop through file data with seek/tell until EOF
file1:open('r')
local counter = 0
for i=1,100 do
file1:seek(i)
test:assertEquals(i, file1:tell())
if file1:isEOF() == true then
counter = i
break
end
end
test:assertEquals(counter, 15)
file1:close()
end
-- FileData (love.filesystem.newFileData)
love.test.objects.FileData = function(test)
test:skipTest('test class needs writing')
end
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
------------------------------------FONT----------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- GlyphData (love.font.newGlyphData)
love.test.objects.GlyphData = function(test)
test:skipTest('test class needs writing')
end
-- Rasterizer (love.font.newRasterizer)
love.test.objects.Rasterizer = function(test)
test:skipTest('test class needs writing')
end
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
---------------------------------GRAPHICS---------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- Canvas (love.graphics.newCanvas)
love.test.objects.Canvas = function(test)
test:skipTest('test class needs writing')
end
-- Font (love.graphics.newFont)
love.test.objects.Font = function(test)
test:skipTest('test class needs writing')
end
-- Image (love.graphics.newImage)
love.test.objects.Image = function(test)
test:skipTest('test class needs writing')
end
-- Mesh (love.graphics.newMesh)
love.test.objects.Mesh = function(test)
test:skipTest('test class needs writing')
end
-- ParticleSystem (love.graphics.newParticleSystem)
love.test.objects.ParticleSystem = function(test)
test:skipTest('test class needs writing')
end
-- Quad (love.graphics.newQuad)
love.test.objects.Quad = function(test)
test:skipTest('test class needs writing')
end
-- Shader (love.graphics.newShader)
love.test.objects.Shader = function(test)
test:skipTest('test class needs writing')
end
-- SpriteBatch (love.graphics.newSpriteBatch)
love.test.objects.SpriteBatch = function(test)
test:skipTest('test class needs writing')
end
-- Text (love.graphics.newTextBatch)
love.test.objects.Text = function(test)
test:skipTest('test class needs writing')
end
-- Texture (love.graphics.newTexture)
love.test.objects.Texture = function(test)
test:skipTest('test class needs writing')
end
-- Video (love.graphics.newVideo)
love.test.objects.Video = function(test)
test:skipTest('test class needs writing')
end
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-----------------------------------IMAGE----------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- CompressedImageData (love.image.newCompressedImageData)
love.test.objects.CompressedImageData = function(test)
test:skipTest('test class needs writing')
end
-- ImageData (love.image.newImageData)
love.test.objects.ImageData = function(test)
test:skipTest('test class needs writing')
end
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
------------------------------------MATH----------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- BezierCurve (love.math.newBezierCurve)
love.test.objects.BezierCurve = function(test)
test:skipTest('test class needs writing')
end
-- RandomGenerator (love.math.RandomGenerator)
love.test.objects.RandomGenerator = function(test)
test:skipTest('test class needs writing')
end
-- Transform (love.math.Transform)
love.test.objects.Transform = function(test)
test:skipTest('test class needs writing')
end
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
----------------------------------PHYSICS---------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- Body (love.physics.newBody)
love.test.objects.Body = function(test)
test:skipTest('test class needs writing')
end
-- Contact (love.physics.World:getContacts)
love.test.objects.Contact = function(test)
test:skipTest('test class needs writing')
end
-- Fixture (love.physics.newFixture)
love.test.objects.Fixture = function(test)
test:skipTest('test class needs writing')
end
-- Joint (love.physics.newDistanceJoint)
love.test.objects.Joint = function(test)
test:skipTest('test class needs writing')
end
-- Shape (love.physics.newCircleShape)
love.test.objects.Shape = function(test)
test:skipTest('test class needs writing')
end
-- World (love.physics.newWorld)
love.test.objects.World = function(test)
test:skipTest('test class needs writing')
end
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-----------------------------------SOUND----------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- Decoder (love.sound.newDecoder)
love.test.objects.Decoder = function(test)
test:skipTest('test class needs writing')
end
-- SoundData (love.sound.newSoundData)
love.test.objects.SoundData = function(test)
test:skipTest('test class needs writing')
end
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
----------------------------------THREAD----------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- Channel (love.thread.newChannel)
love.test.objects.Channel = function(test)
test:skipTest('test class needs writing')
end
-- Thread (love.thread.newThread)
love.test.objects.Thread = function(test)
test:skipTest('test class needs writing')
end
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-----------------------------------VIDEO----------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- VideoStream (love.thread.newVideoStream)
love.test.objects.VideoStream = function(test)
test:skipTest('test class needs writing')
end