public void PassThruSwitchReturnsAudioFile( [NotNull] string fileName) { var path = Path.Combine("Output", "Rename-AudioFile", fileName); Directory.CreateDirectory(Path.GetDirectoryName(path)); File.Copy(Path.Combine( new DirectoryInfo(Directory.GetCurrentDirectory()).Parent?.Parent?.Parent?.Parent?.FullName, "TestFiles", "Valid", fileName), path, true); var audioFile = new TaggedAudioFile(path); using (var ps = PowerShell.Create()) { ps.Runspace = _moduleFixture.Runspace; ps.AddCommand("Rename-AudioFile") .AddParameter("AudioFile", audioFile) .AddParameter("Name", "Foo") .AddParameter("Replace") .AddParameter("PassThru"); Assert.Equal(audioFile, ps.Invoke()[0].BaseObject); } }
public void RenamesFile( [NotNull] string fileName, [NotNull] TestAudioMetadata metadata, [NotNull] string name, [NotNull] string expectedFileName) { var path = Path.Combine("Output", "Rename-AudioFile", fileName); Directory.CreateDirectory(Path.GetDirectoryName(path)); File.Copy(Path.Combine( new DirectoryInfo(Directory.GetCurrentDirectory()).Parent?.Parent?.Parent?.Parent?.FullName, "TestFiles", "Valid", fileName), path, true); var audioFile = new TaggedAudioFile(path); _mapper.Map(metadata, audioFile.Metadata); using (var ps = PowerShell.Create()) { ps.Runspace = _moduleFixture.Runspace; ps.AddCommand("Rename-AudioFile") .AddParameter("AudioFile", audioFile) .AddParameter("Name", name) .AddParameter("Replace"); ps.Invoke(); Assert.Equal(expectedFileName, Path.GetFileName(audioFile.Path)); } }
protected override void ProcessRecord() { var taggedAudioFile = new TaggedAudioFile(AudioFile); if (Key != null) { foreach (var item in Key) { taggedAudioFile.Metadata.Remove(item); } // Treat CoverArt like a text field: if (Key.Contains("CoverArt")) { taggedAudioFile.Metadata.CoverArt = null; } } else { taggedAudioFile.Metadata.Clear(); } if (PassThru) { WriteObject(taggedAudioFile); } }
protected override void ProcessRecord() { var taggedAudioFile = new TaggedAudioFile(AudioFile); var substituter = new MetadataSubstituter(taggedAudioFile.Metadata); DirectoryInfo outputDirectory; try { outputDirectory = new DirectoryInfo( this.GetFileSystemPaths(substituter.Substitute(Path), substituter.Substitute(LiteralPath)).First()); } catch (ItemNotFoundException e) { outputDirectory = new DirectoryInfo(e.ItemName); } if (ShouldProcess(AudioFile.FileInfo.FullName)) { taggedAudioFile.Metadata.CoverArt?.Export(outputDirectory, substituter.Substitute(Name), Replace); } if (PassThru) { WriteObject(taggedAudioFile); } }
protected override void ProcessRecord() { var taggedAudioFile = new TaggedAudioFile(AudioFile); taggedAudioFile.Metadata.CoverArt = CoverArt; if (PassThru) { WriteObject(taggedAudioFile); } }
protected override void ProcessRecord() { var taggedAudioFile = new TaggedAudioFile(AudioFile); new HashTableToMetadataDictionaryAdapter(Metadata).CopyTo(taggedAudioFile.Metadata); if (PassThru) { WriteObject(taggedAudioFile); } }
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)); }
protected override void ProcessRecord() { var taggedAudioFile = new TaggedAudioFile(AudioFile); if (taggedAudioFile.Metadata.CoverArt != null) { taggedAudioFile.Metadata.CoverArt = new ConvertibleCoverArt(taggedAudioFile.Metadata.CoverArt).Convert(_maxWidth, _convertToLossy, _quality); } if (PassThru) { WriteObject(taggedAudioFile); } }
protected override void ProcessRecord() { var taggedAudioFile = new TaggedAudioFile(AudioFile); if (ShouldProcess(AudioFile.FileInfo.FullName)) { taggedAudioFile.SaveMetadata(new HashTableToSettingsDictionaryAdapter(Setting)); } if (PassThru) { WriteObject(taggedAudioFile); } }
protected override void ProcessRecord() { if (!ShouldProcess(AudioFile.FileInfo.FullName)) { return; } var taggedAudioFile = new TaggedAudioFile(AudioFile); taggedAudioFile.Rename(new MetadataSubstituter(taggedAudioFile.Metadata).Substitute(Name)); if (PassThru) { WriteObject(taggedAudioFile); } }
public void LoadMetadataRefreshesMetadata([NotNull] string fileName) { var audioFile = new TaggedAudioFile(Path.Combine( new DirectoryInfo(Directory.GetCurrentDirectory()).Parent?.Parent?.Parent?.Parent?.FullName, "TestFiles", "Valid", fileName)); var expectedMetadata = new AudioMetadata(audioFile.Metadata); audioFile.Metadata.Title = "Modified"; audioFile.LoadMetadata(); Assert.True(new Comparer().Compare(expectedMetadata, audioFile.Metadata, out var differences), string.Join(" ", differences)); }
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 PassThruSwitchReturnsAudioFile(string fileName) { var path = Path.Combine("Output", "Rename-AudioFile", fileName); Directory.CreateDirectory(Path.GetDirectoryName(path) !); File.Copy(Path.Combine(PathUtility.GetTestFileRoot(), "Valid", fileName), path, true); var audioFile = new TaggedAudioFile(path); using (var ps = PowerShell.Create()) { ps.Runspace = _moduleFixture.Runspace; ps.AddCommand("Rename-AudioFile") .AddParameter("AudioFile", audioFile) .AddParameter("Name", "Foo") .AddParameter("Force") .AddParameter("PassThru"); Assert.Equal(audioFile, ps.Invoke()[0].BaseObject); } }
public void AudioFileSaveMetadata() { var index = Convert.ToInt32(TestContext.DataRow["Index"]); var fileName = Path.Combine(TestContext.DeploymentDirectory, "TestFiles", Convert.ToString(TestContext.DataRow["FileName"])); var settings = ConvertToDictionary(Convert.ToString(TestContext.DataRow["Settings"])); var metadata = ConvertToDictionary(Convert.ToString(TestContext.DataRow["Metadata"])); var coverArt = Convert.ToString(TestContext.DataRow["CoverArt"]); var expectedHash = Convert.ToString(TestContext.DataRow["ExpectedHash"]); var input = new TaggedAudioFile(new FileInfo(fileName).CopyTo("Save Metadata Row " + index + Path.GetExtension(fileName))); metadata.CopyTo(input.Metadata); if (!string.IsNullOrEmpty(coverArt)) { input.Metadata.CoverArt = new CoverArt(new FileInfo(Path.Combine(TestContext.DeploymentDirectory, "TestFiles", coverArt))); } input.SaveMetadata(settings); Assert.AreEqual <string>(expectedHash, CalculateHash(input)); }
public void PassThruSwitchReturnsAudioFile( [NotNull] string fileName, [NotNull] string analyzerName) { var audioFile = new TaggedAudioFile(Path.Combine( new DirectoryInfo(Directory.GetCurrentDirectory()).Parent?.Parent?.Parent?.Parent?.FullName, "TestFiles", "Valid", fileName)); using (var ps = PowerShell.Create()) { ps.Runspace = _moduleFixture.Runspace; ps.AddCommand("Measure-AudioFile") .AddParameter("Analyzer", analyzerName) .AddParameter("AudioFile", audioFile) .AddParameter("PassThru"); Assert.Equal(audioFile, ps.Invoke()[0].BaseObject); } }
void ProcessPath(string path) { try { ITaggedAudioFile result; try { result = new TaggedAudioFile(path); } finally { ProcessLogMessages(); } WriteObject(result); } catch (AudioException e) { WriteError(new(e, e.GetType().Name, ErrorCategory.InvalidData, Path)); } }
protected override void ProcessRecord() { var taggedAudioFile = new TaggedAudioFile(AudioFile); if (Key != null && Key.Length > 0) { var result = new MetadataDictionary(); foreach (string key in Key) { string value; if (taggedAudioFile.Metadata.TryGetValue(key, out value)) { result.Add(key, value); } } WriteObject(result); } else { WriteObject(taggedAudioFile.Metadata); } }
public void RenamesFile(string fileName, TestAudioMetadata metadata, string name, string expectedFileName) { var path = Path.Combine("Output", "Rename-AudioFile", fileName); Directory.CreateDirectory(Path.GetDirectoryName(path) !); File.Copy(Path.Combine(PathUtility.GetTestFileRoot(), "Valid", fileName), path, true); var audioFile = new TaggedAudioFile(path); _mapper.Map(metadata, audioFile.Metadata); using (var ps = PowerShell.Create()) { ps.Runspace = _moduleFixture.Runspace; ps.AddCommand("Rename-AudioFile") .AddParameter("AudioFile", audioFile) .AddParameter("Name", name) .AddParameter("Force"); ps.Invoke(); Assert.Equal(expectedFileName, Path.GetFileName(audioFile.Path)); } }
public void RenameRenamesFile( [NotNull] string fileName, [NotNull] TestAudioMetadata metadata, [NotNull] string name, [NotNull] string expectedFileName) { var path = Path.Combine("Output", "Rename", fileName); Directory.CreateDirectory(Path.GetDirectoryName(path)); File.Copy(Path.Combine( new DirectoryInfo(Directory.GetCurrentDirectory()).Parent?.Parent?.Parent?.Parent?.FullName, "TestFiles", "Valid", fileName), path, true); var audioFile = new TaggedAudioFile(path); _mapper.Map(metadata, audioFile.Metadata); audioFile.Rename(name, true); Assert.Equal(expectedFileName, Path.GetFileName(audioFile.Path)); }
protected override void ProcessRecord() { var taggedAudioFile = new TaggedAudioFile(AudioFile); var substituter = new MetadataSubstituter(taggedAudioFile.Metadata); string outputDirectory; try { outputDirectory = this.GetFileSystemPaths(substituter.Substitute(Path), substituter.Substitute(LiteralPath)).First(); } catch (ItemNotFoundException e) { outputDirectory = e.ItemName; } if (!ShouldProcess(AudioFile.FileInfo.FullName)) { return; } Directory.CreateDirectory(outputDirectory); WriteObject(new TaggedAudioFile(taggedAudioFile.FileInfo.CopyTo(System.IO.Path.Combine(outputDirectory, substituter.Substitute(Name == null ? System.IO.Path.GetFileNameWithoutExtension(taggedAudioFile.FileInfo.Name) : Name) + taggedAudioFile.FileInfo.Extension), Replace))); }