示例#1
0
        internal async void APITrack_ReturnsPartTags()
        {
            var track = new Track
            {
                Artist           = "Artist",
                Title            = "Song",
                AlbumPosition    = 1,
                AlbumArtists     = new[] { "Alpha", "Bravo", "Charlie" },
                Performers       = new[] { "Delta", "Echo", "Foxtrot" },
                Album            = "Golf",
                Genres           = new[] { "Hotel", "India", "Juliet" },
                Disc             = 1u,
                Year             = 2020u,
                ArtExtraLargeUrl = ART_LINK,
                ArtLargeUrl      = ART_LINK,
                ArtMediumUrl     = ART_LINK,
                ArtSmallUrl      = ART_LINK
            };

            var mp3Tags = new MP3Tags(_fileSystem)
            {
                CurrentFile = _currentFile.ToString(),
                Count       = null,
                OrderNumberInMediaTagEnabled = false,
                Track = track
            };

            var tags = new TagLibTab();
            await mp3Tags.MapMediaTags(tags);

            Assert.Equal(track.ToString(), mp3Tags.Track.ToString());

            Assert.Equal(track.AlbumPosition, (int?)tags.Track);
            Assert.Equal(track.Title, tags.Title);
            Assert.Equal(track.AlbumArtists, tags.AlbumArtists);
            Assert.Equal(track.Performers, tags.Performers);
            Assert.Equal(track.Album, tags.Album);
            Assert.Equal(track.Genres, tags.Genres);
            Assert.Equal(track.Disc, tags.Disc);
            Assert.Equal(track.Year, tags.Year);

            var arts = new[] { track.ArtExtraLarge, track.ArtLarge, track.ArtMedium, track.ArtSmall };

            for (var index = 0; index < arts.Length; index++)
            {
                var pictureType = index == 0 ? TagLib.PictureType.FrontCover : TagLib.PictureType.Media;
                Assert.Equal(arts[index].Length, tags.Pictures[index].Data.Count);
                Assert.Equal(pictureType, tags.Pictures[index].Type);
            }
        }
示例#2
0
        internal async void TrackNumber_ReturnsTrackNumberTag()
        {
            var mp3Tags = new MP3Tags(_fileSystem)
            {
                CurrentFile = _currentFile.ToString(),
                Count       = 2,
                OrderNumberInMediaTagEnabled = true,
                Track = _track
            };

            var tags = new TagLibTab();
            await mp3Tags.MapMediaTags(tags);

            Assert.Equal(_track.Title, tags.Title);
            Assert.Equal(2u, tags.Track);
        }
示例#3
0
        internal async void DefaultTrack_ReturnsNoTags()
        {
            var mp3Tags = new MP3Tags(_fileSystem)
            {
                CurrentFile = _currentFile.ToString(),
                Count       = null,
                OrderNumberInMediaTagEnabled = false,
                Track = _track
            };

            var tags = new TagLibTab();
            await mp3Tags.MapMediaTags(tags);

            Assert.Equal(_track.ToString(), mp3Tags.Track.ToString());

            Assert.Equal(_track.Title, tags.Title);
            Assert.Equal(_track.Artist, tags.AlbumArtists.FirstOrDefault());
            Assert.Equal(_track.Artist, tags.Performers.FirstOrDefault());
            Assert.Null(tags.Album);
            Assert.Null(tags.Genres);
            Assert.Equal(0u, tags.Disc);
            Assert.Equal(0u, tags.Year);
            Assert.Equal(new TagLib.IPicture[] { }, tags.Pictures);
        }
示例#4
0
 public async Task GetArtSmallAsync()
 {
     ArtSmall = await MP3Tags.GetAlbumCover(ArtSmallUrl);
 }
示例#5
0
 public async Task GetArtMediumAsync()
 {
     ArtMedium = await MP3Tags.GetAlbumCover(ArtMediumUrl);
 }
示例#6
0
 public async Task GetArtLargeAsync()
 {
     ArtLarge = await MP3Tags.GetAlbumCover(ArtLargeUrl);
 }