protected override void ProcessRecord()
        {
            var taggedAudioFile = new TaggedAudioFile(AudioFile);

            if (ShouldProcess(AudioFile.FileInfo.FullName))
            {
                taggedAudioFile.SaveMetadata(new HashTableToSettingsDictionaryAdapter(Setting));
            }

            if (PassThru)
            {
                WriteObject(taggedAudioFile);
            }
        }
        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));
        }