Example #1
0
        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));
            }
            

        }