Skip to content

Commit

Permalink
add InputFrontEnd tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Geokureli committed May 9, 2024
1 parent 0107a59 commit d0b5e61
Show file tree
Hide file tree
Showing 2 changed files with 90 additions and 0 deletions.
20 changes: 20 additions & 0 deletions tests/unit/src/FlxAssert.hx
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,26 @@ class FlxAssert
Assert.fail('\nValue\n ${actual}\nwas equal to\n ${expected}\n', info);
}

public static function arrayContains<T>(array:Array<T>, item:T, ?msg:String, ?info:PosInfos):Void
{
if (array.contains(item))
Assert.assertionCount++;
else if (msg != null)
Assert.fail(msg, info);
else
Assert.fail('\nValue\n ${item}\nwas not found in array\n ${array}\n', info);
}

public static function arrayNotContains<T>(array:Array<T>, item:T, ?msg:String, ?info:PosInfos):Void
{
if (!array.contains(item))
Assert.assertionCount++;
else if (msg != null)
Assert.fail(msg, info);
else
Assert.fail('\nValue\n ${item}\nwas found in array\n ${array}\n', info);
}

public static function pointsEqual(expected:FlxPoint, actual:FlxPoint, ?msg:String, ?info:PosInfos)
{
if (expected.equals(actual))
Expand Down
70 changes: 70 additions & 0 deletions tests/unit/src/flixel/system/frontEnds/InputFrontEndTest.hx
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
package flixel.system.frontEnds;

import flixel.system.frontEnds.InputFrontEnd;
import flixel.FlxG;
import flixel.input.IFlxInputManager;
import massive.munit.Assert;

class InputFrontEndTest
{
var inputs:InputFrontEnd;

@Before
function before():Void
{
@:privateAccess
inputs = new InputFrontEnd();
}

@Test
@:haxe.warning("-WDeprecated")
function testAdd()
{
final input1 = new CustomInputManager();
inputs.add(input1);
FlxAssert.arrayContains(inputs.list, input1);

final input2 = new CustomInputManager();
inputs.add(input2);
FlxAssert.arrayNotContains(inputs.list, input2);
}

@Test
function testAddUniqueType()
{
final input1 = new CustomInputManager();
inputs.addUniqueType(input1);
FlxAssert.arrayContains(inputs.list, input1);

final input2 = new CustomInputManager();
inputs.addUniqueType(input2);
FlxAssert.arrayNotContains(inputs.list, input2);
}

@Test
function testAddInput()
{
final input1 = new CustomInputManager();
inputs.addInput(input1);
FlxAssert.arrayContains(inputs.list, input1);

final oldLength = inputs.list.length;
// add again
inputs.addInput(input1);
Assert.areEqual(inputs.list.length, oldLength);

final input2 = new CustomInputManager();
inputs.addInput(input2);
FlxAssert.arrayContains(inputs.list, input2);
}
}

class CustomInputManager implements IFlxInputManager
{
public function new () {}
public function destroy() {}
public function reset():Void {}
function update():Void {}
function onFocus():Void {}
function onFocusLost():Void {}
}

0 comments on commit d0b5e61

Please sign in to comment.