Example #1
0
        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));
                }
            }
        }
Example #2
0
 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));
        }