2023-08-22 08:27:30 +00:00
|
|
|
package funkin.data.notestyle;
|
|
|
|
|
|
|
|
import funkin.data.notestyle.NoteStyleRegistry;
|
|
|
|
import funkin.play.notes.notestyle.NoteStyle;
|
|
|
|
import massive.munit.Assert;
|
|
|
|
import massive.munit.async.AsyncFactory;
|
|
|
|
import massive.munit.util.Timer;
|
|
|
|
|
2023-08-30 22:31:59 +00:00
|
|
|
@:nullSafety
|
2023-08-22 08:27:30 +00:00
|
|
|
@:access(funkin.play.notes.notestyle.NoteStyle)
|
|
|
|
@:access(funkin.data.notestyle.NoteStyleRegistry)
|
|
|
|
class NoteStyleRegistryTest extends FunkinTest
|
|
|
|
{
|
|
|
|
public function new()
|
|
|
|
{
|
|
|
|
super();
|
|
|
|
}
|
|
|
|
|
|
|
|
@BeforeClass
|
2023-08-30 22:31:59 +00:00
|
|
|
public function beforeClass():Void
|
2023-08-22 08:27:30 +00:00
|
|
|
{
|
|
|
|
NoteStyleRegistry.instance.loadEntries();
|
|
|
|
}
|
|
|
|
|
|
|
|
@AfterClass
|
2023-08-30 22:31:59 +00:00
|
|
|
public function afterClass():Void {}
|
2023-08-22 08:27:30 +00:00
|
|
|
|
|
|
|
@Before
|
2023-08-30 22:31:59 +00:00
|
|
|
public function setup():Void {}
|
2023-08-22 08:27:30 +00:00
|
|
|
|
|
|
|
@After
|
2023-08-30 22:31:59 +00:00
|
|
|
public function tearDown():Void {}
|
2023-08-22 08:27:30 +00:00
|
|
|
|
|
|
|
@Test
|
2023-08-30 22:31:59 +00:00
|
|
|
public function testValid():Void
|
2023-08-22 08:27:30 +00:00
|
|
|
{
|
|
|
|
Assert.isNotNull(NoteStyleRegistry.instance);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
2023-08-30 22:31:59 +00:00
|
|
|
public function testParseEntryData():Void
|
2023-08-22 08:27:30 +00:00
|
|
|
{
|
2023-08-30 22:31:59 +00:00
|
|
|
var result:Null<NoteStyleData> = NoteStyleRegistry.instance.parseEntryData("test2");
|
|
|
|
|
|
|
|
Assert.isNotNull(result);
|
2023-08-22 08:27:30 +00:00
|
|
|
|
|
|
|
Assert.areEqual(result.version, "1.0.0");
|
|
|
|
Assert.areEqual(result.name, "Test2");
|
|
|
|
Assert.areEqual(result.author, "Eric");
|
|
|
|
Assert.areEqual(result.fallback, "funkin");
|
|
|
|
|
2023-08-30 22:31:59 +00:00
|
|
|
Assert.isNotNull(result.assets);
|
|
|
|
|
|
|
|
var note:Null<NoteStyleData.NoteStyleAssetData<NoteStyleData.NoteStyleData_Note>> = result.assets.note;
|
|
|
|
Assert.isNotNull(note);
|
|
|
|
|
|
|
|
Assert.areEqual(note.assetPath, "shared:coolstuff");
|
|
|
|
Assert.areEqual(note.scale, 1.8);
|
|
|
|
Assert.areEqual(note.data.left.prefix, "noteLeft1");
|
|
|
|
Assert.areEqual(note.data.down.prefix, "noteDown3");
|
|
|
|
Assert.areEqual(note.data.up.prefix, "noteUp2");
|
|
|
|
Assert.areEqual(note.data.right.prefix, "noteRight4");
|
2023-08-22 08:27:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
2023-08-30 22:31:59 +00:00
|
|
|
public function testFetchEntry():Void
|
2023-08-22 08:27:30 +00:00
|
|
|
{
|
2023-08-30 22:31:59 +00:00
|
|
|
var result:Null<NoteStyle> = NoteStyleRegistry.instance.fetchEntry("test2");
|
|
|
|
|
|
|
|
Assert.isNotNull(result);
|
2023-08-22 08:27:30 +00:00
|
|
|
|
|
|
|
Assert.areEqual(result.toString(), "NoteStyle(test2)");
|
|
|
|
Assert.areEqual(result.getName(), "Test2");
|
|
|
|
Assert.areEqual(result.getAuthor(), "Eric");
|
|
|
|
Assert.areEqual(result.getFallbackID(), "funkin");
|
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
2023-08-30 22:31:59 +00:00
|
|
|
public function testFetchBadEntry():Void
|
2023-08-22 08:27:30 +00:00
|
|
|
{
|
2023-08-30 22:31:59 +00:00
|
|
|
var result:Null<NoteStyle> = NoteStyleRegistry.instance.fetchEntry("blablabla");
|
2023-08-22 08:27:30 +00:00
|
|
|
|
2023-08-30 22:31:59 +00:00
|
|
|
Assert.isNull(result);
|
2023-08-22 08:27:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
2023-08-30 22:31:59 +00:00
|
|
|
public function testFetchDefault():Void
|
2023-08-22 08:27:30 +00:00
|
|
|
{
|
2023-09-08 21:46:10 +00:00
|
|
|
var nsrMock = Mockatoo.mock(NoteStyleRegistry);
|
2023-08-22 08:27:30 +00:00
|
|
|
|
|
|
|
nsrMock.fetchDefault().callsRealMethod();
|
|
|
|
|
|
|
|
// Perform the call.
|
|
|
|
nsrMock.fetchDefault();
|
|
|
|
|
|
|
|
// Verify the underlying call.
|
|
|
|
|
|
|
|
nsrMock.fetchEntry(NoteStyleRegistry.DEFAULT_NOTE_STYLE_ID).verify(times(1));
|
|
|
|
}
|
|
|
|
}
|