ProviderIdParserTests.cs 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. using System;
  2. using MediaBrowser.Common.Providers;
  3. using Xunit;
  4. namespace Jellyfin.Common.Tests.Providers
  5. {
  6. public class ProviderIdParserTests
  7. {
  8. [Theory]
  9. [InlineData("tt1234567", "tt1234567")]
  10. [InlineData("tt12345678", "tt12345678")]
  11. [InlineData("https://www.imdb.com/title/tt1234567", "tt1234567")]
  12. [InlineData("https://www.imdb.com/title/tt12345678", "tt12345678")]
  13. [InlineData(@"multiline\nhttps://www.imdb.com/title/tt1234567", "tt1234567")]
  14. [InlineData(@"multiline\nhttps://www.imdb.com/title/tt12345678", "tt12345678")]
  15. [InlineData("tt1234567tt7654321", "tt1234567")]
  16. [InlineData("tt12345678tt7654321", "tt12345678")]
  17. [InlineData("tt123456789", "tt12345678")]
  18. public void FindImdbId_Valid_Success(string text, string expected)
  19. {
  20. Assert.True(ProviderIdParsers.TryFindImdbId(text, out ReadOnlySpan<char> parsedId));
  21. Assert.Equal(expected, parsedId.ToString());
  22. }
  23. [Theory]
  24. [InlineData("tt123456")]
  25. [InlineData("https://www.imdb.com/title/tt123456")]
  26. [InlineData("Jellyfin")]
  27. public void FindImdbId_Invalid_Success(string text)
  28. {
  29. Assert.False(ProviderIdParsers.TryFindImdbId(text, out _));
  30. }
  31. [Theory]
  32. [InlineData("https://www.themoviedb.org/movie/30287-fallo", "30287")]
  33. [InlineData("themoviedb.org/movie/30287", "30287")]
  34. public void FindTmdbMovieId_Valid_Success(string text, string expected)
  35. {
  36. Assert.True(ProviderIdParsers.TryFindTmdbMovieId(text, out ReadOnlySpan<char> parsedId));
  37. Assert.Equal(expected, parsedId.ToString());
  38. }
  39. [Theory]
  40. [InlineData("https://www.themoviedb.org/movie/fallo-30287")]
  41. [InlineData("https://www.themoviedb.org/tv/1668-friends")]
  42. public void FindTmdbMovieId_Invalid_Success(string text)
  43. {
  44. Assert.False(ProviderIdParsers.TryFindTmdbMovieId(text, out _));
  45. }
  46. [Theory]
  47. [InlineData("https://www.themoviedb.org/tv/1668-friends", "1668")]
  48. [InlineData("themoviedb.org/tv/1668", "1668")]
  49. public void FindTmdbSeriesId_Valid_Success(string text, string expected)
  50. {
  51. Assert.True(ProviderIdParsers.TryFindTmdbSeriesId(text, out ReadOnlySpan<char> parsedId));
  52. Assert.Equal(expected, parsedId.ToString());
  53. }
  54. [Theory]
  55. [InlineData("https://www.themoviedb.org/tv/friends-1668")]
  56. [InlineData("https://www.themoviedb.org/movie/30287-fallo")]
  57. public void FindTmdbSeriesId_Invalid_Success(string text)
  58. {
  59. Assert.False(ProviderIdParsers.TryFindTmdbSeriesId(text, out _));
  60. }
  61. [Theory]
  62. [InlineData("https://www.thetvdb.com/?tab=series&id=121361", "121361")]
  63. [InlineData("thetvdb.com/?tab=series&id=121361", "121361")]
  64. public void FindTvdbId_Valid_Success(string text, string expected)
  65. {
  66. Assert.True(ProviderIdParsers.TryFindTvdbId(text, out ReadOnlySpan<char> parsedId));
  67. Assert.Equal(expected, parsedId.ToString());
  68. }
  69. [Theory]
  70. [InlineData("thetvdb.com/?tab=series&id=Jellyfin121361")]
  71. [InlineData("https://www.themoviedb.org/tv/1668-friends")]
  72. public void FindTvdbId_Invalid_Success(string text)
  73. {
  74. Assert.False(ProviderIdParsers.TryFindTvdbId(text, out _));
  75. }
  76. }
  77. }