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 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));
        }