public void Invalid_SongHash_WhiteSpace() { string songHash = " "; Uri downloadUri = new Uri("https://beatsaver.com/api/download/hash/2c908df9bb7aa93884ab9bfa8ddc598c3de479e9"); string tempDirectory = "TempDir"; SongDownload song = new SongDownload() { Hash = songHash }; try { var invalidJob = new DownloadJob(song, downloadUri, tempDirectory); Assert.Fail("An ArgumentNullException should have been thrown."); } catch (AssertFailedException) { throw; } catch (ArgumentNullException expectedException) { Assert.AreEqual("songHash", expectedException?.ParamName); } catch (Exception unexpectedException) { Assert.Fail($"The wrong exception was thrown. Expected ArgumentNullException, caught {unexpectedException.GetType().ToString()}"); } }
public static void TransferSongs_Test(ISongDownloadTarget downloadTarget) { //var sourceSong = @"TestSourceSongs"; var sourceDir = new DirectoryInfo(@"TestSourceSongs"); var sourceHashes = new List<string>(); foreach (var songDir in sourceDir.GetDirectories()) { if(songDir.EnumerateFiles("info.dat").Any()) sourceHashes.Add(SongHashDataProvider.GenerateHash(songDir.FullName)); } var cancelSource = new CancellationTokenSource(); var progressTest = new Action<string, int>((dir, progress) => { Console.WriteLine($"{progress}% for {dir}"); //if (progress == 100) //cancelSource.Cancel(); }); var sourceSong = new SongDownload() { Hash = "asdf", LocalDirectory = new DirectoryInfo(@"TestSourceSongs\5381-4803 Moon Pluck") }; var songs = new List<SongDownload>() { sourceSong }; var transferTask = downloadTarget.TransferSongs(songs, true, progressTest, cancelSource.Token); var test = transferTask.Result; var hashes = downloadTarget.GetExistingSongHashesAsync().Result; foreach (var sourceHash in sourceHashes) { Assert.IsTrue(hashes.Contains(sourceHash)); } //cancelSource.Cancel(); }
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)); } }