public static void TransferSong_Test(ISongDownloadTarget downloadTarget) { Directory.CreateDirectory(@"TestSourceSongs"); Directory.CreateDirectory(@"TestSourceSongs\5381-4803 Moon Pluck"); var sourceSong = new SongDownload() { Hash = "asdf", LocalDirectory = new DirectoryInfo(@"TestSourceSongs\5381-4803 Moon Pluck") }; var cancelSource = new CancellationTokenSource(); var transferTask = downloadTarget.TransferSong(sourceSong, true, cancelSource.Token); var result = transferTask.Result; Assert.IsTrue(result); }
public static void TransferSong_Cancelled(ISongDownloadTarget downloadTarget) { Directory.CreateDirectory(@"TestSourceSongs"); Directory.CreateDirectory(@"TestSourceSongs\5381-4803 Moon Pluck"); var sourceSong = new SongDownload() { Hash = "asdf", LocalDirectory = new DirectoryInfo(@"TestSourceSongs\5381-4803 Moon Pluck") }; var cancelSource = new CancellationTokenSource(); var transferTask = downloadTarget.TransferSong(sourceSong, true, cancelSource.Token); cancelSource.Cancel(); try { var result = transferTask.Result; } catch(AggregateException ex) { Assert.IsTrue(ex.InnerExceptions.First().GetType() == typeof(TaskCanceledException)); } }