diff --git a/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs b/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs index 56c546475a..81af1819d9 100644 --- a/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs +++ b/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs @@ -401,7 +401,7 @@ namespace MediaBrowser.XbmcMetadata.Parsers break; } - case "lasplayed": + case "lastplayed": { var val = reader.ReadElementContentAsString(); if (!string.IsNullOrWhiteSpace(val) && userData != null) diff --git a/tests/Jellyfin.XbmcMetadata.Tests/Parsers/MovieNfoParserTests.cs b/tests/Jellyfin.XbmcMetadata.Tests/Parsers/MovieNfoParserTests.cs index 9710d31d85..4d4270a55d 100644 --- a/tests/Jellyfin.XbmcMetadata.Tests/Parsers/MovieNfoParserTests.cs +++ b/tests/Jellyfin.XbmcMetadata.Tests/Parsers/MovieNfoParserTests.cs @@ -1,6 +1,7 @@ using System; using System.Linq; using System.Threading; +using Jellyfin.Data.Entities; using MediaBrowser.Common.Configuration; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Library; @@ -18,19 +19,35 @@ namespace Jellyfin.XbmcMetadata.Tests.Parsers public class MovieNfoParserTests { private readonly MovieNfoParser _parser; + private readonly IUserDataManager _userDataManager; + private readonly User _testUser; public MovieNfoParserTests() { + _testUser = new User("Test User", "Auth provider", "Reset provider"); + var providerManager = new Mock(); providerManager.Setup(x => x.GetExternalIdInfos(It.IsAny())) .Returns(Enumerable.Empty()); - var config = new Mock(); - config.Setup(x => x.GetConfiguration(It.IsAny())) - .Returns(new XbmcMetadataOptions()); - var user = new Mock(); - var userData = new Mock(); - _parser = new MovieNfoParser(new NullLogger(), config.Object, providerManager.Object, user.Object, userData.Object); + var nfoConfig = new XbmcMetadataOptions() + { + UserId = "F38E6443-090B-4F7A-BD12-9CFF5020F7BC" + }; + var configManager = new Mock(); + configManager.Setup(x => x.GetConfiguration(It.IsAny())) + .Returns(nfoConfig); + + var user = new Mock(); + user.Setup(x => x.GetUserById(It.IsAny())) + .Returns(_testUser); + + var userData = new Mock(); + userData.Setup(x => x.GetUserData(_testUser, It.IsAny())) + .Returns(new UserItemData()); + + _userDataManager = userData.Object; + _parser = new MovieNfoParser(new NullLogger(), configManager.Object, providerManager.Object, user.Object, userData.Object); } [Fact] @@ -91,6 +108,12 @@ namespace Jellyfin.XbmcMetadata.Tests.Parsers Assert.Equal("Test Lyricist", lyricist!.Name); Assert.Equal(new DateTime(2019, 8, 6, 9, 1, 18), item.DateCreated); + + // userData + var userData = _userDataManager.GetUserData(_testUser, item); + Assert.Equal(2, userData.PlayCount); + Assert.True(userData.Played); + Assert.Equal(new DateTime(2021, 02, 11, 07, 47, 23), userData.LastPlayedDate); } [Fact] diff --git a/tests/Jellyfin.XbmcMetadata.Tests/Test Data/Justice League.nfo b/tests/Jellyfin.XbmcMetadata.Tests/Test Data/Justice League.nfo index 6e6da25d30..98880cdc9e 100644 --- a/tests/Jellyfin.XbmcMetadata.Tests/Test Data/Justice League.nfo +++ b/tests/Jellyfin.XbmcMetadata.Tests/Test Data/Justice League.nfo @@ -30,6 +30,9 @@ Fueled by his restored faith in humanity and inspired by Superman's selfless act, Bruce Wayne enlists the help of his newfound ally, Diana Prince, to face an even greater enemy. Together, Batman and Wonder Woman work quickly to find and recruit a team of meta-humans to stand against this newly awakened threat. But despite the formation of this unprecedented league of heroes-Batman, Wonder Woman, Aquaman, Cyborg and The Flash-it may already be too late to save the planet from an assault of catastrophic proportions. Justice for all. 120 + 2 + true + 2021-02-11 07:47:23 https://assets.fanart.tv/fanart/movies/468551/movieposter/justice-league-collection-5c24ea65591d3.jpg https://assets.fanart.tv/fanart/movies/468551/movieposter/justice-league-collection-5c24ea65591d3.jpg https://assets.fanart.tv/fanart/movies/468551/hdmovielogo/justice-league-collection-5ba855ed4239a.png @@ -81,8 +84,6 @@ https://assets.fanart.tv/fanart/movies/141052/moviebackground/justice-league-5a119394ea362.jpg Australia:M - 0 - tt0974015 tt0974015 Action