mirror of
https://github.com/FunkinCrew/Funkin.git
synced 2024-12-01 20:06:57 -05:00
42d8d55067
* Initial test suite * Fix some build warnings * Implemented working unit tests with coverage * Reduced some warnings * Fix a mac-specific issue * Add 2 additional unit test classes. * Multiple new unit tests * Some fixins * Remove auto-generated file * WIP on hiding ignored tests * Added list of debug hotkeys * Remove old website * Remove empty file * Add more unit tests * Fix bug where arrows would nudge BF * Fix bug where ctrl/alt would flash capsules * Fixed bug where bf-old easter egg broke * Remove duplicate lines * More test-related stuff * Some code cleanup * Add mocking and a test assets folder * More TESTS! * Update Hmm... * Update artist on Monster * More minor fixes to individual functions * 1.38% unit test coverage! * Even more tests? :O * More unit test work * Rework migration for BaseRegistry * gameover fix * Fix an issue with Lime * Fix issues with version parsing on data files * 100 total unit tests! * Added even MORE unit tests! * Additional test tweaks :3 * Fixed tests on windows by updating libraries. * Set versions for flixel-ui and hamcrest --------- Co-authored-by: Cameron Taylor <cameron.taylor.ninja@gmail.com>
118 lines
3 KiB
Haxe
118 lines
3 KiB
Haxe
package funkin.util.assets;
|
|
|
|
import funkin.util.assets.FlxAnimationUtil;
|
|
import flixel.animation.FlxAnimationController;
|
|
import funkin.data.animation.AnimationData;
|
|
import massive.munit.util.Timer;
|
|
import massive.munit.Assert;
|
|
import massive.munit.async.AsyncFactory;
|
|
import funkin.util.DateUtil;
|
|
import flixel.FlxSprite;
|
|
|
|
@:access(funkin.util.assets.FlxAnimationUtil)
|
|
class FlxAnimationUtilTest extends FunkinTest
|
|
{
|
|
public function new()
|
|
{
|
|
super();
|
|
}
|
|
|
|
@BeforeClass
|
|
public function beforeClass() {}
|
|
|
|
@AfterClass
|
|
public function afterClass() {}
|
|
|
|
@Before
|
|
public function setup() {}
|
|
|
|
@After
|
|
public function tearDown() {}
|
|
|
|
@Test
|
|
public function testAddAtlasAnimation()
|
|
{
|
|
// Build a mock child class of FlxSprite
|
|
var mockSprite = mock(FlxSprite);
|
|
var mockAnim = mock(FlxAnimationController);
|
|
mockSprite.animation = mockAnim;
|
|
|
|
var animData:AnimationData =
|
|
{
|
|
name: "testAnim",
|
|
prefix: "blablabla"
|
|
};
|
|
|
|
FlxAnimationUtil.addAtlasAnimation(mockSprite, animData);
|
|
|
|
// Verify that the method was called once.
|
|
// If not, a VerificationException will be thrown and the test will fail.
|
|
mockAnim.addByPrefix("testAnim", "blablabla", 24, false, false, false).verify(times(1));
|
|
|
|
// Verify there were no other functions called.
|
|
mockAnim.verifyZeroInteractions();
|
|
mockSprite.verifyZeroInteractions();
|
|
|
|
var animData2:AnimationData =
|
|
{
|
|
name: "testAnim2",
|
|
prefix: "blablabla2",
|
|
frameIndices: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
|
|
frameRate: 12,
|
|
flipX: true,
|
|
flipY: true,
|
|
looped: true
|
|
};
|
|
|
|
FlxAnimationUtil.addAtlasAnimation(mockSprite, animData2);
|
|
|
|
try
|
|
{
|
|
mockAnim.addByIndices("testAnim2", "blablabla2", cast anyIterator, "", 12, true, true, true).verify(times(1));
|
|
}
|
|
catch (e)
|
|
{
|
|
trace('CAUGHT EXCEPTION');
|
|
trace(e);
|
|
}
|
|
|
|
mockAnim.verifyZeroInteractions();
|
|
mockSprite.verifyZeroInteractions();
|
|
}
|
|
|
|
@Test
|
|
public function testAddAtlasAnimations()
|
|
{
|
|
// Build a mock child class of FlxSprite
|
|
var mockSprite = mock(FlxSprite);
|
|
var mockAnim = mock(FlxAnimationController);
|
|
mockSprite.animation = mockAnim;
|
|
|
|
var animData:Array<AnimationData> = [
|
|
{
|
|
name: "testAnim",
|
|
prefix: "blablabla"
|
|
},
|
|
{
|
|
name: "testAnim2",
|
|
prefix: "blablabla2"
|
|
},
|
|
{
|
|
name: "testAnim3",
|
|
prefix: "blablabla3"
|
|
}
|
|
];
|
|
|
|
FlxAnimationUtil.addAtlasAnimations(mockSprite, animData);
|
|
|
|
// Verify that the method was called once.
|
|
// If not, a VerificationException will be thrown and the test will fail.
|
|
mockAnim.addByPrefix("testAnim", "blablabla", 24, false, false, false).verify(times(1));
|
|
mockAnim.addByPrefix("testAnim2", "blablabla2", 24, false, false, false).verify(times(1));
|
|
mockAnim.addByPrefix("testAnim3", "blablabla3", 24, false, false, false).verify(times(1));
|
|
|
|
// Verify there were no other functions called.
|
|
mockAnim.verifyZeroInteractions();
|
|
mockSprite.verifyZeroInteractions();
|
|
}
|
|
}
|