Share more code between tests

This commit is contained in:
Dean Herbert 2018-02-09 18:20:18 +09:00
parent 981fa379b7
commit 623ba652ed
1 changed files with 33 additions and 49 deletions

View File

@ -28,17 +28,7 @@ public void TestImportWhenClosed()
{
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 @@ public void TestImportThenDelete()
{
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 @@ public void TestImportThenDeleteThenImport()
{
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 @@ public void TestImportOverIPC()
var osu = loadOsu(host);
var temp = prepareTempCopy(osz_path);
Assert.IsTrue(File.Exists(temp));
var importer = new BeatmapIPCChannel(client);
@ -182,6 +141,31 @@ public void TestImportWhenFileOpen()
}
}
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();