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 void GenerateDirectoryHash() { DirectoryHash = SongHashDataProvider.GenerateDirectoryHash(Directory); }
public string GenerateHash() { SongHash = SongHashDataProvider.GenerateHash(Directory, SongHash); return(SongHash); }