1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-11 12:17:26 +08:00

Add deletion test

This commit is contained in:
Dean Herbert 2018-02-09 17:51:29 +09:00
parent 3b7018fcd6
commit a166932468
2 changed files with 35 additions and 3 deletions

View File

@ -42,6 +42,35 @@ namespace osu.Game.Tests.Beatmaps.IO
}
}
[Test]
public void TestImportThenDelete()
{
//unfortunately for the time being we need to reference osu.Framework.Desktop for a game host here.
using (HeadlessGameHost host = new CleanRunHeadlessGameHost("TestImportThenDelete"))
{
var osu = loadOsu(host);
var temp = prepareTempCopy(osz_path);
Assert.IsTrue(File.Exists(temp));
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);
host.Exit();
}
}
[Test]
[NonParallelizable]
[Ignore("Binding IPC on Appveyor isn't working (port in use). Need to figure out why")]

View File

@ -141,7 +141,7 @@ namespace osu.Game.Beatmaps
/// This will post a notification tracking import progress.
/// </summary>
/// <param name="paths">One or more beatmap locations on disk.</param>
public void Import(params string[] paths)
public List<BeatmapSetInfo> Import(params string[] paths)
{
var notification = new ProgressNotification
{
@ -153,18 +153,20 @@ namespace osu.Game.Beatmaps
PostNotification?.Invoke(notification);
List<BeatmapSetInfo> imported = new List<BeatmapSetInfo>();
int i = 0;
foreach (string path in paths)
{
if (notification.State == ProgressNotificationState.Cancelled)
// user requested abort
return;
return imported;
try
{
notification.Text = $"Importing ({i} of {paths.Length})\n{Path.GetFileName(path)}";
using (ArchiveReader reader = getReaderFrom(path))
Import(reader);
imported.Add(Import(reader));
notification.Progress = (float)++i / paths.Length;
@ -191,6 +193,7 @@ namespace osu.Game.Beatmaps
}
notification.State = ProgressNotificationState.Completed;
return imported;
}
private readonly object importContextLock = new object();