[ascii] Test graphics backend, first unit test

This commit is contained in:
2021-04-26 18:13:52 -06:00
parent 5e16fd84f4
commit 31e918e3f2
7 changed files with 83 additions and 5 deletions

View File

@@ -0,0 +1,36 @@
package cases;
import utest.Test;
import utest.Assert;
import asciilib.GameLogic;
import asciilib.Game;
import asciilib.Graphics;
import asciilib.Colors;
import asciilib.backends.test.TestGraphicsBackend;
class DrawOnlyWhenModifiedGameLogic implements GameLogic {
var firstDraw = true;
public function new() {}
public function update(deltaSeconds:Float):Void {}
public function draw(graphics:Void->Graphics):Void {
if (firstDraw) {
graphics().setLetter(0, 0, {char: "@", color: Colors.Red});
firstDraw = false;
}
}
}
class DrawOnlyWhenModifiedTestCase extends Test {
function testDrawOnlyWhenModified() {
var game = Main.newGame(new DrawOnlyWhenModifiedGameLogic());
var graphicsBackend:TestGraphicsBackend = cast game.graphicsBackend;
game.draw();
Assert.equals("@", game.graphics.getLetter(0, 0).char);
Assert.equals(1, graphicsBackend.drawCalled);
game.draw();
Assert.equals(1, graphicsBackend.drawCalled);
}
}