public void CreatesExpectedImageFile( int index, [NotNull] string sourceFileName, [CanBeNull] string expectedHash) { using (var ps = PowerShell.Create()) { ps.Runspace = _moduleFixture.Runspace; ps.AddCommand("Export-AudioCoverArt") .AddParameter("AudioFile", new TaggedAudioFile( Path.Combine( new DirectoryInfo(Directory.GetCurrentDirectory()).Parent?.Parent?.Parent?.Parent?.FullName, "TestFiles", "Valid", sourceFileName))) .AddParameter("Path", Path.Combine("Output", "Export-AudioCoverArt")) .AddParameter("Name", $"{index:00} - {Path.GetFileNameWithoutExtension(sourceFileName)}") .AddParameter("Replace"); var result = ps.Invoke(); if (expectedHash == null) { Assert.Empty(result); } else { Assert.Single(result); Assert.Equal(expectedHash, HashUtility.CalculateHash(((FileInfo)result[0].BaseObject).FullName)); } } }
public void GetDataReturnsExpectedValue([NotNull] string fileName, [NotNull] string expectedHash) { Assert.Equal(expectedHash, HashUtility.CalculateHash(CoverArtFactory.GetOrCreate( Path.Combine( new DirectoryInfo(Directory.GetCurrentDirectory()).Parent?.Parent?.Parent?.Parent?.FullName, "TestFiles", "Valid", fileName)) .Data.ToArray())); }
public void CoverArtGetDataReturnsExpectedValue([NotNull] string fileName, [CanBeNull] string expectedHash) { var result = new TaggedAudioFile( Path.Combine( new DirectoryInfo(Directory.GetCurrentDirectory()).Parent?.Parent?.Parent?.Parent?.FullName, "TestFiles", "Valid", fileName)) .Metadata.CoverArt?.Data.ToArray(); Assert.Equal(expectedHash, result == null ? null : HashUtility.CalculateHash(result)); }
public void CreatesExpectedOutput( int index, string fileName, TestAudioMetadata metadata, string imageFileName, SettingDictionary settings, string[] validHashes) { var sourceDirectory = Path.Combine(PathUtility.GetTestFileRoot(), "Valid"); var path = Path.Combine("Output", "Save-AudioMetadata", "Valid", $"{index:000} - {fileName}"); Directory.CreateDirectory(Path.GetDirectoryName(path) !); File.Copy(Path.Combine(sourceDirectory, fileName), path, true); var audioFile = new TaggedAudioFile(path); _mapper.Map(metadata, audioFile.Metadata); if (!string.IsNullOrEmpty(imageFileName)) { audioFile.Metadata.CoverArt = CoverArtFactory.GetOrCreate(Path.Combine(sourceDirectory, imageFileName)); } using (var ps = PowerShell.Create()) { ps.Runspace = _moduleFixture.Runspace; ps.AddCommand("Save-AudioMetadata") .AddArgument(audioFile); foreach (var item in settings) { if (item.Value is bool boolValue) { if (boolValue) { ps.AddParameter(item.Key); } } else { ps.AddParameter(item.Key, item.Value); } } ps.Invoke(); } Assert.Contains(HashUtility.CalculateHash(audioFile.Path), validHashes); }
public void ExtractCreatesExpectedImageFile( int index, [NotNull] string sourceFileName, [NotNull] string expectedHash) { var result = new CoverArtExtractor( Path.Combine("Output", "Extract"), $"{index:00} - {Path.GetFileNameWithoutExtension(sourceFileName)}") { Overwrite = true } .Extract(new TaggedAudioFile( Path.Combine( new DirectoryInfo(Directory.GetCurrentDirectory()).Parent?.Parent?.Parent?.Parent?.FullName, "TestFiles", "Valid", sourceFileName))); Assert.Equal(expectedHash, result == null ? null : HashUtility.CalculateHash(result.FullName)); }