1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-06 06:57:39 +08:00

Share more code between tests

This commit is contained in:
Dean Herbert 2018-02-09 18:20:18 +09:00
parent 981fa379b7
commit 623ba652ed

View File

@ -28,17 +28,7 @@ namespace osu.Game.Tests.Beatmaps.IO
{
try
{
var osu = loadOsu(host);
var temp = prepareTempCopy(osz_path);
Assert.IsTrue(File.Exists(temp));
osu.Dependencies.Get<BeatmapManager>().Import(temp);
ensureLoaded(osu);
waitForOrAssert(() => !File.Exists(temp), "Temporary file still exists after standard import", 5000);
loadOszIntoOsu(loadOsu(host));
}
finally
{
@ -57,22 +47,9 @@ namespace osu.Game.Tests.Beatmaps.IO
{
var osu = loadOsu(host);
var temp = prepareTempCopy(osz_path);
Assert.IsTrue(File.Exists(temp));
var imported = loadOszIntoOsu(osu);
var manager = osu.Dependencies.Get<BeatmapManager>();
var imported = manager.Import(temp);
ensureLoaded(osu);
manager.Delete(imported.First());
Assert.IsTrue(manager.GetAllUsableBeatmapSets().Count == 0);
Assert.IsTrue(manager.QueryBeatmapSets(_ => true).ToList().Count == 1);
Assert.IsTrue(manager.QueryBeatmapSets(_ => true).First().DeletePending);
waitForOrAssert(() => !File.Exists(temp), "Temporary file still exists after standard import", 5000);
deleteBeatmapSet(imported, osu);
}
finally
{
@ -91,32 +68,15 @@ namespace osu.Game.Tests.Beatmaps.IO
{
var osu = loadOsu(host);
var temp = prepareTempCopy(osz_path);
Assert.IsTrue(File.Exists(temp));
var imported = loadOszIntoOsu(osu);
var manager = osu.Dependencies.Get<BeatmapManager>();
deleteBeatmapSet(imported, osu);
var imported = manager.Import(temp);
ensureLoaded(osu);
manager.Delete(imported.First());
Assert.IsTrue(manager.GetAllUsableBeatmapSets().Count == 0);
Assert.IsTrue(manager.QueryBeatmapSets(_ => true).ToList().Count == 1);
Assert.IsTrue(manager.QueryBeatmapSets(_ => true).First().DeletePending);
temp = prepareTempCopy(osz_path);
Assert.IsTrue(File.Exists(temp));
var importedSecondTime = manager.Import(temp);
ensureLoaded(osu);
var importedSecondTime = loadOszIntoOsu(osu);
// check the newly "imported" beatmap is actually just the restored previous import. since it matches hash.
Assert.IsTrue(imported.First().ID == importedSecondTime.First().ID);
Assert.IsTrue(imported.First().Beatmaps.First().ID == importedSecondTime.First().Beatmaps.First().ID);
waitForOrAssert(() => !File.Exists(temp), "Temporary file still exists after standard import", 5000);
Assert.IsTrue(imported.ID == importedSecondTime.ID);
Assert.IsTrue(imported.Beatmaps.First().ID == importedSecondTime.Beatmaps.First().ID);
}
finally
{
@ -141,7 +101,6 @@ namespace osu.Game.Tests.Beatmaps.IO
var osu = loadOsu(host);
var temp = prepareTempCopy(osz_path);
Assert.IsTrue(File.Exists(temp));
var importer = new BeatmapIPCChannel(client);
@ -182,6 +141,31 @@ namespace osu.Game.Tests.Beatmaps.IO
}
}
private BeatmapSetInfo loadOszIntoOsu(OsuGameBase osu)
{
var temp = prepareTempCopy(osz_path);
Assert.IsTrue(File.Exists(temp));
var imported = osu.Dependencies.Get<BeatmapManager>().Import(temp);
ensureLoaded(osu);
waitForOrAssert(() => !File.Exists(temp), "Temporary file still exists after standard import", 5000);
return imported.FirstOrDefault();
}
private void deleteBeatmapSet(BeatmapSetInfo imported, OsuGameBase osu)
{
var manager = osu.Dependencies.Get<BeatmapManager>();
manager.Delete(imported);
Assert.IsTrue(manager.GetAllUsableBeatmapSets().Count == 0);
Assert.IsTrue(manager.QueryBeatmapSets(_ => true).ToList().Count == 1);
Assert.IsTrue(manager.QueryBeatmapSets(_ => true).First().DeletePending);
}
private string prepareTempCopy(string path)
{
var temp = Path.GetTempFileName();