示例#1
0
        internal async void TrackNumber_ReturnsTrackNumberTag()
        {
            var mapper = new MapperID3(_fileSystem, _currentFile.ToString(), _track, true, 2);

            var tags = new TagLibTab();
            await mapper.MapTags(tags);

            Assert.Equal(_track.Title, tags.Title);
            Assert.Equal(2u, tags.Track);
        }
示例#2
0
        internal async Task TrackNumber_ReturnsTrackNumberTag()
        {
            var userSettings = new UserSettings {
                OrderNumberInMediaTagEnabled = true, InternalOrderNumber = 2
            };
            var mapper = new MapperID3(_fileSystem, _currentFile.ToMediaFilePath(), _track, userSettings);

            var tags = new TagLibTab();
            await mapper.MapTags(tags);

            Assert.Equal(_track.Title, tags.Title);
            Assert.Equal(2u, tags.Track);
        }
        internal async Task APITrack_ReturnsPartTags()
        {
            var track = new Track
            {
                Artist = "Artist",
                Title  = "Song",
                TitleExtendedSeparatorType = TitleSeparatorType.None,
                AlbumPosition = 1,
                AlbumArtists  = new[] { "Alpha", "Bravo", "Charlie" },
                Performers    = new[] { "Delta", "Echo", "Foxtrot" },
                Album         = "Golf",
                Genres        = new[] { "Hotel", "India", "Juliet" },
                Disc          = 1,
                Year          = 2020,
                ArtLargeUrl   = "www.google.com",
                ArtMediumUrl  = ART_LINK1,
                ArtSmallUrl   = ART_LINK2
            };

            var userSettings = new UserSettings()
            {
                OrderNumberInMediaTagEnabled = false
            };
            var mapper = new MapperID3(_fileSystem, _currentFile.ToMediaFilePath(), track, userSettings);

            var tags = new TagLibTab();
            await mapper.MapTags(tags);

            Assert.Equal("Alpha, Bravo, Charlie - Song", mapper.Track.ToString());
            Assert.Equal(track.ToString(), mapper.Track.ToString());
            Assert.Equal(track.ToTitleString(), mapper.Track.ToTitleString());

            Assert.Equal(track.AlbumPosition, (int?)tags.Track);
            Assert.Equal(track.Title, tags.Title);
            Assert.Equal(track.TitleExtended, tags.Subtitle);
            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((uint)track.Disc, tags.Disc);
            Assert.Equal((uint)track.Year, tags.Year);

            Assert.Single(tags.Pictures);
            Assert.Equal(track.ArtMedium.Length, tags.Pictures[0].Data.Count);
            Assert.Equal(TagLib.PictureType.FrontCover, tags.Pictures[0].Type);
        }
示例#4
0
        internal async void DefaultTrack_ReturnsNoTags()
        {
            var mapper = new MapperID3(_fileSystem, _currentFile.ToString(), _track, false);

            var tags = new TagLibTab();
            await mapper.MapTags(tags);

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

            Assert.Equal(_track.Title, tags.Title);
            Assert.Equal(_track.TitleExtended, tags.Subtitle);
            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.Null(tags.Pictures);
        }
示例#5
0
        internal async Task APITrack_WithParenthesisExtendedTitle_ReturnsPartTags()
        {
            var track = new Track
            {
                Artist        = "Artist",
                Title         = "Song",
                TitleExtended = "feat. Other",
                TitleExtendedSeparatorType = TitleSeparatorType.Parenthesis
            };

            var userSettings = new UserSettings {
                OrderNumberInMediaTagEnabled = false
            };
            var mapper = new MapperID3(_fileSystem, _currentFile.ToMediaFilePath(), track, userSettings);

            var tags = new TagLibTab();
            await mapper.MapTags(tags);

            Assert.Equal("Artist - Song (feat. Other)", mapper.Track.ToString());
            Assert.Equal(track.ToString(), mapper.Track.ToString());
            Assert.Equal(track.ToTitleString(), mapper.Track.ToTitleString());
        }
示例#6
0
        internal async Task DefaultTrack_ReturnsNoTags()
        {
            var userSettings = new UserSettings {
                OrderNumberInMediaTagEnabled = false
            };
            var mapper = new MapperID3(_fileSystem, _currentFile.ToMediaFilePath(), _track, userSettings);

            var tags = new TagLibTab();
            await mapper.MapTags(tags);

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

            Assert.Equal(_track.Title, tags.Title);
            Assert.Equal(_track.TitleExtended, tags.Subtitle);
            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.Null(tags.Pictures);
        }
示例#7
0
        private async Task UpdateMediaTagsFileBasedOnMediaFormat()
        {
            if (!_fileSystem.File.Exists(_currentOutputFile.ToMediaFilePath()))
            {
                return;
            }

            switch (_userSettings.MediaFormat)
            {
            case MediaFormat.Mp3:
            case MediaFormat.Wav:
                var mapper = new MapperID3(
                    _currentOutputFile.ToMediaFilePath(),
                    _track,
                    _userSettings);
                await Task.Run(mapper.SaveMediaTags);

                return;

            default:
                return;
            }
        }