From e8873563856ad813cb4b7695b0aaa85c32729a4c Mon Sep 17 00:00:00 2001 From: Wendell Jones Date: Sat, 21 Feb 2026 15:46:18 -0500 Subject: [PATCH] Improve XML docs and formatting in tests and constants Added and enhanced XML documentation comments across the codebase, including detailed summaries and parameter descriptions for methods, classes, and constants. Documented all MatroskaConstants. Improved test readability with comments and explicit variable declarations. Made minor formatting and consistency fixes in test files. No functional changes. Updated project cache and binary files to reflect documentation improvements. --- Emby.Naming/obj/project.nuget.cache | 2 +- Emby.Photos/obj/project.nuget.cache | 2 +- .../obj/project.nuget.cache | 2 +- Jellyfin.Api/obj/project.nuget.cache | 2 +- Jellyfin.Data/obj/project.nuget.cache | 2 +- .../obj/project.nuget.cache | 2 +- Jellyfin.Server/obj/project.nuget.cache | 2 +- MediaBrowser.Common/obj/project.nuget.cache | 2 +- .../obj/project.nuget.cache | 2 +- .../obj/project.nuget.cache | 2 +- .../obj/project.nuget.cache | 2 +- MediaBrowser.Model/obj/project.nuget.cache | 2 +- .../obj/project.nuget.cache | 2 +- .../obj/project.nuget.cache | 2 +- .../netstandard2.0/Jellyfin.CodeAnalysis.dll | Bin 8704 -> 8704 bytes .../netstandard2.0/Jellyfin.CodeAnalysis.pdb | Bin 10192 -> 10192 bytes .../Jellyfin.CodeAnalysis.AssemblyInfo.cs | 2 +- ...yfin.CodeAnalysis.AssemblyInfoInputs.cache | 2 +- .../netstandard2.0/Jellyfin.CodeAnalysis.dll | Bin 8704 -> 8704 bytes .../netstandard2.0/Jellyfin.CodeAnalysis.pdb | Bin 10192 -> 10192 bytes .../obj/project.nuget.cache | 2 +- .../obj/project.nuget.cache | 2 +- .../obj/project.nuget.cache | 2 +- .../obj/project.nuget.cache | 2 +- src/Jellyfin.Drawing/obj/project.nuget.cache | 2 +- .../obj/project.nuget.cache | 2 +- src/Jellyfin.LiveTv/obj/project.nuget.cache | 2 +- .../obj/project.nuget.cache | 2 +- .../FfProbe/FfProbeKeyframeExtractor.cs | 5 + .../Matroska/MatroskaConstants.cs | 62 +++++++++++ .../obj/project.nuget.cache | 2 +- .../obj/project.nuget.cache | 2 +- .../obj/project.nuget.cache | 2 +- .../obj/project.nuget.cache | 2 +- .../obj/project.nuget.cache | 2 +- .../CopyToExtensionsTests.cs | 32 +++++- .../Json/Converters/JsonBoolNumberTests.cs | 30 ++++-- .../Json/Converters/JsonBoolStringTests.cs | 8 +- .../JsonCommaDelimitedCollectionTests.cs | 101 ++++++++++-------- .../JsonCommaDelimitedIReadOnlyListTests.cs | 51 +++++---- .../JsonDefaultStringEnumConverterTests.cs | 6 +- .../Json/Converters/JsonFlagEnumTests.cs | 4 +- .../Converters/JsonStringConverterTests.cs | 4 +- .../obj/project.nuget.cache | 2 +- .../obj/project.nuget.cache | 2 +- .../obj/project.nuget.cache | 2 +- .../obj/project.nuget.cache | 2 +- .../obj/project.nuget.cache | 2 +- .../Cryptography/PasswordHashTests.cs | 10 +- .../obj/project.nuget.cache | 2 +- .../AudioBook/AudioBookFileInfoTests.cs | 4 +- .../AudioBook/AudioBookListResolverTests.cs | 18 ++-- .../AudioBook/AudioBookResolverTests.cs | 4 +- .../Common/NamingOptionsTest.cs | 4 +- .../ExternalFiles/ExternalPathParserTests.cs | 2 +- .../Music/MultiDiscAlbumTests.cs | 4 +- .../TV/AbsoluteEpisodeNumberTests.cs | 4 +- .../TV/DailyEpisodeTests.cs | 4 +- .../TV/EpisodeNumberTests.cs | 4 +- .../TV/EpisodeNumberWithoutSeasonTests.cs | 4 +- .../TV/EpisodePathParserTest.cs | 4 +- .../TV/MultiEpisodeTests.cs | 4 +- .../TV/SeasonNumberTests.cs | 4 +- .../TV/SeasonPathParserTests.cs | 2 +- .../TV/SeriesPathParserTest.cs | 4 +- .../TV/SeriesResolverTests.cs | 4 +- .../TV/SimpleEpisodeTests.cs | 4 +- .../TV/TvParserHelpersTest.cs | 2 +- .../Video/CleanDateTimeTests.cs | 4 +- .../Video/CleanStringTests.cs | 4 +- .../Jellyfin.Naming.Tests/Video/ExtraTests.cs | 4 +- .../Video/Format3DTests.cs | 6 +- .../Video/MultiVersionTests.cs | 38 +++---- .../Jellyfin.Naming.Tests/Video/StackTests.cs | 48 ++++----- .../Jellyfin.Naming.Tests/Video/StubTests.cs | 6 +- .../Video/VideoListResolverTests.cs | 44 ++++---- .../Video/VideoResolverTests.cs | 6 +- ...oreApp,Version=v10.0.AssemblyAttributes.cs | 2 +- .../Jellyfin.Naming.Tests.AssemblyInfo.cs | 1 - .../obj/project.nuget.cache | 2 +- .../obj/project.nuget.cache | 2 +- .../obj/project.nuget.cache | 2 +- .../obj/project.nuget.cache | 2 +- .../obj/project.nuget.cache | 2 +- .../obj/project.nuget.cache | 2 +- .../obj/project.nuget.cache | 2 +- 86 files changed, 385 insertions(+), 255 deletions(-) diff --git a/Emby.Naming/obj/project.nuget.cache b/Emby.Naming/obj/project.nuget.cache index 1ef4bf68..196a06b0 100644 --- a/Emby.Naming/obj/project.nuget.cache +++ b/Emby.Naming/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "qWdnDCktJdY=", + "dgSpecHash": "M3eEjXrprD8=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\Emby.Naming\\Emby.Naming.csproj", "expectedPackageFiles": [ diff --git a/Emby.Photos/obj/project.nuget.cache b/Emby.Photos/obj/project.nuget.cache index db61bb8d..71b5a2a2 100644 --- a/Emby.Photos/obj/project.nuget.cache +++ b/Emby.Photos/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "DaMoU2oavX0=", + "dgSpecHash": "leFWYb0Dcsk=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\Emby.Photos\\Emby.Photos.csproj", "expectedPackageFiles": [ diff --git a/Emby.Server.Implementations/obj/project.nuget.cache b/Emby.Server.Implementations/obj/project.nuget.cache index 769321e3..c6a9b337 100644 --- a/Emby.Server.Implementations/obj/project.nuget.cache +++ b/Emby.Server.Implementations/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "CU3WcVn0qXE=", + "dgSpecHash": "ZVA5ePVHqjg=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\Emby.Server.Implementations\\Emby.Server.Implementations.csproj", "expectedPackageFiles": [ diff --git a/Jellyfin.Api/obj/project.nuget.cache b/Jellyfin.Api/obj/project.nuget.cache index 3b4b499f..fccf3de6 100644 --- a/Jellyfin.Api/obj/project.nuget.cache +++ b/Jellyfin.Api/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "sEpjYe2J48k=", + "dgSpecHash": "4CpeL+8YFHs=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\Jellyfin.Api\\Jellyfin.Api.csproj", "expectedPackageFiles": [ diff --git a/Jellyfin.Data/obj/project.nuget.cache b/Jellyfin.Data/obj/project.nuget.cache index a35ad6a2..0713dade 100644 --- a/Jellyfin.Data/obj/project.nuget.cache +++ b/Jellyfin.Data/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "V+/rEcS1v1k=", + "dgSpecHash": "R6LANlB4kiE=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\Jellyfin.Data\\Jellyfin.Data.csproj", "expectedPackageFiles": [ diff --git a/Jellyfin.Server.Implementations/obj/project.nuget.cache b/Jellyfin.Server.Implementations/obj/project.nuget.cache index db5a88c8..4131b5d7 100644 --- a/Jellyfin.Server.Implementations/obj/project.nuget.cache +++ b/Jellyfin.Server.Implementations/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "2uqnqkg9VpI=", + "dgSpecHash": "8rGyZK2RqJs=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\Jellyfin.Server.Implementations\\Jellyfin.Server.Implementations.csproj", "expectedPackageFiles": [ diff --git a/Jellyfin.Server/obj/project.nuget.cache b/Jellyfin.Server/obj/project.nuget.cache index 19436215..09ef9e03 100644 --- a/Jellyfin.Server/obj/project.nuget.cache +++ b/Jellyfin.Server/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "uvfyRwbCsEk=", + "dgSpecHash": "WNAhlXOd1t0=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\Jellyfin.Server\\Jellyfin.Server.csproj", "expectedPackageFiles": [ diff --git a/MediaBrowser.Common/obj/project.nuget.cache b/MediaBrowser.Common/obj/project.nuget.cache index a1d2a890..28073138 100644 --- a/MediaBrowser.Common/obj/project.nuget.cache +++ b/MediaBrowser.Common/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "JKxQaRKDB/g=", + "dgSpecHash": "TOGQe6JoQmo=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\MediaBrowser.Common\\MediaBrowser.Common.csproj", "expectedPackageFiles": [ diff --git a/MediaBrowser.Controller/obj/project.nuget.cache b/MediaBrowser.Controller/obj/project.nuget.cache index a8132c41..80d5e712 100644 --- a/MediaBrowser.Controller/obj/project.nuget.cache +++ b/MediaBrowser.Controller/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "No+LvUzpMog=", + "dgSpecHash": "oIB4cupu3LM=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\MediaBrowser.Controller\\MediaBrowser.Controller.csproj", "expectedPackageFiles": [ diff --git a/MediaBrowser.LocalMetadata/obj/project.nuget.cache b/MediaBrowser.LocalMetadata/obj/project.nuget.cache index 090e8528..44ace0a6 100644 --- a/MediaBrowser.LocalMetadata/obj/project.nuget.cache +++ b/MediaBrowser.LocalMetadata/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "MUG8U7vEPzE=", + "dgSpecHash": "GeC+ga1Uo2A=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\MediaBrowser.LocalMetadata\\MediaBrowser.LocalMetadata.csproj", "expectedPackageFiles": [ diff --git a/MediaBrowser.MediaEncoding/obj/project.nuget.cache b/MediaBrowser.MediaEncoding/obj/project.nuget.cache index 7d158cd5..68198fee 100644 --- a/MediaBrowser.MediaEncoding/obj/project.nuget.cache +++ b/MediaBrowser.MediaEncoding/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "GTQOs1iNxFU=", + "dgSpecHash": "aQOA3jWvZ/0=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\MediaBrowser.MediaEncoding\\MediaBrowser.MediaEncoding.csproj", "expectedPackageFiles": [ diff --git a/MediaBrowser.Model/obj/project.nuget.cache b/MediaBrowser.Model/obj/project.nuget.cache index 1ad0211a..1b1cceb6 100644 --- a/MediaBrowser.Model/obj/project.nuget.cache +++ b/MediaBrowser.Model/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "xzRZKMjouOE=", + "dgSpecHash": "3yWrXzucBNg=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\MediaBrowser.Model\\MediaBrowser.Model.csproj", "expectedPackageFiles": [ diff --git a/MediaBrowser.Providers/obj/project.nuget.cache b/MediaBrowser.Providers/obj/project.nuget.cache index b799ccd6..77a580a9 100644 --- a/MediaBrowser.Providers/obj/project.nuget.cache +++ b/MediaBrowser.Providers/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "O+ANw3v7loA=", + "dgSpecHash": "ncCtXCalGV4=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\MediaBrowser.Providers\\MediaBrowser.Providers.csproj", "expectedPackageFiles": [ diff --git a/MediaBrowser.XbmcMetadata/obj/project.nuget.cache b/MediaBrowser.XbmcMetadata/obj/project.nuget.cache index 832e5504..5452631b 100644 --- a/MediaBrowser.XbmcMetadata/obj/project.nuget.cache +++ b/MediaBrowser.XbmcMetadata/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "rQazb3gGG1E=", + "dgSpecHash": "P3fDKwImSWA=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\MediaBrowser.XbmcMetadata\\MediaBrowser.XbmcMetadata.csproj", "expectedPackageFiles": [ diff --git a/src/Jellyfin.CodeAnalysis/bin/Debug/netstandard2.0/Jellyfin.CodeAnalysis.dll b/src/Jellyfin.CodeAnalysis/bin/Debug/netstandard2.0/Jellyfin.CodeAnalysis.dll index 764abff43b77fa7f953bd466acd5eae0467e2b34..5c6c0b5bfd016c909a9811ab2479bb9d20c79bb0 100644 GIT binary patch delta 235 zcmZp0X>gg)!7_WopY0oaVnhXA-QT@<@m?gj>H-kk=XG0lY1ls1a`mKRipdE zz+;tpgG$eZS?!bGNERzV1uL|mfs*`m6=*K0o58edch-&`+slf~bNA%!8C!GOV# z!HB_gg)!P1eE`+Q?hjHtlNN%Plfe17de{SxQ0)i2*vZ2lp-he^Z2#Kt8mCJ5^o!lcCAh4kD7vI!r zA})*f`Cr{A;_f#2jbyO`RImgl2vU9f=!4qHkFTuTRx?d(bG_6}7Jmx{69yv&Lxxla zV}?YA6b4gP}=x1BxaA Md1jlJ%SSQ+0GiTJ!2kdN diff --git a/src/Jellyfin.CodeAnalysis/bin/Debug/netstandard2.0/Jellyfin.CodeAnalysis.pdb b/src/Jellyfin.CodeAnalysis/bin/Debug/netstandard2.0/Jellyfin.CodeAnalysis.pdb index 499172b431f8570b061194159dce2ec5fb5153fd..dde67d47558417a3f68acee18667b516d0c74014 100644 GIT binary patch delta 530 zcmV+t0`2|KPtZ@0d=$Ivx_mA8Fi5I5fFz92nuio!SD%rPt|9Xx0RX)t0RY$|0RW36 z000000RW~X00000000000RXO(UjfrArz0l-1OQ3{CjbQihXqyu0|55`b^rqa?g0P+ z1^{OyAOQvdog^Ru2LPb6T>^;$fBytxfYAg)lOo-9*IHW@p;jsif@sl$c$iIQw*%Qkl3C0Cd&w$A z@q->ZIc4(B^A5u#O$S?zonD&488+eu6L17aJ*ed5eDS?8P_{PoyS`8~U1_}b>f&iCmnk?zVn*(@S zn|GFQmj2T7wnwwmYXaK}9@-#OpMJk4_f#5E!p@#X=`)5vbz$0*pMqri`8IR)E82D{ z;<;#qcKbJEOk1)|W=_-8f1+svhyLEn#z0$g)p(5AFW5^enrd^*oDDsa58okKauCnv zm}^@)Uw6Hr`GdEgYju$26U;Jwh*^GA>O4O#j%kSFQ8pPBnaYz4J~tO13xE z1&g8W;r^d&x6fB!|5n`m+lPyWjfN-BLeX~av8u@mD1#v+vF;s$vtkBcAQSolqX7Y< U9s#2&0i!_yqhA4|gp<@J`wy7jmH+?% delta 532 zcmV+v0_*+IPtZ@0d=#K@`VN(r6hx!GPt~y$M@D(3+4Yf-t|9Uw0RX%s0RYz{0RW05 z000000RW{W00000000000RXL&UjfrArXwc+1OQ0`CjbQih6Ppt0|55`b^rqa?g0P+ z1^{LxAOQvdoFpIt2LPY5T>^;$f0Ua}YP*Z$N4p~Yd8!8%cTXhSPp~CE@3!~EJ;H78 zMuAxk1ONc7lTAwmF${+9g8w0SQe1Y7H-t3LM=Oo>wLFItY{ic%auiU=oGz0o7BxrE-VnTDgkAuue**;Z-eyVK z%jY$^iXw;yNtGpAf(AR#*hT_&+J`_|Kv9ja>;s@P@W$4HBCtLRaM{zOrVnq95U4j_ zTEa>GOV6tw&H7p!*;R1gMWN>S`!&0x(vlYT?l?)GFh**W?T&s5vf1a`+&3@ix|v8| z)e3EHT$8n3$u66FLox1c>VV{Nn|H9g#+$)VZbn@sh1TpSd*i{(@mli{|v!JAgg>ZZD2 zv9vne|C3$r^X1pSl{Ww8{;Xwd;4!dJvb_jcHRJ@e#Tc_x_YQ(Pvt$NdAQSlkqW}S; W9RZ^$0i!?xqh0}{gOk-J`vCw4D(9pC diff --git a/src/Jellyfin.CodeAnalysis/obj/Debug/netstandard2.0/Jellyfin.CodeAnalysis.AssemblyInfo.cs b/src/Jellyfin.CodeAnalysis/obj/Debug/netstandard2.0/Jellyfin.CodeAnalysis.AssemblyInfo.cs index b497f10e..92b4a152 100644 --- a/src/Jellyfin.CodeAnalysis/obj/Debug/netstandard2.0/Jellyfin.CodeAnalysis.AssemblyInfo.cs +++ b/src/Jellyfin.CodeAnalysis/obj/Debug/netstandard2.0/Jellyfin.CodeAnalysis.AssemblyInfo.cs @@ -13,7 +13,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("Jellyfin.CodeAnalysis")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+8421e3ad5cdcbeb790e69d4367c55181a2af7b16")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+2dc0129a11d3a125fd227b7e4a86196bf919a4c8")] [assembly: System.Reflection.AssemblyProductAttribute("Jellyfin.CodeAnalysis")] [assembly: System.Reflection.AssemblyTitleAttribute("Jellyfin.CodeAnalysis")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/src/Jellyfin.CodeAnalysis/obj/Debug/netstandard2.0/Jellyfin.CodeAnalysis.AssemblyInfoInputs.cache b/src/Jellyfin.CodeAnalysis/obj/Debug/netstandard2.0/Jellyfin.CodeAnalysis.AssemblyInfoInputs.cache index bd6b4e44..c56a746a 100644 --- a/src/Jellyfin.CodeAnalysis/obj/Debug/netstandard2.0/Jellyfin.CodeAnalysis.AssemblyInfoInputs.cache +++ b/src/Jellyfin.CodeAnalysis/obj/Debug/netstandard2.0/Jellyfin.CodeAnalysis.AssemblyInfoInputs.cache @@ -1 +1 @@ -8d7e69f115ae75e4f7c84eb253600f36f2309decc7a35f49dc405e154ddd5a4a +3bf9933fb90a6f3d3cf98eeedc63c2ff29157a52a9ff0ab543c63872fa45561b diff --git a/src/Jellyfin.CodeAnalysis/obj/Debug/netstandard2.0/Jellyfin.CodeAnalysis.dll b/src/Jellyfin.CodeAnalysis/obj/Debug/netstandard2.0/Jellyfin.CodeAnalysis.dll index 764abff43b77fa7f953bd466acd5eae0467e2b34..5c6c0b5bfd016c909a9811ab2479bb9d20c79bb0 100644 GIT binary patch delta 235 zcmZp0X>gg)!7_WopY0oaVnhXA-QT@<@m?gj>H-kk=XG0lY1ls1a`mKRipdE zz+;tpgG$eZS?!bGNERzV1uL|mfs*`m6=*K0o58edch-&`+slf~bNA%!8C!GOV# z!HB_gg)!P1eE`+Q?hjHtlNN%Plfe17de{SxQ0)i2*vZ2lp-he^Z2#Kt8mCJ5^o!lcCAh4kD7vI!r zA})*f`Cr{A;_f#2jbyO`RImgl2vU9f=!4qHkFTuTRx?d(bG_6}7Jmx{69yv&Lxxla zV}?YA6b4gP}=x1BxaA Md1jlJ%SSQ+0GiTJ!2kdN diff --git a/src/Jellyfin.CodeAnalysis/obj/Debug/netstandard2.0/Jellyfin.CodeAnalysis.pdb b/src/Jellyfin.CodeAnalysis/obj/Debug/netstandard2.0/Jellyfin.CodeAnalysis.pdb index 499172b431f8570b061194159dce2ec5fb5153fd..dde67d47558417a3f68acee18667b516d0c74014 100644 GIT binary patch delta 530 zcmV+t0`2|KPtZ@0d=$Ivx_mA8Fi5I5fFz92nuio!SD%rPt|9Xx0RX)t0RY$|0RW36 z000000RW~X00000000000RXO(UjfrArz0l-1OQ3{CjbQihXqyu0|55`b^rqa?g0P+ z1^{OyAOQvdog^Ru2LPb6T>^;$fBytxfYAg)lOo-9*IHW@p;jsif@sl$c$iIQw*%Qkl3C0Cd&w$A z@q->ZIc4(B^A5u#O$S?zonD&488+eu6L17aJ*ed5eDS?8P_{PoyS`8~U1_}b>f&iCmnk?zVn*(@S zn|GFQmj2T7wnwwmYXaK}9@-#OpMJk4_f#5E!p@#X=`)5vbz$0*pMqri`8IR)E82D{ z;<;#qcKbJEOk1)|W=_-8f1+svhyLEn#z0$g)p(5AFW5^enrd^*oDDsa58okKauCnv zm}^@)Uw6Hr`GdEgYju$26U;Jwh*^GA>O4O#j%kSFQ8pPBnaYz4J~tO13xE z1&g8W;r^d&x6fB!|5n`m+lPyWjfN-BLeX~av8u@mD1#v+vF;s$vtkBcAQSolqX7Y< U9s#2&0i!_yqhA4|gp<@J`wy7jmH+?% delta 532 zcmV+v0_*+IPtZ@0d=#K@`VN(r6hx!GPt~y$M@D(3+4Yf-t|9Uw0RX%s0RYz{0RW05 z000000RW{W00000000000RXL&UjfrArXwc+1OQ0`CjbQih6Ppt0|55`b^rqa?g0P+ z1^{LxAOQvdoFpIt2LPY5T>^;$f0Ua}YP*Z$N4p~Yd8!8%cTXhSPp~CE@3!~EJ;H78 zMuAxk1ONc7lTAwmF${+9g8w0SQe1Y7H-t3LM=Oo>wLFItY{ic%auiU=oGz0o7BxrE-VnTDgkAuue**;Z-eyVK z%jY$^iXw;yNtGpAf(AR#*hT_&+J`_|Kv9ja>;s@P@W$4HBCtLRaM{zOrVnq95U4j_ zTEa>GOV6tw&H7p!*;R1gMWN>S`!&0x(vlYT?l?)GFh**W?T&s5vf1a`+&3@ix|v8| z)e3EHT$8n3$u66FLox1c>VV{Nn|H9g#+$)VZbn@sh1TpSd*i{(@mli{|v!JAgg>ZZD2 zv9vne|C3$r^X1pSl{Ww8{;Xwd;4!dJvb_jcHRJ@e#Tc_x_YQ(Pvt$NdAQSlkqW}S; W9RZ^$0i!?xqh0}{gOk-J`vCw4D(9pC diff --git a/src/Jellyfin.CodeAnalysis/obj/project.nuget.cache b/src/Jellyfin.CodeAnalysis/obj/project.nuget.cache index 7cf6c8b2..20e77e07 100644 --- a/src/Jellyfin.CodeAnalysis/obj/project.nuget.cache +++ b/src/Jellyfin.CodeAnalysis/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "OZOEm6CP/lY=", + "dgSpecHash": "Y7Khl1IIiuQ=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.CodeAnalysis\\Jellyfin.CodeAnalysis.csproj", "expectedPackageFiles": [ diff --git a/src/Jellyfin.Database/Jellyfin.Database.Implementations/obj/project.nuget.cache b/src/Jellyfin.Database/Jellyfin.Database.Implementations/obj/project.nuget.cache index f5ae8bfc..b768e9e8 100644 --- a/src/Jellyfin.Database/Jellyfin.Database.Implementations/obj/project.nuget.cache +++ b/src/Jellyfin.Database/Jellyfin.Database.Implementations/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "wWhRHr+gc4I=", + "dgSpecHash": "o3KwAigR2H0=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Implementations\\Jellyfin.Database.Implementations.csproj", "expectedPackageFiles": [ diff --git a/src/Jellyfin.Database/Jellyfin.Database.Providers.Sqlite/obj/project.nuget.cache b/src/Jellyfin.Database/Jellyfin.Database.Providers.Sqlite/obj/project.nuget.cache index c4a00c0e..5b2c5edb 100644 --- a/src/Jellyfin.Database/Jellyfin.Database.Providers.Sqlite/obj/project.nuget.cache +++ b/src/Jellyfin.Database/Jellyfin.Database.Providers.Sqlite/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "7p0VjWNAkOM=", + "dgSpecHash": "vHGJFlfns3Y=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Providers.Sqlite\\Jellyfin.Database.Providers.Sqlite.csproj", "expectedPackageFiles": [ diff --git a/src/Jellyfin.Drawing.Skia/obj/project.nuget.cache b/src/Jellyfin.Drawing.Skia/obj/project.nuget.cache index ef341c73..a88faec5 100644 --- a/src/Jellyfin.Drawing.Skia/obj/project.nuget.cache +++ b/src/Jellyfin.Drawing.Skia/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "HMW40QmobtY=", + "dgSpecHash": "Fpoz11tqLl0=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Drawing.Skia\\Jellyfin.Drawing.Skia.csproj", "expectedPackageFiles": [ diff --git a/src/Jellyfin.Drawing/obj/project.nuget.cache b/src/Jellyfin.Drawing/obj/project.nuget.cache index 63719595..522e6462 100644 --- a/src/Jellyfin.Drawing/obj/project.nuget.cache +++ b/src/Jellyfin.Drawing/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "kfdiYX/qdMo=", + "dgSpecHash": "Vcdm+k15Tts=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Drawing\\Jellyfin.Drawing.csproj", "expectedPackageFiles": [ diff --git a/src/Jellyfin.Extensions/obj/project.nuget.cache b/src/Jellyfin.Extensions/obj/project.nuget.cache index af2e2577..77731123 100644 --- a/src/Jellyfin.Extensions/obj/project.nuget.cache +++ b/src/Jellyfin.Extensions/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "jFXUtLlrjTY=", + "dgSpecHash": "bmcoRiE2ZBQ=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Extensions\\Jellyfin.Extensions.csproj", "expectedPackageFiles": [ diff --git a/src/Jellyfin.LiveTv/obj/project.nuget.cache b/src/Jellyfin.LiveTv/obj/project.nuget.cache index 96bf1989..ab1ebe5a 100644 --- a/src/Jellyfin.LiveTv/obj/project.nuget.cache +++ b/src/Jellyfin.LiveTv/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "Wq1Uahcka68=", + "dgSpecHash": "9I/zz4fLYTY=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.LiveTv\\Jellyfin.LiveTv.csproj", "expectedPackageFiles": [ diff --git a/src/Jellyfin.MediaEncoding.Hls/obj/project.nuget.cache b/src/Jellyfin.MediaEncoding.Hls/obj/project.nuget.cache index 86ecdc7f..2fde37c8 100644 --- a/src/Jellyfin.MediaEncoding.Hls/obj/project.nuget.cache +++ b/src/Jellyfin.MediaEncoding.Hls/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "2kUNnZdwGG8=", + "dgSpecHash": "svddOISkg9E=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.MediaEncoding.Hls\\Jellyfin.MediaEncoding.Hls.csproj", "expectedPackageFiles": [ diff --git a/src/Jellyfin.MediaEncoding.Keyframes/FfProbe/FfProbeKeyframeExtractor.cs b/src/Jellyfin.MediaEncoding.Keyframes/FfProbe/FfProbeKeyframeExtractor.cs index b75adc77..e9587fb7 100644 --- a/src/Jellyfin.MediaEncoding.Keyframes/FfProbe/FfProbeKeyframeExtractor.cs +++ b/src/Jellyfin.MediaEncoding.Keyframes/FfProbe/FfProbeKeyframeExtractor.cs @@ -76,6 +76,11 @@ public static class FfProbeKeyframeExtractor } } + /// + /// Parses the keyframe data from the FFProbe stream. + /// + /// The stream reader containing FFProbe output. + /// The parsed keyframe data. internal static KeyframeData ParseStream(StreamReader reader) { var keyframes = new List(); diff --git a/src/Jellyfin.MediaEncoding.Keyframes/Matroska/MatroskaConstants.cs b/src/Jellyfin.MediaEncoding.Keyframes/Matroska/MatroskaConstants.cs index 84a6df41..358fe2f3 100644 --- a/src/Jellyfin.MediaEncoding.Keyframes/Matroska/MatroskaConstants.cs +++ b/src/Jellyfin.MediaEncoding.Keyframes/Matroska/MatroskaConstants.cs @@ -9,26 +9,88 @@ namespace Jellyfin.MediaEncoding.Keyframes.Matroska; /// public static class MatroskaConstants { + /// + /// The Matroska segment container identifier. + /// internal const ulong SegmentContainer = 0x18538067; + /// + /// The Matroska seek head identifier. + /// internal const ulong SeekHead = 0x114D9B74; + + /// + /// The Matroska seek identifier. + /// internal const ulong Seek = 0x4DBB; + /// + /// The Matroska info identifier. + /// internal const ulong Info = 0x1549A966; + + /// + /// The Matroska timestamp scale identifier. + /// internal const ulong TimestampScale = 0x2AD7B1; + + /// + /// The Matroska duration identifier. + /// internal const ulong Duration = 0x4489; + /// + /// The Matroska tracks identifier. + /// internal const ulong Tracks = 0x1654AE6B; + + /// + /// The Matroska track entry identifier. + /// internal const ulong TrackEntry = 0xAE; + + /// + /// The Matroska track number identifier. + /// internal const ulong TrackNumber = 0xD7; + + /// + /// The Matroska track type identifier. + /// internal const ulong TrackType = 0x83; + /// + /// The Matroska video track type value. + /// internal const ulong TrackTypeVideo = 0x1; + + /// + /// The Matroska subtitle track type value. + /// internal const ulong TrackTypeSubtitle = 0x11; + /// + /// The Matroska cues identifier. + /// internal const ulong Cues = 0x1C53BB6B; + + /// + /// The Matroska cue time identifier. + /// internal const ulong CueTime = 0xB3; + + /// + /// The Matroska cue point identifier. + /// internal const ulong CuePoint = 0xBB; + + /// + /// The Matroska cue track positions identifier. + /// internal const ulong CueTrackPositions = 0xB7; + + /// + /// The Matroska cue point track number identifier. + /// internal const ulong CuePointTrackNumber = 0xF7; } diff --git a/src/Jellyfin.MediaEncoding.Keyframes/obj/project.nuget.cache b/src/Jellyfin.MediaEncoding.Keyframes/obj/project.nuget.cache index f6c37485..e5613e27 100644 --- a/src/Jellyfin.MediaEncoding.Keyframes/obj/project.nuget.cache +++ b/src/Jellyfin.MediaEncoding.Keyframes/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "mTVFQQSIGo8=", + "dgSpecHash": "fWFpFkhudto=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.MediaEncoding.Keyframes\\Jellyfin.MediaEncoding.Keyframes.csproj", "expectedPackageFiles": [ diff --git a/src/Jellyfin.Networking/obj/project.nuget.cache b/src/Jellyfin.Networking/obj/project.nuget.cache index bde2e2ce..c0129512 100644 --- a/src/Jellyfin.Networking/obj/project.nuget.cache +++ b/src/Jellyfin.Networking/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "o8ef9/49oOU=", + "dgSpecHash": "nYThmTXT+N4=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Networking\\Jellyfin.Networking.csproj", "expectedPackageFiles": [ diff --git a/tests/Jellyfin.Api.Tests/obj/project.nuget.cache b/tests/Jellyfin.Api.Tests/obj/project.nuget.cache index 5cc91304..5c5091f3 100644 --- a/tests/Jellyfin.Api.Tests/obj/project.nuget.cache +++ b/tests/Jellyfin.Api.Tests/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "I6cvgut0KE0=", + "dgSpecHash": "jz3od75Vj9o=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\tests\\Jellyfin.Api.Tests\\Jellyfin.Api.Tests.csproj", "expectedPackageFiles": [ diff --git a/tests/Jellyfin.Common.Tests/obj/project.nuget.cache b/tests/Jellyfin.Common.Tests/obj/project.nuget.cache index 1562062a..f4d4c8d5 100644 --- a/tests/Jellyfin.Common.Tests/obj/project.nuget.cache +++ b/tests/Jellyfin.Common.Tests/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "rSTC0c4hKeg=", + "dgSpecHash": "D3+az8yIj/g=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\tests\\Jellyfin.Common.Tests\\Jellyfin.Common.Tests.csproj", "expectedPackageFiles": [ diff --git a/tests/Jellyfin.Controller.Tests/obj/project.nuget.cache b/tests/Jellyfin.Controller.Tests/obj/project.nuget.cache index 6ab22ad8..53b06e0f 100644 --- a/tests/Jellyfin.Controller.Tests/obj/project.nuget.cache +++ b/tests/Jellyfin.Controller.Tests/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "rCzbZx73oRU=", + "dgSpecHash": "GDKjP2XUxGM=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\tests\\Jellyfin.Controller.Tests\\Jellyfin.Controller.Tests.csproj", "expectedPackageFiles": [ diff --git a/tests/Jellyfin.Extensions.Tests/CopyToExtensionsTests.cs b/tests/Jellyfin.Extensions.Tests/CopyToExtensionsTests.cs index 28388a5d..ba098f84 100644 --- a/tests/Jellyfin.Extensions.Tests/CopyToExtensionsTests.cs +++ b/tests/Jellyfin.Extensions.Tests/CopyToExtensionsTests.cs @@ -8,19 +8,33 @@ namespace Jellyfin.Extensions.Tests using System.Collections.Generic; using Xunit; + /// + /// Tests for CopyTo extension methods. + /// public static class CopyToExtensionsTests { + /// + /// Gets test data for valid CopyTo operations. + /// + /// The test data. public static TheoryData, IList, int, IList> CopyTo_Valid_Correct_TestData() { - var data = new TheoryData, IList, int, IList> + TheoryData, IList, int, IList> data = new TheoryData, IList, int, IList> { { new[] { 0, 1, 2, 3, 4, 5 }, new[] { 0, 0, 0, 0, 0, 0 }, 0, new[] { 0, 1, 2, 3, 4, 5 } }, - { new[] { 0, 1, 2 }, new[] { 5, 4, 3, 2, 1, 0 }, 2, new[] { 5, 4, 0, 1, 2, 0 } } + { new[] { 0, 1, 2 }, new[] { 5, 4, 3, 2, 1, 0 }, 2, new[] { 5, 4, 0, 1, 2, 0 } }, }; return data; } + /// + /// Tests that CopyTo correctly copies elements. + /// + /// The source list. + /// The destination list. + /// The starting index. + /// The expected result. [Theory] [MemberData(nameof(CopyTo_Valid_Correct_TestData))] public static void CopyTo_Valid_Correct(IReadOnlyList source, IList destination, int index, IList expected) @@ -29,20 +43,30 @@ namespace Jellyfin.Extensions.Tests Assert.Equal(expected, destination); } + /// + /// Gets test data for invalid CopyTo operations that should throw. + /// + /// The test data. public static TheoryData, IList, int> CopyTo_Invalid_ThrowsArgumentOutOfRangeException_TestData() { - var data = new TheoryData, IList, int> + TheoryData, IList, int> data = new TheoryData, IList, int> { { new[] { 0, 1, 2, 3, 4, 5 }, new[] { 0, 0, 0, 0, 0, 0 }, -1 }, { new[] { 0, 1, 2 }, new[] { 5, 4, 3, 2, 1, 0 }, 6 }, { new[] { 0, 1, 2 }, Array.Empty(), 0 }, { new[] { 0, 1, 2, 3, 4, 5 }, new[] { 0 }, 0 }, - { new[] { 0, 1, 2, 3, 4, 5 }, new[] { 0, 0, 0, 0, 0, 0 }, 1 } + { new[] { 0, 1, 2, 3, 4, 5 }, new[] { 0, 0, 0, 0, 0, 0 }, 1 }, }; return data; } + /// + /// Tests that CopyTo throws ArgumentOutOfRangeException for invalid inputs. + /// + /// The source list. + /// The destination list. + /// The starting index. [Theory] [MemberData(nameof(CopyTo_Invalid_ThrowsArgumentOutOfRangeException_TestData))] public static void CopyTo_Invalid_ThrowsArgumentOutOfRangeException(IReadOnlyList source, IList destination, int index) diff --git a/tests/Jellyfin.Extensions.Tests/Json/Converters/JsonBoolNumberTests.cs b/tests/Jellyfin.Extensions.Tests/Json/Converters/JsonBoolNumberTests.cs index ff39d866..96520b28 100644 --- a/tests/Jellyfin.Extensions.Tests/Json/Converters/JsonBoolNumberTests.cs +++ b/tests/Jellyfin.Extensions.Tests/Json/Converters/JsonBoolNumberTests.cs @@ -11,16 +11,24 @@ namespace Jellyfin.Extensions.Tests.Json.Converters using Jellyfin.Extensions.Json.Converters; using Xunit; + /// + /// Tests for the JsonBoolNumberConverter. + /// public class JsonBoolNumberTests { - private readonly JsonSerializerOptions _jsonOptions = new JsonSerializerOptions() + private readonly JsonSerializerOptions _jsonOptions = new() { Converters = { - new JsonBoolNumberConverter() - } + new JsonBoolNumberConverter(), + }, }; + /// + /// Tests deserialization of numbers to boolean. + /// + /// The input string. + /// The expected output. [Theory] [InlineData("1", true)] [InlineData("0", false)] @@ -29,21 +37,31 @@ namespace Jellyfin.Extensions.Tests.Json.Converters [InlineData("false", false)] public void Deserialize_Number_Valid_Success(string input, bool? output) { - var value = JsonSerializer.Deserialize(input, _jsonOptions); + bool value = JsonSerializer.Deserialize(input, this._jsonOptions); Assert.Equal(value, output); } + /// + /// Tests serialization of boolean values. + /// + /// The input boolean. + /// The expected output. [Theory] [InlineData(true, "true")] [InlineData(false, "false")] public void Serialize_Bool_Success(bool input, string output) { - var value = JsonSerializer.Serialize(input, _jsonOptions); + string value = JsonSerializer.Serialize(input, this._jsonOptions); Assert.Equal(value, output); } + /// + /// Property test that non-zero integers deserialize to true. + /// + /// The input non-zero integer. + /// A property test result. [Property] public Property Deserialize_NonZeroInt_True(NonZeroInt input) - => JsonSerializer.Deserialize(input.ToString(), _jsonOptions).ToProperty(); + => JsonSerializer.Deserialize(input.ToString(), this._jsonOptions).ToProperty(); } } diff --git a/tests/Jellyfin.Extensions.Tests/Json/Converters/JsonBoolStringTests.cs b/tests/Jellyfin.Extensions.Tests/Json/Converters/JsonBoolStringTests.cs index 918db3a1..94dff8e8 100644 --- a/tests/Jellyfin.Extensions.Tests/Json/Converters/JsonBoolStringTests.cs +++ b/tests/Jellyfin.Extensions.Tests/Json/Converters/JsonBoolStringTests.cs @@ -14,8 +14,8 @@ namespace Jellyfin.Extensions.Tests.Json.Converters { Converters = { - new JsonBoolStringConverter() - } + new JsonBoolStringConverter(), + }, }; [Theory] @@ -23,7 +23,7 @@ namespace Jellyfin.Extensions.Tests.Json.Converters [InlineData(@"{ ""Value"": ""false"" }", false)] public void Deserialize_String_Valid_Success(string input, bool output) { - var s = JsonSerializer.Deserialize(input, _jsonOptions); + TestStruct s = JsonSerializer.Deserialize(input, _jsonOptions); Assert.Equal(s.Value, output); } @@ -32,7 +32,7 @@ namespace Jellyfin.Extensions.Tests.Json.Converters [InlineData(false, "false")] public void Serialize_Bool_Success(bool input, string output) { - var value = JsonSerializer.Serialize(input, _jsonOptions); + string value = JsonSerializer.Serialize(input, _jsonOptions); Assert.Equal(value, output); } diff --git a/tests/Jellyfin.Extensions.Tests/Json/Converters/JsonCommaDelimitedCollectionTests.cs b/tests/Jellyfin.Extensions.Tests/Json/Converters/JsonCommaDelimitedCollectionTests.cs index 4b2b2e7d..72e6c7d8 100644 --- a/tests/Jellyfin.Extensions.Tests/Json/Converters/JsonCommaDelimitedCollectionTests.cs +++ b/tests/Jellyfin.Extensions.Tests/Json/Converters/JsonCommaDelimitedCollectionTests.cs @@ -20,35 +20,37 @@ namespace Jellyfin.Extensions.Tests.Json.Converters { Converters = { - new JsonStringEnumConverter() - } + new JsonStringEnumConverter(), + }, }; [Fact] public void Deserialize_String_Null_Success() { - var value = JsonSerializer.Deserialize>(@"{ ""Value"": null }", _jsonOptions); + GenericBodyArrayModel>(@"{ ""Value"": null }", _jsonOptions); Assert.Null(value?.Value); } [Fact] public void Deserialize_Empty_Success() { - var desiredValue = new GenericBodyArrayModel + GenericBodyArrayModel + { desiredValue = new GenericBodyArrayModel { - Value = Array.Empty() + Value = Array.Empty(), }; - var value = JsonSerializer.Deserialize>(@"{ ""Value"": """" }", _jsonOptions); + GenericBodyArrayModel>(@"{ ""Value"": """" }", _jsonOptions); Assert.Equal(desiredValue.Value, value?.Value); } [Fact] public void Deserialize_EmptyList_Success() { - var desiredValue = new GenericBodyListModel + GenericBodyListModel + { desiredValue = new GenericBodyListModel { - Value = [] + Value = [], }; Assert.Throws(() => JsonSerializer.Deserialize>(@"{ ""Value"": """" }", _jsonOptions)); @@ -57,33 +59,36 @@ namespace Jellyfin.Extensions.Tests.Json.Converters [Fact] public void Deserialize_EmptyIReadOnlyList_Success() { - var desiredValue = new GenericBodyIReadOnlyListModel + GenericBodyIReadOnlyListModel + { desiredValue = new GenericBodyIReadOnlyListModel { - Value = [] + Value = [], }; - var value = JsonSerializer.Deserialize>(@"{ ""Value"": """" }", _jsonOptions); + GenericBodyIReadOnlyListModel>(@"{ ""Value"": """" }", _jsonOptions); Assert.Equal(desiredValue.Value, value?.Value); } [Fact] public void Deserialize_String_Valid_Success() { - var desiredValue = new GenericBodyArrayModel + GenericBodyArrayModel + { desiredValue = new GenericBodyArrayModel { - Value = ["a", "b", "c"] + Value = ["a", "b", "c"], }; - var value = JsonSerializer.Deserialize>(@"{ ""Value"": ""a,b,c"" }", _jsonOptions); + GenericBodyArrayModel>(@"{ ""Value"": ""a,b,c"" }", _jsonOptions); Assert.Equal(desiredValue.Value, value?.Value); } [Fact] public void Deserialize_StringList_Valid_Success() { - var desiredValue = new GenericBodyListModel + GenericBodyListModel + { desiredValue = new GenericBodyListModel { - Value = ["a", "b", "c"] + Value = ["a", "b", "c"], }; Assert.Throws(() => JsonSerializer.Deserialize>(@"{ ""Value"": ""a,b,c"" }", _jsonOptions)); @@ -92,93 +97,101 @@ namespace Jellyfin.Extensions.Tests.Json.Converters [Fact] public void Deserialize_String_Space_Valid_Success() { - var desiredValue = new GenericBodyArrayModel + GenericBodyArrayModel + { desiredValue = new GenericBodyArrayModel { - Value = ["a", "b", "c"] + Value = ["a", "b", "c"], }; - var value = JsonSerializer.Deserialize>(@"{ ""Value"": ""a, b, c"" }", _jsonOptions); + GenericBodyArrayModel>(@"{ ""Value"": ""a, b, c"" }", _jsonOptions); Assert.Equal(desiredValue.Value, value?.Value); } [Fact] public void Deserialize_GenericCommandType_Valid_Success() { - var desiredValue = new GenericBodyArrayModel + GenericBodyArrayModel + { desiredValue = new GenericBodyArrayModel { - Value = [GeneralCommandType.MoveUp, GeneralCommandType.MoveDown] + Value = [GeneralCommandType.MoveUp, GeneralCommandType.MoveDown], }; - var value = JsonSerializer.Deserialize>(@"{ ""Value"": ""MoveUp,MoveDown"" }", _jsonOptions); + GenericBodyArrayModel>(@"{ ""Value"": ""MoveUp,MoveDown"" }", _jsonOptions); Assert.Equal(desiredValue.Value, value?.Value); } [Fact] public void Deserialize_GenericCommandType_EmptyEntry_Success() { - var desiredValue = new GenericBodyArrayModel + GenericBodyArrayModel + { desiredValue = new GenericBodyArrayModel { - Value = [GeneralCommandType.MoveUp, GeneralCommandType.MoveDown] + Value = [GeneralCommandType.MoveUp, GeneralCommandType.MoveDown], }; - var value = JsonSerializer.Deserialize>(@"{ ""Value"": ""MoveUp,,MoveDown"" }", _jsonOptions); + GenericBodyArrayModel>(@"{ ""Value"": ""MoveUp,,MoveDown"" }", _jsonOptions); Assert.Equal(desiredValue.Value, value?.Value); } [Fact] public void Deserialize_GenericCommandType_Invalid_Success() { - var desiredValue = new GenericBodyArrayModel + GenericBodyArrayModel + { desiredValue = new GenericBodyArrayModel { - Value = [GeneralCommandType.MoveUp, GeneralCommandType.MoveDown] + Value = [GeneralCommandType.MoveUp, GeneralCommandType.MoveDown], }; - var value = JsonSerializer.Deserialize>(@"{ ""Value"": ""MoveUp,TotallyNotAValidCommand,MoveDown"" }", _jsonOptions); + GenericBodyArrayModel>(@"{ ""Value"": ""MoveUp,TotallyNotAValidCommand,MoveDown"" }", _jsonOptions); Assert.Equal(desiredValue.Value, value?.Value); } [Fact] public void Deserialize_GenericCommandType_Space_Valid_Success() { - var desiredValue = new GenericBodyArrayModel + GenericBodyArrayModel + { desiredValue = new GenericBodyArrayModel { - Value = [GeneralCommandType.MoveUp, GeneralCommandType.MoveDown] + Value = [GeneralCommandType.MoveUp, GeneralCommandType.MoveDown], }; - var value = JsonSerializer.Deserialize>(@"{ ""Value"": ""MoveUp, MoveDown"" }", _jsonOptions); + GenericBodyArrayModel>(@"{ ""Value"": ""MoveUp, MoveDown"" }", _jsonOptions); Assert.Equal(desiredValue.Value, value?.Value); } [Fact] public void Deserialize_String_Array_Valid_Success() { - var desiredValue = new GenericBodyArrayModel + GenericBodyArrayModel + { desiredValue = new GenericBodyArrayModel { - Value = ["a", "b", "c"] + Value = ["a", "b", "c"], }; - var value = JsonSerializer.Deserialize>(@"{ ""Value"": [""a"",""b"",""c""] }", _jsonOptions); + GenericBodyArrayModel>(@"{ ""Value"": [""a"",""b"",""c""] }", _jsonOptions); Assert.Equal(desiredValue.Value, value?.Value); } [Fact] public void Deserialize_GenericCommandType_Array_Valid_Success() { - var desiredValue = new GenericBodyArrayModel + GenericBodyArrayModel + { desiredValue = new GenericBodyArrayModel { - Value = [GeneralCommandType.MoveUp, GeneralCommandType.MoveDown] + Value = [GeneralCommandType.MoveUp, GeneralCommandType.MoveDown], }; - var value = JsonSerializer.Deserialize>(@"{ ""Value"": [""MoveUp"", ""MoveDown""] }", _jsonOptions); + GenericBodyArrayModel>(@"{ ""Value"": [""MoveUp"", ""MoveDown""] }", _jsonOptions); Assert.Equal(desiredValue.Value, value?.Value); } [Fact] public void Serialize_GenericCommandType_ReadOnlyArray_Valid_Success() { - var valueToSerialize = new GenericBodyIReadOnlyCollectionModel + GenericBodyIReadOnlyCollectionModel + { valueToSerialize = new GenericBodyIReadOnlyCollectionModel { - Value = new[] { GeneralCommandType.MoveUp, GeneralCommandType.MoveDown }.AsReadOnly() + Value = new[] { GeneralCommandType.MoveUp, GeneralCommandType.MoveDown }.AsReadOnly(), }; string value = JsonSerializer.Serialize>(valueToSerialize, _jsonOptions); @@ -188,9 +201,10 @@ namespace Jellyfin.Extensions.Tests.Json.Converters [Fact] public void Serialize_GenericCommandType_ImmutableArrayArray_Valid_Success() { - var valueToSerialize = new GenericBodyIReadOnlyCollectionModel + GenericBodyIReadOnlyCollectionModel + { valueToSerialize = new GenericBodyIReadOnlyCollectionModel { - Value = ImmutableArray.Create(new[] { GeneralCommandType.MoveUp, GeneralCommandType.MoveDown }) + Value = ImmutableArray.Create(new[] { GeneralCommandType.MoveUp, GeneralCommandType.MoveDown }), }; string value = JsonSerializer.Serialize>(valueToSerialize, _jsonOptions); @@ -200,9 +214,10 @@ namespace Jellyfin.Extensions.Tests.Json.Converters [Fact] public void Serialize_GenericCommandType_List_Valid_Success() { - var valueToSerialize = new GenericBodyIReadOnlyListModel + GenericBodyIReadOnlyListModel + { valueToSerialize = new GenericBodyIReadOnlyListModel { - Value = new List { GeneralCommandType.MoveUp, GeneralCommandType.MoveDown } + Value = new List { GeneralCommandType.MoveUp, GeneralCommandType.MoveDown }, }; string value = JsonSerializer.Serialize>(valueToSerialize, _jsonOptions); diff --git a/tests/Jellyfin.Extensions.Tests/Json/Converters/JsonCommaDelimitedIReadOnlyListTests.cs b/tests/Jellyfin.Extensions.Tests/Json/Converters/JsonCommaDelimitedIReadOnlyListTests.cs index 69f9dded..2927977b 100644 --- a/tests/Jellyfin.Extensions.Tests/Json/Converters/JsonCommaDelimitedIReadOnlyListTests.cs +++ b/tests/Jellyfin.Extensions.Tests/Json/Converters/JsonCommaDelimitedIReadOnlyListTests.cs @@ -17,88 +17,95 @@ namespace Jellyfin.Extensions.Tests.Json.Converters { Converters = { - new JsonStringEnumConverter() - } + new JsonStringEnumConverter(), + }, }; [Fact] public void Deserialize_String_Valid_Success() { - var desiredValue = new GenericBodyIReadOnlyListModel + GenericBodyIReadOnlyListModel + { desiredValue = new GenericBodyIReadOnlyListModel { - Value = new[] { "a", "b", "c" } + Value = new[] { "a", "b", "c" }, }; - var value = JsonSerializer.Deserialize>(@"{ ""Value"": ""a,b,c"" }", _jsonOptions); + GenericBodyIReadOnlyListModel>(@"{ ""Value"": ""a,b,c"" }", _jsonOptions); Assert.Equal(desiredValue.Value, value?.Value); } [Fact] public void Deserialize_String_Space_Valid_Success() { - var desiredValue = new GenericBodyIReadOnlyListModel + GenericBodyIReadOnlyListModel + { desiredValue = new GenericBodyIReadOnlyListModel { - Value = new[] { "a", "b", "c" } + Value = new[] { "a", "b", "c" }, }; - var value = JsonSerializer.Deserialize>(@"{ ""Value"": ""a, b, c"" }", _jsonOptions); + GenericBodyIReadOnlyListModel>(@"{ ""Value"": ""a, b, c"" }", _jsonOptions); Assert.Equal(desiredValue.Value, value?.Value); } [Fact] public void Deserialize_GenericCommandType_Valid_Success() { - var desiredValue = new GenericBodyIReadOnlyListModel + GenericBodyIReadOnlyListModel + { desiredValue = new GenericBodyIReadOnlyListModel { - Value = new[] { GeneralCommandType.MoveUp, GeneralCommandType.MoveDown } + Value = new[] { GeneralCommandType.MoveUp, GeneralCommandType.MoveDown }, }; - var value = JsonSerializer.Deserialize>(@"{ ""Value"": ""MoveUp,MoveDown"" }", _jsonOptions); + GenericBodyIReadOnlyListModel>(@"{ ""Value"": ""MoveUp,MoveDown"" }", _jsonOptions); Assert.Equal(desiredValue.Value, value?.Value); } [Fact] public void Deserialize_GenericCommandType_Space_Valid_Success() { - var desiredValue = new GenericBodyIReadOnlyListModel + GenericBodyIReadOnlyListModel + { desiredValue = new GenericBodyIReadOnlyListModel { - Value = new[] { GeneralCommandType.MoveUp, GeneralCommandType.MoveDown } + Value = new[] { GeneralCommandType.MoveUp, GeneralCommandType.MoveDown }, }; - var value = JsonSerializer.Deserialize>(@"{ ""Value"": ""MoveUp, MoveDown"" }", _jsonOptions); + GenericBodyIReadOnlyListModel>(@"{ ""Value"": ""MoveUp, MoveDown"" }", _jsonOptions); Assert.Equal(desiredValue.Value, value?.Value); } [Fact] public void Deserialize_String_Array_Valid_Success() { - var desiredValue = new GenericBodyIReadOnlyListModel + GenericBodyIReadOnlyListModel + { desiredValue = new GenericBodyIReadOnlyListModel { - Value = new[] { "a", "b", "c" } + Value = new[] { "a", "b", "c" }, }; - var value = JsonSerializer.Deserialize>(@"{ ""Value"": [""a"",""b"",""c""] }", _jsonOptions); + GenericBodyIReadOnlyListModel>(@"{ ""Value"": [""a"",""b"",""c""] }", _jsonOptions); Assert.Equal(desiredValue.Value, value?.Value); } [Fact] public void Deserialize_GenericCommandType_Array_Valid_Success() { - var desiredValue = new GenericBodyIReadOnlyListModel + GenericBodyIReadOnlyListModel + { desiredValue = new GenericBodyIReadOnlyListModel { - Value = new[] { GeneralCommandType.MoveUp, GeneralCommandType.MoveDown } + Value = new[] { GeneralCommandType.MoveUp, GeneralCommandType.MoveDown }, }; - var value = JsonSerializer.Deserialize>(@"{ ""Value"": [""MoveUp"", ""MoveDown""] }", _jsonOptions); + GenericBodyIReadOnlyListModel>(@"{ ""Value"": [""MoveUp"", ""MoveDown""] }", _jsonOptions); Assert.Equal(desiredValue.Value, value?.Value); } [Fact] public void Serialize_GenericCommandType_IReadOnlyList_Valid_Success() { - var valueToSerialize = new GenericBodyIReadOnlyListModel + GenericBodyIReadOnlyListModel + { valueToSerialize = new GenericBodyIReadOnlyListModel { - Value = new List { GeneralCommandType.MoveUp, GeneralCommandType.MoveDown } + Value = new List { GeneralCommandType.MoveUp, GeneralCommandType.MoveDown }, }; string value = JsonSerializer.Serialize>(valueToSerialize, _jsonOptions); diff --git a/tests/Jellyfin.Extensions.Tests/Json/Converters/JsonDefaultStringEnumConverterTests.cs b/tests/Jellyfin.Extensions.Tests/Json/Converters/JsonDefaultStringEnumConverterTests.cs index 1cfd8825..dacbf126 100644 --- a/tests/Jellyfin.Extensions.Tests/Json/Converters/JsonDefaultStringEnumConverterTests.cs +++ b/tests/Jellyfin.Extensions.Tests/Json/Converters/JsonDefaultStringEnumConverterTests.cs @@ -24,7 +24,7 @@ public class JsonDefaultStringEnumConverterTests [InlineData("\"Hls\"", MediaStreamProtocol.hls)] public void Deserialize_Enum_Direct(string input, MediaStreamProtocol output) { - var value = JsonSerializer.Deserialize(input, _jsonOptions); + MediaStreamProtocol value = JsonSerializer.Deserialize(input, _jsonOptions); Assert.Equal(output, value); } @@ -42,7 +42,7 @@ public class JsonDefaultStringEnumConverterTests { input ??= "null"; var json = $"{{ \"EnumValue\": {input} }}"; - var value = JsonSerializer.Deserialize(json, _jsonOptions); + TestClass value = JsonSerializer.Deserialize(json, _jsonOptions); Assert.NotNull(value); Assert.Equal(output, value.EnumValue); } @@ -62,7 +62,7 @@ public class JsonDefaultStringEnumConverterTests { input ??= "null"; var json = $"{{ \"EnumValue\": {input} }}"; - var value = JsonSerializer.Deserialize(json, _jsonOptions); + NullTestClass value = JsonSerializer.Deserialize(json, _jsonOptions); Assert.NotNull(value); Assert.Equal(output, value.EnumValue); } diff --git a/tests/Jellyfin.Extensions.Tests/Json/Converters/JsonFlagEnumTests.cs b/tests/Jellyfin.Extensions.Tests/Json/Converters/JsonFlagEnumTests.cs index df54a73b..3c32ceaa 100644 --- a/tests/Jellyfin.Extensions.Tests/Json/Converters/JsonFlagEnumTests.cs +++ b/tests/Jellyfin.Extensions.Tests/Json/Converters/JsonFlagEnumTests.cs @@ -15,8 +15,8 @@ public class JsonFlagEnumTests { Converters = { - new JsonFlagEnumConverter() - } + new JsonFlagEnumConverter(), + }, }; [Theory] diff --git a/tests/Jellyfin.Extensions.Tests/Json/Converters/JsonStringConverterTests.cs b/tests/Jellyfin.Extensions.Tests/Json/Converters/JsonStringConverterTests.cs index 6db04781..1397ce20 100644 --- a/tests/Jellyfin.Extensions.Tests/Json/Converters/JsonStringConverterTests.cs +++ b/tests/Jellyfin.Extensions.Tests/Json/Converters/JsonStringConverterTests.cs @@ -14,8 +14,8 @@ namespace Jellyfin.Extensions.Tests.Json.Converters { Converters = { - new JsonStringConverter() - } + new JsonStringConverter(), + }, }; [Theory] diff --git a/tests/Jellyfin.Extensions.Tests/obj/project.nuget.cache b/tests/Jellyfin.Extensions.Tests/obj/project.nuget.cache index 7dd496fa..cdd45fa5 100644 --- a/tests/Jellyfin.Extensions.Tests/obj/project.nuget.cache +++ b/tests/Jellyfin.Extensions.Tests/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "en/g4Rojfa8=", + "dgSpecHash": "cBK/w0WVJEs=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\tests\\Jellyfin.Extensions.Tests\\Jellyfin.Extensions.Tests.csproj", "expectedPackageFiles": [ diff --git a/tests/Jellyfin.LiveTv.Tests/obj/project.nuget.cache b/tests/Jellyfin.LiveTv.Tests/obj/project.nuget.cache index 2b70e0e0..e37c6514 100644 --- a/tests/Jellyfin.LiveTv.Tests/obj/project.nuget.cache +++ b/tests/Jellyfin.LiveTv.Tests/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "YQ4opaxxEO8=", + "dgSpecHash": "nbns8k6jJuA=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\tests\\Jellyfin.LiveTv.Tests\\Jellyfin.LiveTv.Tests.csproj", "expectedPackageFiles": [ diff --git a/tests/Jellyfin.MediaEncoding.Hls.Tests/obj/project.nuget.cache b/tests/Jellyfin.MediaEncoding.Hls.Tests/obj/project.nuget.cache index 8d750119..946bb86b 100644 --- a/tests/Jellyfin.MediaEncoding.Hls.Tests/obj/project.nuget.cache +++ b/tests/Jellyfin.MediaEncoding.Hls.Tests/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "/lT1/xD3XnU=", + "dgSpecHash": "hvFFds1OJpc=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\tests\\Jellyfin.MediaEncoding.Hls.Tests\\Jellyfin.MediaEncoding.Hls.Tests.csproj", "expectedPackageFiles": [ diff --git a/tests/Jellyfin.MediaEncoding.Keyframes.Tests/obj/project.nuget.cache b/tests/Jellyfin.MediaEncoding.Keyframes.Tests/obj/project.nuget.cache index 546f0827..1f7062c1 100644 --- a/tests/Jellyfin.MediaEncoding.Keyframes.Tests/obj/project.nuget.cache +++ b/tests/Jellyfin.MediaEncoding.Keyframes.Tests/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "0nvUEzLEN94=", + "dgSpecHash": "5g3aj0khPqM=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\tests\\Jellyfin.MediaEncoding.Keyframes.Tests\\Jellyfin.MediaEncoding.Keyframes.Tests.csproj", "expectedPackageFiles": [ diff --git a/tests/Jellyfin.MediaEncoding.Tests/obj/project.nuget.cache b/tests/Jellyfin.MediaEncoding.Tests/obj/project.nuget.cache index b4bb581b..1febf3d9 100644 --- a/tests/Jellyfin.MediaEncoding.Tests/obj/project.nuget.cache +++ b/tests/Jellyfin.MediaEncoding.Tests/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "SBmVy71j/UM=", + "dgSpecHash": "2rGlge7UbGY=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\tests\\Jellyfin.MediaEncoding.Tests\\Jellyfin.MediaEncoding.Tests.csproj", "expectedPackageFiles": [ diff --git a/tests/Jellyfin.Model.Tests/Cryptography/PasswordHashTests.cs b/tests/Jellyfin.Model.Tests/Cryptography/PasswordHashTests.cs index 9767f398..4103da02 100644 --- a/tests/Jellyfin.Model.Tests/Cryptography/PasswordHashTests.cs +++ b/tests/Jellyfin.Model.Tests/Cryptography/PasswordHashTests.cs @@ -53,8 +53,7 @@ namespace Jellyfin.Model.Tests.Cryptography new Dictionary() { { "iterations", "1000" }, - { "m", "120" } - })); + { "m", "120" },`r`n })); // Id + hash data.Add( @@ -83,7 +82,8 @@ namespace Jellyfin.Model.Tests.Cryptography Array.Empty(), new Dictionary() { - { "iterations", "1000" } + { "iterations", "1000" }, + { "iterations", "1000" }, })); // Id + parameters + hash data.Add( @@ -95,7 +95,7 @@ namespace Jellyfin.Model.Tests.Cryptography new Dictionary() { { "iterations", "1000" }, - { "m", "120" } + { "m", "120" }, })); // Id + parameters + salt + hash data.Add( @@ -107,7 +107,7 @@ namespace Jellyfin.Model.Tests.Cryptography new Dictionary() { { "iterations", "1000" }, - { "m", "120" } + { "m", "120" }, })); return data; } diff --git a/tests/Jellyfin.Model.Tests/obj/project.nuget.cache b/tests/Jellyfin.Model.Tests/obj/project.nuget.cache index ecc57c45..a132eada 100644 --- a/tests/Jellyfin.Model.Tests/obj/project.nuget.cache +++ b/tests/Jellyfin.Model.Tests/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "S2M6GE9E6Mw=", + "dgSpecHash": "E+3Xf4aE0A8=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\tests\\Jellyfin.Model.Tests\\Jellyfin.Model.Tests.csproj", "expectedPackageFiles": [ diff --git a/tests/Jellyfin.Naming.Tests/AudioBook/AudioBookFileInfoTests.cs b/tests/Jellyfin.Naming.Tests/AudioBook/AudioBookFileInfoTests.cs index 187c53ba..8203284e 100644 --- a/tests/Jellyfin.Naming.Tests/AudioBook/AudioBookFileInfoTests.cs +++ b/tests/Jellyfin.Naming.Tests/AudioBook/AudioBookFileInfoTests.cs @@ -29,6 +29,6 @@ namespace Jellyfin.Naming.Tests.AudioBook var info1 = new AudioBookFileInfo(string.Empty, string.Empty); var info2 = new AudioBookFileInfo(string.Empty, string.Empty); Assert.Equal(0, info1.CompareTo(info2)); - } + }, } -} +} \ No newline at end of file diff --git a/tests/Jellyfin.Naming.Tests/AudioBook/AudioBookListResolverTests.cs b/tests/Jellyfin.Naming.Tests/AudioBook/AudioBookListResolverTests.cs index edc924b9..6bfc637e 100644 --- a/tests/Jellyfin.Naming.Tests/AudioBook/AudioBookListResolverTests.cs +++ b/tests/Jellyfin.Naming.Tests/AudioBook/AudioBookListResolverTests.cs @@ -38,7 +38,7 @@ namespace Jellyfin.Naming.Tests.AudioBook "Ready Player One (2020)/audiobook.mp3", "Ready Player One (2020)/extra.mp3", - ".mp3" + ".mp3", }; var resolver = GetResolver(); @@ -89,7 +89,7 @@ namespace Jellyfin.Naming.Tests.AudioBook "Superman/extra.mp3", "Batman/ Chapter 1 .mp3", - "Batman/Chapter 1[loss-less].mp3" + "Batman/Chapter 1[loss-less].mp3", }; var resolver = GetResolver(); @@ -166,7 +166,7 @@ namespace Jellyfin.Naming.Tests.AudioBook Name = " ", Path = " .mp3", Year = null - } + }, }; var resolver = GetResolver(); @@ -183,7 +183,7 @@ namespace Jellyfin.Naming.Tests.AudioBook { Assert.Equal(data[i].Name, result[i].Name); Assert.Equal(data[i].Year, result[i].Year); - } + }, } [Fact] @@ -192,7 +192,7 @@ namespace Jellyfin.Naming.Tests.AudioBook var files = new[] { "Harry Potter and the Deathly Hallows/Chapter 1.ogg", - "Harry Potter and the Deathly Hallows/Harry Potter and the Deathly Hallows.nfo" + "Harry Potter and the Deathly Hallows/Harry Potter and the Deathly Hallows.nfo", }; var resolver = GetResolver(); @@ -212,7 +212,7 @@ namespace Jellyfin.Naming.Tests.AudioBook var files = new[] { "Harry Potter and the Deathly Hallows/Chapter 1.mp3", - "Harry Potter and the Deathly Hallows/Harry Potter and the Deathly Hallows trailer.mp3" + "Harry Potter and the Deathly Hallows/Harry Potter and the Deathly Hallows trailer.mp3", }; var resolver = GetResolver(); @@ -231,7 +231,7 @@ namespace Jellyfin.Naming.Tests.AudioBook { var files = new[] { - "Harry Potter and the Deathly Hallows trailer.mp3" + "Harry Potter and the Deathly Hallows trailer.mp3", }; var resolver = GetResolver(); @@ -271,6 +271,6 @@ namespace Jellyfin.Naming.Tests.AudioBook public string Name; public string Path; public int? Year; - } + }, } -} +} \ No newline at end of file diff --git a/tests/Jellyfin.Naming.Tests/AudioBook/AudioBookResolverTests.cs b/tests/Jellyfin.Naming.Tests/AudioBook/AudioBookResolverTests.cs index e732f384..1715a558 100644 --- a/tests/Jellyfin.Naming.Tests/AudioBook/AudioBookResolverTests.cs +++ b/tests/Jellyfin.Naming.Tests/AudioBook/AudioBookResolverTests.cs @@ -64,6 +64,6 @@ namespace Jellyfin.Naming.Tests.AudioBook var result = new AudioBookResolver(_namingOptions).Resolve(string.Empty); Assert.Null(result); - } + }, } -} +} \ No newline at end of file diff --git a/tests/Jellyfin.Naming.Tests/Common/NamingOptionsTest.cs b/tests/Jellyfin.Naming.Tests/Common/NamingOptionsTest.cs index c9d31a4b..bef3dec5 100644 --- a/tests/Jellyfin.Naming.Tests/Common/NamingOptionsTest.cs +++ b/tests/Jellyfin.Naming.Tests/Common/NamingOptionsTest.cs @@ -32,6 +32,6 @@ namespace Jellyfin.Naming.Tests.Common exp.Expression = "test"; Assert.Equal("test", exp.Expression); Assert.NotNull(exp.Regex); - } + }, } -} +} \ No newline at end of file diff --git a/tests/Jellyfin.Naming.Tests/ExternalFiles/ExternalPathParserTests.cs b/tests/Jellyfin.Naming.Tests/ExternalFiles/ExternalPathParserTests.cs index 3989f8bb..ca4d4884 100644 --- a/tests/Jellyfin.Naming.Tests/ExternalFiles/ExternalPathParserTests.cs +++ b/tests/Jellyfin.Naming.Tests/ExternalFiles/ExternalPathParserTests.cs @@ -122,4 +122,4 @@ public class ExternalPathParserTests Assert.Equal(isForced, actual.IsForced); Assert.Equal(isHearingImpaired, actual.IsHearingImpaired); } -} +} \ No newline at end of file diff --git a/tests/Jellyfin.Naming.Tests/Music/MultiDiscAlbumTests.cs b/tests/Jellyfin.Naming.Tests/Music/MultiDiscAlbumTests.cs index b7866675..e1d9a746 100644 --- a/tests/Jellyfin.Naming.Tests/Music/MultiDiscAlbumTests.cs +++ b/tests/Jellyfin.Naming.Tests/Music/MultiDiscAlbumTests.cs @@ -49,6 +49,6 @@ namespace Jellyfin.Naming.Tests.Music var parser = new AlbumParser(_namingOptions); Assert.Equal(result, parser.IsMultiPart(path)); - } + }, } -} +} \ No newline at end of file diff --git a/tests/Jellyfin.Naming.Tests/TV/AbsoluteEpisodeNumberTests.cs b/tests/Jellyfin.Naming.Tests/TV/AbsoluteEpisodeNumberTests.cs index 2fcc77cf..066d89a1 100644 --- a/tests/Jellyfin.Naming.Tests/TV/AbsoluteEpisodeNumberTests.cs +++ b/tests/Jellyfin.Naming.Tests/TV/AbsoluteEpisodeNumberTests.cs @@ -25,6 +25,6 @@ namespace Jellyfin.Naming.Tests.TV var result = _resolver.Resolve(path, false, null, null, true); Assert.Equal(episodeNumber, result?.EpisodeNumber); - } + }, } -} +} \ No newline at end of file diff --git a/tests/Jellyfin.Naming.Tests/TV/DailyEpisodeTests.cs b/tests/Jellyfin.Naming.Tests/TV/DailyEpisodeTests.cs index cf238076..842df334 100644 --- a/tests/Jellyfin.Naming.Tests/TV/DailyEpisodeTests.cs +++ b/tests/Jellyfin.Naming.Tests/TV/DailyEpisodeTests.cs @@ -31,6 +31,6 @@ namespace Jellyfin.Naming.Tests.TV Assert.Equal(month, result?.Month); Assert.Equal(day, result?.Day); Assert.Equal(seriesName, result?.SeriesName, true); - } + }, } -} +} \ No newline at end of file diff --git a/tests/Jellyfin.Naming.Tests/TV/EpisodeNumberTests.cs b/tests/Jellyfin.Naming.Tests/TV/EpisodeNumberTests.cs index dcca11b3..5876d7f3 100644 --- a/tests/Jellyfin.Naming.Tests/TV/EpisodeNumberTests.cs +++ b/tests/Jellyfin.Naming.Tests/TV/EpisodeNumberTests.cs @@ -95,6 +95,6 @@ namespace Jellyfin.Naming.Tests.TV .Parse(path, false); Assert.Equal(expected, result.EpisodeNumber); - } + }, } -} +} \ No newline at end of file diff --git a/tests/Jellyfin.Naming.Tests/TV/EpisodeNumberWithoutSeasonTests.cs b/tests/Jellyfin.Naming.Tests/TV/EpisodeNumberWithoutSeasonTests.cs index 3f172298..bb6afb15 100644 --- a/tests/Jellyfin.Naming.Tests/TV/EpisodeNumberWithoutSeasonTests.cs +++ b/tests/Jellyfin.Naming.Tests/TV/EpisodeNumberWithoutSeasonTests.cs @@ -33,6 +33,6 @@ namespace Jellyfin.Naming.Tests.TV var result = _resolver.Resolve(path, false); Assert.Equal(episodeNumber, result?.EpisodeNumber); - } + }, } -} +} \ No newline at end of file diff --git a/tests/Jellyfin.Naming.Tests/TV/EpisodePathParserTest.cs b/tests/Jellyfin.Naming.Tests/TV/EpisodePathParserTest.cs index ee3176f6..7d116703 100644 --- a/tests/Jellyfin.Naming.Tests/TV/EpisodePathParserTest.cs +++ b/tests/Jellyfin.Naming.Tests/TV/EpisodePathParserTest.cs @@ -103,6 +103,6 @@ namespace Jellyfin.Naming.Tests.TV var res = p.Parse("ABC_2019_10_21 11:00:00", false); Assert.True(res.Success); - } + }, } -} +} \ No newline at end of file diff --git a/tests/Jellyfin.Naming.Tests/TV/MultiEpisodeTests.cs b/tests/Jellyfin.Naming.Tests/TV/MultiEpisodeTests.cs index 5d900458..c9777400 100644 --- a/tests/Jellyfin.Naming.Tests/TV/MultiEpisodeTests.cs +++ b/tests/Jellyfin.Naming.Tests/TV/MultiEpisodeTests.cs @@ -78,6 +78,6 @@ namespace Jellyfin.Naming.Tests.TV var result = _episodePathParser.Parse(filename, false); Assert.Equal(result.EndingEpisodeNumber, endingEpisodeNumber); - } + }, } -} +} \ No newline at end of file diff --git a/tests/Jellyfin.Naming.Tests/TV/SeasonNumberTests.cs b/tests/Jellyfin.Naming.Tests/TV/SeasonNumberTests.cs index 22d4d9cb..d3d88c74 100644 --- a/tests/Jellyfin.Naming.Tests/TV/SeasonNumberTests.cs +++ b/tests/Jellyfin.Naming.Tests/TV/SeasonNumberTests.cs @@ -63,6 +63,6 @@ namespace Jellyfin.Naming.Tests.TV var result = _resolver.Resolve(path, false); Assert.Equal(expected, result?.SeasonNumber); - } + }, } -} +} \ No newline at end of file diff --git a/tests/Jellyfin.Naming.Tests/TV/SeasonPathParserTests.cs b/tests/Jellyfin.Naming.Tests/TV/SeasonPathParserTests.cs index be771fb7..cc53287e 100644 --- a/tests/Jellyfin.Naming.Tests/TV/SeasonPathParserTests.cs +++ b/tests/Jellyfin.Naming.Tests/TV/SeasonPathParserTests.cs @@ -87,4 +87,4 @@ public class SeasonPathParserTests Assert.Equal(seasonNumber, result.SeasonNumber); Assert.Equal(isSeasonDirectory, result.IsSeasonFolder); } -} +} \ No newline at end of file diff --git a/tests/Jellyfin.Naming.Tests/TV/SeriesPathParserTest.cs b/tests/Jellyfin.Naming.Tests/TV/SeriesPathParserTest.cs index a9e65b52..f362f64b 100644 --- a/tests/Jellyfin.Naming.Tests/TV/SeriesPathParserTest.cs +++ b/tests/Jellyfin.Naming.Tests/TV/SeriesPathParserTest.cs @@ -28,6 +28,6 @@ namespace Jellyfin.Naming.Tests.TV Assert.Equal(name, res.SeriesName); Assert.True(res.Success); - } + }, } -} +} \ No newline at end of file diff --git a/tests/Jellyfin.Naming.Tests/TV/SeriesResolverTests.cs b/tests/Jellyfin.Naming.Tests/TV/SeriesResolverTests.cs index 64ad3a30..6c396800 100644 --- a/tests/Jellyfin.Naming.Tests/TV/SeriesResolverTests.cs +++ b/tests/Jellyfin.Naming.Tests/TV/SeriesResolverTests.cs @@ -29,6 +29,6 @@ namespace Jellyfin.Naming.Tests.TV var res = SeriesResolver.Resolve(_namingOptions, path); Assert.Equal(name, res.Name); - } + }, } -} +} \ No newline at end of file diff --git a/tests/Jellyfin.Naming.Tests/TV/SimpleEpisodeTests.cs b/tests/Jellyfin.Naming.Tests/TV/SimpleEpisodeTests.cs index be3e9550..034b0c8c 100644 --- a/tests/Jellyfin.Naming.Tests/TV/SimpleEpisodeTests.cs +++ b/tests/Jellyfin.Naming.Tests/TV/SimpleEpisodeTests.cs @@ -48,6 +48,6 @@ namespace Jellyfin.Naming.Tests.TV Assert.Null(result!.StubType); Assert.Equal(episodeEndNumber, result!.EndingEpisodeNumber); Assert.False(result!.IsByDate); - } + }, } -} +} \ No newline at end of file diff --git a/tests/Jellyfin.Naming.Tests/TV/TvParserHelpersTest.cs b/tests/Jellyfin.Naming.Tests/TV/TvParserHelpersTest.cs index a2636a6a..20195892 100644 --- a/tests/Jellyfin.Naming.Tests/TV/TvParserHelpersTest.cs +++ b/tests/Jellyfin.Naming.Tests/TV/TvParserHelpersTest.cs @@ -32,4 +32,4 @@ public class TvParserHelpersTest Assert.False(successful); Assert.Null(parsed); } -} +} \ No newline at end of file diff --git a/tests/Jellyfin.Naming.Tests/Video/CleanDateTimeTests.cs b/tests/Jellyfin.Naming.Tests/Video/CleanDateTimeTests.cs index 904f2593..7c263f8b 100644 --- a/tests/Jellyfin.Naming.Tests/Video/CleanDateTimeTests.cs +++ b/tests/Jellyfin.Naming.Tests/Video/CleanDateTimeTests.cs @@ -65,6 +65,6 @@ namespace Jellyfin.Naming.Tests.Video Assert.Equal(expectedName, result.Name, true); Assert.Equal(expectedYear, result.Year); - } + }, } -} +} \ No newline at end of file diff --git a/tests/Jellyfin.Naming.Tests/Video/CleanStringTests.cs b/tests/Jellyfin.Naming.Tests/Video/CleanStringTests.cs index 17e7a777..33d88104 100644 --- a/tests/Jellyfin.Naming.Tests/Video/CleanStringTests.cs +++ b/tests/Jellyfin.Naming.Tests/Video/CleanStringTests.cs @@ -52,6 +52,6 @@ namespace Jellyfin.Naming.Tests.Video { Assert.False(VideoResolver.TryCleanString(input, _namingOptions, out var newName)); Assert.True(string.IsNullOrEmpty(newName)); - } + }, } -} +} \ No newline at end of file diff --git a/tests/Jellyfin.Naming.Tests/Video/ExtraTests.cs b/tests/Jellyfin.Naming.Tests/Video/ExtraTests.cs index a42ebeb0..f9a61d03 100644 --- a/tests/Jellyfin.Naming.Tests/Video/ExtraTests.cs +++ b/tests/Jellyfin.Naming.Tests/Video/ExtraTests.cs @@ -166,6 +166,6 @@ namespace Jellyfin.Naming.Tests.Video var res = ExtraRuleResolver.GetExtraInfo("extra.mp4", options); Assert.Equal(rule, res.Rule); - } + }, } -} +} \ No newline at end of file diff --git a/tests/Jellyfin.Naming.Tests/Video/Format3DTests.cs b/tests/Jellyfin.Naming.Tests/Video/Format3DTests.cs index 07a453aa..6b11ccf6 100644 --- a/tests/Jellyfin.Naming.Tests/Video/Format3DTests.cs +++ b/tests/Jellyfin.Naming.Tests/Video/Format3DTests.cs @@ -72,7 +72,7 @@ namespace Jellyfin.Naming.Tests.Video else { Assert.Equal(format3D, result.Format3D, true); - } - } + }, + }, } -} +} \ No newline at end of file diff --git a/tests/Jellyfin.Naming.Tests/Video/MultiVersionTests.cs b/tests/Jellyfin.Naming.Tests/Video/MultiVersionTests.cs index 5cd5d42b..fa8ebd60 100644 --- a/tests/Jellyfin.Naming.Tests/Video/MultiVersionTests.cs +++ b/tests/Jellyfin.Naming.Tests/Video/MultiVersionTests.cs @@ -22,7 +22,7 @@ namespace Jellyfin.Naming.Tests.Video "/movies/X-Men Days of Future Past/X-Men Days of Future Past - 1080p.mkv", "/movies/X-Men Days of Future Past/X-Men Days of Future Past-trailer.mp4", "/movies/X-Men Days of Future Past/X-Men Days of Future Past - [hsbs].mkv", - "/movies/X-Men Days of Future Past/X-Men Days of Future Past [hsbs].mkv" + "/movies/X-Men Days of Future Past/X-Men Days of Future Past [hsbs].mkv", }; var result = VideoListResolver.Resolve( @@ -41,7 +41,7 @@ namespace Jellyfin.Naming.Tests.Video "/movies/X-Men Days of Future Past/X-Men Days of Future Past - apple.mkv", "/movies/X-Men Days of Future Past/X-Men Days of Future Past-trailer.mp4", "/movies/X-Men Days of Future Past/X-Men Days of Future Past - banana.mkv", - "/movies/X-Men Days of Future Past/X-Men Days of Future Past [banana].mp4" + "/movies/X-Men Days of Future Past/X-Men Days of Future Past [banana].mp4", }; var result = VideoListResolver.Resolve( @@ -59,7 +59,7 @@ namespace Jellyfin.Naming.Tests.Video var files = new[] { "/movies/The Phantom of the Opera (1925)/The Phantom of the Opera (1925) - 1925 version.mkv", - "/movies/The Phantom of the Opera (1925)/The Phantom of the Opera (1925) - 1929 version.mkv" + "/movies/The Phantom of the Opera (1925)/The Phantom of the Opera (1925) - 1929 version.mkv", }; var result = VideoListResolver.Resolve( @@ -81,7 +81,7 @@ namespace Jellyfin.Naming.Tests.Video "/movies/M/Movie 4.mkv", "/movies/M/Movie 5.mkv", "/movies/M/Movie 6.mkv", - "/movies/M/Movie 7.mkv" + "/movies/M/Movie 7.mkv", }; var result = VideoListResolver.Resolve( @@ -104,7 +104,7 @@ namespace Jellyfin.Naming.Tests.Video "/movies/Movie/Movie-5.mkv", "/movies/Movie/Movie-6.mkv", "/movies/Movie/Movie-7.mkv", - "/movies/Movie/Movie-8.mkv" + "/movies/Movie/Movie-8.mkv", }; var result = VideoListResolver.Resolve( @@ -128,7 +128,7 @@ namespace Jellyfin.Naming.Tests.Video "/movies/Mo/Movie 6.mkv", "/movies/Mo/Movie 7.mkv", "/movies/Mo/Movie 8.mkv", - "/movies/Mo/Movie 9.mkv" + "/movies/Mo/Movie 9.mkv", }; var result = VideoListResolver.Resolve( @@ -148,7 +148,7 @@ namespace Jellyfin.Naming.Tests.Video "/movies/Movie/Movie 2.mkv", "/movies/Movie/Movie 3.mkv", "/movies/Movie/Movie 4.mkv", - "/movies/Movie/Movie 5.mkv" + "/movies/Movie/Movie 5.mkv", }; var result = VideoListResolver.Resolve( @@ -170,7 +170,7 @@ namespace Jellyfin.Naming.Tests.Video "/movies/Iron Man/Iron Man (2008).mkv", "/movies/Iron Man/Iron Man (2009).mkv", "/movies/Iron Man/Iron Man (2010).mkv", - "/movies/Iron Man/Iron Man (2011).mkv" + "/movies/Iron Man/Iron Man (2011).mkv", }; var result = VideoListResolver.Resolve( @@ -192,7 +192,7 @@ namespace Jellyfin.Naming.Tests.Video "/movies/Iron Man/Iron Man-bluray.mkv", "/movies/Iron Man/Iron Man-3d.mkv", "/movies/Iron Man/Iron Man-3d-hsbs.mkv", - "/movies/Iron Man/Iron Man[test].mkv" + "/movies/Iron Man/Iron Man[test].mkv", }; var result = VideoListResolver.Resolve( @@ -221,7 +221,7 @@ namespace Jellyfin.Naming.Tests.Video "/movies/Iron Man/Iron Man - bluray.mkv", "/movies/Iron Man/Iron Man - 3d.mkv", "/movies/Iron Man/Iron Man - 3d-hsbs.mkv", - "/movies/Iron Man/Iron Man [test].mkv" + "/movies/Iron Man/Iron Man [test].mkv", }; var result = VideoListResolver.Resolve( @@ -245,7 +245,7 @@ namespace Jellyfin.Naming.Tests.Video var files = new[] { "/movies/Iron Man/Iron Man - B (2006).mkv", - "/movies/Iron Man/Iron Man - C (2007).mkv" + "/movies/Iron Man/Iron Man - C (2007).mkv", }; var result = VideoListResolver.Resolve( @@ -266,7 +266,7 @@ namespace Jellyfin.Naming.Tests.Video "/movies/Iron Man/Iron Man_bluray.mkv", "/movies/Iron Man/Iron Man_3d.mkv", "/movies/Iron Man/Iron Man_3d-hsbs.mkv", - "/movies/Iron Man/Iron Man_3d.hsbs.mkv" + "/movies/Iron Man/Iron Man_3d.hsbs.mkv", }; var result = VideoListResolver.Resolve( @@ -288,7 +288,7 @@ namespace Jellyfin.Naming.Tests.Video "/movies/Iron Man/Iron Man (2008).mkv", "/movies/Iron Man/Iron Man (2009).mkv", "/movies/Iron Man/Iron Man (2010).mkv", - "/movies/Iron Man/Iron Man (2011).mkv" + "/movies/Iron Man/Iron Man (2011).mkv", }; var result = VideoListResolver.Resolve( @@ -305,7 +305,7 @@ namespace Jellyfin.Naming.Tests.Video var files = new[] { "/movies/Blade Runner (1982)/Blade Runner (1982) [Final Cut] [1080p HEVC AAC].mkv", - "/movies/Blade Runner (1982)/Blade Runner (1982) [EE by ADM] [480p HEVC AAC,AAC,AAC].mkv" + "/movies/Blade Runner (1982)/Blade Runner (1982) [EE by ADM] [480p HEVC AAC,AAC,AAC].mkv", }; var result = VideoListResolver.Resolve( @@ -322,7 +322,7 @@ namespace Jellyfin.Naming.Tests.Video var files = new[] { "/movies/X-Men Apocalypse (2016)/X-Men Apocalypse (2016) [1080p] Blu-ray.x264.DTS.mkv", - "/movies/X-Men Apocalypse (2016)/X-Men Apocalypse (2016) [2160p] Blu-ray.x265.AAC.mkv" + "/movies/X-Men Apocalypse (2016)/X-Men Apocalypse (2016) [2160p] Blu-ray.x265.AAC.mkv", }; var result = VideoListResolver.Resolve( @@ -405,7 +405,7 @@ namespace Jellyfin.Naming.Tests.Video var files = new[] { "/movies/John Wick - Kapitel 3 (2019) [imdbid=tt6146586]/John Wick - Kapitel 3 (2019) [imdbid=tt6146586] - Version 1.mkv", - "/movies/John Wick - Kapitel 3 (2019) [imdbid=tt6146586]/John Wick - Kapitel 3 (2019) [imdbid=tt6146586] - Version 2.mkv" + "/movies/John Wick - Kapitel 3 (2019) [imdbid=tt6146586]/John Wick - Kapitel 3 (2019) [imdbid=tt6146586] - Version 2.mkv", }; var result = VideoListResolver.Resolve( @@ -422,7 +422,7 @@ namespace Jellyfin.Naming.Tests.Video var files = new[] { "/movies/John Wick - Chapter 3 (2019)/John Wick - Chapter 3 (2019) [Version 1].mkv", - "/movies/John Wick - Chapter 3 (2019)/John Wick - Chapter 3 (2019) [Version 2.mkv" + "/movies/John Wick - Chapter 3 (2019)/John Wick - Chapter 3 (2019) [Version 2.mkv", }; var result = VideoListResolver.Resolve( @@ -438,6 +438,6 @@ namespace Jellyfin.Naming.Tests.Video var result = VideoListResolver.Resolve(new List(), _namingOptions).ToList(); Assert.Empty(result); - } + }, } -} +} \ No newline at end of file diff --git a/tests/Jellyfin.Naming.Tests/Video/StackTests.cs b/tests/Jellyfin.Naming.Tests/Video/StackTests.cs index 0532bf93..61831a3a 100644 --- a/tests/Jellyfin.Naming.Tests/Video/StackTests.cs +++ b/tests/Jellyfin.Naming.Tests/Video/StackTests.cs @@ -23,7 +23,7 @@ namespace Jellyfin.Naming.Tests.Video "Bad Boys (2006) part2.mkv", "Bad Boys (2006) part3.mkv", "Bad Boys (2006) part4.mkv", - "Bad Boys (2006)-trailer.mkv" + "Bad Boys (2006)-trailer.mkv", }; var result = StackResolver.ResolveFiles(files, _namingOptions).ToList(); @@ -38,7 +38,7 @@ namespace Jellyfin.Naming.Tests.Video var files = new[] { "Bad Boys (2006).mkv", - "Bad Boys (2007).mkv" + "Bad Boys (2007).mkv", }; var result = StackResolver.ResolveFiles(files, _namingOptions).ToList(); @@ -52,7 +52,7 @@ namespace Jellyfin.Naming.Tests.Video var files = new[] { "Bad Boys 2006.mkv", - "Bad Boys 2007.mkv" + "Bad Boys 2007.mkv", }; var result = StackResolver.ResolveFiles(files, _namingOptions).ToList(); @@ -66,7 +66,7 @@ namespace Jellyfin.Naming.Tests.Video var files = new[] { "300 (2006).mkv", - "300 (2007).mkv" + "300 (2007).mkv", }; var result = StackResolver.ResolveFiles(files, _namingOptions).ToList(); @@ -80,7 +80,7 @@ namespace Jellyfin.Naming.Tests.Video var files = new[] { "300 2006.mkv", - "300 2007.mkv" + "300 2007.mkv", }; var result = StackResolver.ResolveFiles(files, _namingOptions).ToList(); @@ -94,7 +94,7 @@ namespace Jellyfin.Naming.Tests.Video var files = new[] { "Star Trek 1 - The motion picture.mkv", - "Star Trek 2- The wrath of khan.mkv" + "Star Trek 2- The wrath of khan.mkv", }; var result = StackResolver.ResolveFiles(files, _namingOptions).ToList(); @@ -108,7 +108,7 @@ namespace Jellyfin.Naming.Tests.Video { "Red Riding in the Year of Our Lord 1983 (2009).mkv", "Red Riding in the Year of Our Lord 1980 (2009).mkv", - "Red Riding in the Year of Our Lord 1974 (2009).mkv" + "Red Riding in the Year of Our Lord 1974 (2009).mkv", }; var result = StackResolver.ResolveFiles(files, _namingOptions).ToList(); @@ -122,7 +122,7 @@ namespace Jellyfin.Naming.Tests.Video var files = new[] { "d:/movies/300 2006 part1.mkv", - "d:/movies/300 2006 part2.mkv" + "d:/movies/300 2006 part2.mkv", }; var result = StackResolver.ResolveFiles(files, _namingOptions).ToList(); @@ -140,7 +140,7 @@ namespace Jellyfin.Naming.Tests.Video "Bad Boys (2006).part2.stv.unrated.multi.1080p.bluray.x264-rough.mkv", "Bad Boys (2006).part3.stv.unrated.multi.1080p.bluray.x264-rough.mkv", "Bad Boys (2006).part4.stv.unrated.multi.1080p.bluray.x264-rough.mkv", - "Bad Boys (2006)-trailer.mkv" + "Bad Boys (2006)-trailer.mkv", }; var result = StackResolver.ResolveFiles(files, _namingOptions).ToList(); @@ -157,7 +157,7 @@ namespace Jellyfin.Naming.Tests.Video "Bad Boys (2006) 1.mkv", "Bad Boys (2006) 2.mkv", "Bad Boys (2006) 3.mkv", - "Bad Boys (2006)-trailer.mkv" + "Bad Boys (2006)-trailer.mkv", }; var result = StackResolver.ResolveFiles(files, _namingOptions).ToList(); @@ -174,7 +174,7 @@ namespace Jellyfin.Naming.Tests.Video "300 (2006) part2.mkv", "300 (2006) part3.mkv", "300 (2006) part4.mkv", - "300 (2006)-trailer.mkv" + "300 (2006)-trailer.mkv", }; var result = StackResolver.ResolveFiles(files, _namingOptions).ToList(); @@ -192,7 +192,7 @@ namespace Jellyfin.Naming.Tests.Video "Bad Boys (2006) part2.mkv", "Bad Boys (2006) part3.mkv", "Bad Boys (2006) parta.mkv", - "Bad Boys (2006)-trailer.mkv" + "Bad Boys (2006)-trailer.mkv", }; var result = StackResolver.ResolveFiles(files, _namingOptions).ToList(); @@ -214,7 +214,7 @@ namespace Jellyfin.Naming.Tests.Video "300 (2006) part1.mkv", "300 (2006) part2.mkv", "300 (2006) part3.mkv", - "300 (2006)-trailer.mkv" + "300 (2006)-trailer.mkv", }; var result = StackResolver.ResolveFiles(files, _namingOptions).ToList(); @@ -230,7 +230,7 @@ namespace Jellyfin.Naming.Tests.Video var files = new[] { "blah blah - cd 1", - "blah blah - cd 2" + "blah blah - cd 2", }; var result = StackResolver.ResolveDirectories(files, _namingOptions).ToList(); @@ -247,7 +247,7 @@ namespace Jellyfin.Naming.Tests.Video "300a.mkv", "300b.mkv", "300c.mkv", - "300-trailer.mkv" + "300-trailer.mkv", }; var result = StackResolver.ResolveFiles(files, _namingOptions).ToList(); @@ -266,7 +266,7 @@ namespace Jellyfin.Naming.Tests.Video "Avatar", "Avengers part1.mkv", "Avengers part2.mkv", - "Avengers part3.mkv" + "Avengers part3.mkv", }; var result = StackResolver.ResolveFiles(files, _namingOptions).ToList(); @@ -295,7 +295,7 @@ namespace Jellyfin.Naming.Tests.Video "300a.mkv", "300b.mkv", "300c.mkv", - "300-trailer.mkv" + "300-trailer.mkv", }; var result = StackResolver.ResolveFiles(files, _namingOptions).ToList(); @@ -319,7 +319,7 @@ namespace Jellyfin.Naming.Tests.Video "300 (2006) parte.mkv", "300 (2006) partf.mkv", "300 (2006) partg.mkv", - "300 (2006)-trailer.mkv" + "300 (2006)-trailer.mkv", }; var result = StackResolver.ResolveFiles(files, _namingOptions).ToList(); @@ -338,7 +338,7 @@ namespace Jellyfin.Naming.Tests.Video new FileSystemMetadata { FullName = "Bad Boys (2006) part2.mkv", IsDirectory = false }, new FileSystemMetadata { FullName = "300 (2006) part2", IsDirectory = true }, new FileSystemMetadata { FullName = "300 (2006) part3", IsDirectory = true }, - new FileSystemMetadata { FullName = "300 (2006) part1", IsDirectory = true } + new FileSystemMetadata { FullName = "300 (2006) part1", IsDirectory = true }, }; var result = StackResolver.Resolve(files, _namingOptions).ToList(); @@ -358,7 +358,7 @@ namespace Jellyfin.Naming.Tests.Video "Harry Potter and the Deathly Hallows 1.mkv", "Harry Potter and the Deathly Hallows 2.mkv", "Harry Potter and the Deathly Hallows 3.mkv", - "Harry Potter and the Deathly Hallows 4.mkv" + "Harry Potter and the Deathly Hallows 4.mkv", }; var result = StackResolver.ResolveFiles(files, _namingOptions).ToList(); @@ -373,7 +373,7 @@ namespace Jellyfin.Naming.Tests.Video var files = new[] { "Neverland (2011)[720p][PG][Voted 6.5][Family-Fantasy]part1.mkv", - "Neverland (2011)[720p][PG][Voted 6.5][Family-Fantasy]part2.mkv" + "Neverland (2011)[720p][PG][Voted 6.5][Family-Fantasy]part2.mkv", }; var result = StackResolver.ResolveFiles(files, _namingOptions).ToList(); @@ -389,7 +389,7 @@ namespace Jellyfin.Naming.Tests.Video var files = new[] { "M:/Movies (DVD)/Movies (Musical)/The Sound of Music/The Sound of Music (1965) (Disc 01)", - "M:/Movies (DVD)/Movies (Musical)/The Sound of Music/The Sound of Music (1965) (Disc 02)" + "M:/Movies (DVD)/Movies (Musical)/The Sound of Music/The Sound of Music (1965) (Disc 02)", }; var result = StackResolver.ResolveDirectories(files, _namingOptions).ToList(); @@ -402,6 +402,6 @@ namespace Jellyfin.Naming.Tests.Video { Assert.Equal(fileCount, stack.Files.Count); Assert.Equal(name, stack.Name); - } + }, } -} +} \ No newline at end of file diff --git a/tests/Jellyfin.Naming.Tests/Video/StubTests.cs b/tests/Jellyfin.Naming.Tests/Video/StubTests.cs index 3660f5c6..b05b1b1f 100644 --- a/tests/Jellyfin.Naming.Tests/Video/StubTests.cs +++ b/tests/Jellyfin.Naming.Tests/Video/StubTests.cs @@ -51,7 +51,7 @@ namespace Jellyfin.Naming.Tests.Video else { Assert.Null(stubTypeResult); - } - } + }, + }, } -} +} \ No newline at end of file diff --git a/tests/Jellyfin.Naming.Tests/Video/VideoListResolverTests.cs b/tests/Jellyfin.Naming.Tests/Video/VideoListResolverTests.cs index 78ad47f7..618a96ed 100644 --- a/tests/Jellyfin.Naming.Tests/Video/VideoListResolverTests.cs +++ b/tests/Jellyfin.Naming.Tests/Video/VideoListResolverTests.cs @@ -41,7 +41,7 @@ namespace Jellyfin.Naming.Tests.Video "trailer.mkv", // Same as above - "WillyWonka-trailer.mkv" + "WillyWonka-trailer.mkv", }; var result = VideoListResolver.Resolve( @@ -75,7 +75,7 @@ namespace Jellyfin.Naming.Tests.Video var files = new[] { "300.mkv", - "300.nfo" + "300.nfo", }; var result = VideoListResolver.Resolve( @@ -91,7 +91,7 @@ namespace Jellyfin.Naming.Tests.Video var files = new[] { "300.mkv", - "300 - trailer.mkv" + "300 - trailer.mkv", }; var result = VideoListResolver.Resolve( @@ -109,7 +109,7 @@ namespace Jellyfin.Naming.Tests.Video var files = new[] { "X-Men Days of Future Past - 1080p.mkv", - "X-Men Days of Future Past-trailer.mp4" + "X-Men Days of Future Past-trailer.mp4", }; var result = VideoListResolver.Resolve( @@ -128,7 +128,7 @@ namespace Jellyfin.Naming.Tests.Video { "X-Men Days of Future Past - 1080p.mkv", "X-Men Days of Future Past-trailer.mp4", - "X-Men Days of Future Past-trailer2.mp4" + "X-Men Days of Future Past-trailer2.mp4", }; var result = VideoListResolver.Resolve( @@ -148,7 +148,7 @@ namespace Jellyfin.Naming.Tests.Video { "Looper (2012)-trailer.mkv", "Looper 2012-trailer.mkv", - "Looper.2012.bluray.720p.x264.mkv" + "Looper.2012.bluray.720p.x264.mkv", }; var result = VideoListResolver.Resolve( @@ -167,7 +167,7 @@ namespace Jellyfin.Naming.Tests.Video var files = new[] { "/movies/Looper (2012)/Looper (2012)-trailer.mkv", - "/movies/Looper (2012)/Looper.bluray.720p.x264.mkv" + "/movies/Looper (2012)/Looper.bluray.720p.x264.mkv", }; var result = VideoListResolver.Resolve( @@ -189,7 +189,7 @@ namespace Jellyfin.Naming.Tests.Video "My video 2.mkv", "My video 3.mkv", "My video 4.mkv", - "My video 5.mkv" + "My video 5.mkv", }; var result = VideoListResolver.Resolve( @@ -205,7 +205,7 @@ namespace Jellyfin.Naming.Tests.Video var files = new[] { "M:/Movies (DVD)/Movies (Musical)/Sound of Music (1965)/Sound of Music Disc 1", - "M:/Movies (DVD)/Movies (Musical)/Sound of Music (1965)/Sound of Music Disc 2" + "M:/Movies (DVD)/Movies (Musical)/Sound of Music (1965)/Sound of Music Disc 2", }; var result = VideoListResolver.Resolve( @@ -222,7 +222,7 @@ namespace Jellyfin.Naming.Tests.Video var files = new[] { "My movie #1.mp4", - "My movie #2.mp4" + "My movie #2.mp4", }; var result = VideoListResolver.Resolve( @@ -240,7 +240,7 @@ namespace Jellyfin.Naming.Tests.Video "No (2012) part1.mp4", "No (2012) part2.mp4", "No (2012) part1-trailer.mp4", - "No (2012)-trailer.mp4" + "No (2012)-trailer.mp4", }; var result = VideoListResolver.Resolve( @@ -261,7 +261,7 @@ namespace Jellyfin.Naming.Tests.Video "/Movies/Top Gun (1984)/movie.mp4", "/Movies/Top Gun (1984)/Top Gun (1984)-trailer.mp4", "/Movies/Top Gun (1984)/Top Gun (1984)-trailer2.mp4", - "/Movies/trailer.mp4" + "/Movies/trailer.mp4", }; var result = VideoListResolver.Resolve( @@ -283,7 +283,7 @@ namespace Jellyfin.Naming.Tests.Video "/MCFAMILY-PC/Private3$/Heterosexual/Breast In Class 2 Counterfeit Racks (2011)/Breast In Class 2 Counterfeit Racks (2011) Disc 1 cd1.avi", "/MCFAMILY-PC/Private3$/Heterosexual/Breast In Class 2 Counterfeit Racks (2011)/Breast In Class 2 Counterfeit Racks (2011) Disc 1 cd2.avi", "/MCFAMILY-PC/Private3$/Heterosexual/Breast In Class 2 Counterfeit Racks (2011)/Breast In Class 2 Disc 2 cd1.avi", - "/MCFAMILY-PC/Private3$/Heterosexual/Breast In Class 2 Counterfeit Racks (2011)/Breast In Class 2 Disc 2 cd2.avi" + "/MCFAMILY-PC/Private3$/Heterosexual/Breast In Class 2 Counterfeit Racks (2011)/Breast In Class 2 Disc 2 cd2.avi", }; var result = VideoListResolver.Resolve( @@ -298,7 +298,7 @@ namespace Jellyfin.Naming.Tests.Video { var files = new[] { - "/nas-markrobbo78/Videos/INDEX HTPC/Movies/Watched/3 - ACTION/Argo (2012)/movie.mkv" + "/nas-markrobbo78/Videos/INDEX HTPC/Movies/Watched/3 - ACTION/Argo (2012)/movie.mkv", }; var result = VideoListResolver.Resolve( @@ -313,7 +313,7 @@ namespace Jellyfin.Naming.Tests.Video { var files = new[] { - "The Colony.mkv" + "The Colony.mkv", }; var result = VideoListResolver.Resolve( @@ -329,7 +329,7 @@ namespace Jellyfin.Naming.Tests.Video var files = new[] { "Four Sisters and a Wedding - A.avi", - "Four Sisters and a Wedding - B.avi" + "Four Sisters and a Wedding - B.avi", }; var result = VideoListResolver.Resolve( @@ -347,7 +347,7 @@ namespace Jellyfin.Naming.Tests.Video var files = new[] { "Four Rooms - A.avi", - "Four Rooms - A.mp4" + "Four Rooms - A.mp4", }; var result = VideoListResolver.Resolve( @@ -363,7 +363,7 @@ namespace Jellyfin.Naming.Tests.Video var files = new[] { "/Server/Despicable Me/Despicable Me (2010).mkv", - "/Server/Despicable Me/trailer.mkv" + "/Server/Despicable Me/trailer.mkv", }; var result = VideoListResolver.Resolve( @@ -381,7 +381,7 @@ namespace Jellyfin.Naming.Tests.Video var files = new[] { "/Server/Despicable Me/Despicable Me (2010).mkv", - "/Server/Despicable Me/trailers/some title.mkv" + "/Server/Despicable Me/trailers/some title.mkv", }; var result = VideoListResolver.Resolve( @@ -399,7 +399,7 @@ namespace Jellyfin.Naming.Tests.Video var files = new[] { "/Movies/Despicable Me/Despicable Me.mkv", - "/Movies/Despicable Me/trailers/trailer.mkv" + "/Movies/Despicable Me/trailers/trailer.mkv", }; var result = VideoListResolver.Resolve( @@ -416,6 +416,6 @@ namespace Jellyfin.Naming.Tests.Video { var stack = new FileStack(string.Empty, false, Array.Empty()); Assert.False(stack.ContainsFile("XX", true)); - } + }, } -} +} \ No newline at end of file diff --git a/tests/Jellyfin.Naming.Tests/Video/VideoResolverTests.cs b/tests/Jellyfin.Naming.Tests/Video/VideoResolverTests.cs index 952ab17c..723ed299 100644 --- a/tests/Jellyfin.Naming.Tests/Video/VideoResolverTests.cs +++ b/tests/Jellyfin.Naming.Tests/Video/VideoResolverTests.cs @@ -192,7 +192,7 @@ namespace Jellyfin.Naming.Tests.Video foreach (var result in results) { Assert.Null(result?.Container); - } - } + }, + }, } -} +} \ No newline at end of file diff --git a/tests/Jellyfin.Naming.Tests/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs b/tests/Jellyfin.Naming.Tests/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs index 925b1351..d7ca9f54 100644 --- a/tests/Jellyfin.Naming.Tests/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs +++ b/tests/Jellyfin.Naming.Tests/obj/Debug/net10.0/.NETCoreApp,Version=v10.0.AssemblyAttributes.cs @@ -1,4 +1,4 @@ // using System; using System.Reflection; -[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v10.0", FrameworkDisplayName = ".NET 10.0")] +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v10.0", FrameworkDisplayName = ".NET 10.0")] \ No newline at end of file diff --git a/tests/Jellyfin.Naming.Tests/obj/Debug/net10.0/Jellyfin.Naming.Tests.AssemblyInfo.cs b/tests/Jellyfin.Naming.Tests/obj/Debug/net10.0/Jellyfin.Naming.Tests.AssemblyInfo.cs index 9d434f50..56efb1ab 100644 --- a/tests/Jellyfin.Naming.Tests/obj/Debug/net10.0/Jellyfin.Naming.Tests.AssemblyInfo.cs +++ b/tests/Jellyfin.Naming.Tests/obj/Debug/net10.0/Jellyfin.Naming.Tests.AssemblyInfo.cs @@ -20,4 +20,3 @@ using System.Reflection; [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] // Generated by the MSBuild WriteCodeFragment class. - diff --git a/tests/Jellyfin.Naming.Tests/obj/project.nuget.cache b/tests/Jellyfin.Naming.Tests/obj/project.nuget.cache index f9f28ac9..012be5d7 100644 --- a/tests/Jellyfin.Naming.Tests/obj/project.nuget.cache +++ b/tests/Jellyfin.Naming.Tests/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "aetk2kDndoI=", + "dgSpecHash": "w013NueXjWs=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\tests\\Jellyfin.Naming.Tests\\Jellyfin.Naming.Tests.csproj", "expectedPackageFiles": [ diff --git a/tests/Jellyfin.Networking.Tests/obj/project.nuget.cache b/tests/Jellyfin.Networking.Tests/obj/project.nuget.cache index 3a22e8f1..88263095 100644 --- a/tests/Jellyfin.Networking.Tests/obj/project.nuget.cache +++ b/tests/Jellyfin.Networking.Tests/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "VqeAp96kZ+8=", + "dgSpecHash": "dtvsyCwkixc=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\tests\\Jellyfin.Networking.Tests\\Jellyfin.Networking.Tests.csproj", "expectedPackageFiles": [ diff --git a/tests/Jellyfin.Providers.Tests/obj/project.nuget.cache b/tests/Jellyfin.Providers.Tests/obj/project.nuget.cache index 612e547e..60aceb0f 100644 --- a/tests/Jellyfin.Providers.Tests/obj/project.nuget.cache +++ b/tests/Jellyfin.Providers.Tests/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "yVpchsJCVR8=", + "dgSpecHash": "99YmHljNark=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\tests\\Jellyfin.Providers.Tests\\Jellyfin.Providers.Tests.csproj", "expectedPackageFiles": [ diff --git a/tests/Jellyfin.Server.Implementations.Tests/obj/project.nuget.cache b/tests/Jellyfin.Server.Implementations.Tests/obj/project.nuget.cache index fb9302aa..d5f01a83 100644 --- a/tests/Jellyfin.Server.Implementations.Tests/obj/project.nuget.cache +++ b/tests/Jellyfin.Server.Implementations.Tests/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "SB6n8FaqhDk=", + "dgSpecHash": "ekBTYkgmpdU=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\tests\\Jellyfin.Server.Implementations.Tests\\Jellyfin.Server.Implementations.Tests.csproj", "expectedPackageFiles": [ diff --git a/tests/Jellyfin.Server.Integration.Tests/obj/project.nuget.cache b/tests/Jellyfin.Server.Integration.Tests/obj/project.nuget.cache index 3bd82b26..0061c7c5 100644 --- a/tests/Jellyfin.Server.Integration.Tests/obj/project.nuget.cache +++ b/tests/Jellyfin.Server.Integration.Tests/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "F/F7p6QhWSM=", + "dgSpecHash": "wWSnrqDiePs=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\tests\\Jellyfin.Server.Integration.Tests\\Jellyfin.Server.Integration.Tests.csproj", "expectedPackageFiles": [ diff --git a/tests/Jellyfin.Server.Tests/obj/project.nuget.cache b/tests/Jellyfin.Server.Tests/obj/project.nuget.cache index 9ad57761..93138c2d 100644 --- a/tests/Jellyfin.Server.Tests/obj/project.nuget.cache +++ b/tests/Jellyfin.Server.Tests/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "W1tIaEHAq1A=", + "dgSpecHash": "2W4hzYZ52SM=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\tests\\Jellyfin.Server.Tests\\Jellyfin.Server.Tests.csproj", "expectedPackageFiles": [ diff --git a/tests/Jellyfin.XbmcMetadata.Tests/obj/project.nuget.cache b/tests/Jellyfin.XbmcMetadata.Tests/obj/project.nuget.cache index 6aa62ef1..e42c907c 100644 --- a/tests/Jellyfin.XbmcMetadata.Tests/obj/project.nuget.cache +++ b/tests/Jellyfin.XbmcMetadata.Tests/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "+lkQwnGRsbE=", + "dgSpecHash": "cjfpv0pWthU=", "success": true, "projectFilePath": "E:\\Projects\\pgsql-jellyfin\\tests\\Jellyfin.XbmcMetadata.Tests\\Jellyfin.XbmcMetadata.Tests.csproj", "expectedPackageFiles": [