Make ItemUpdateController.UpdateItem internal instead of reflection

Addresses review feedback from @Bond-009 on PR #17370: the test helper
InvokeUpdateItem was invoking the private UpdateItem(BaseItemDto, BaseItem)
method via reflection. Jellyfin.Api.csproj already grants
InternalsVisibleTo("Jellyfin.Api.Tests"), so the method is changed to
internal and the test now calls it directly, removing the
GetMethod/Invoke boilerplate.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
zerafachris
2026-07-21 08:51:30 +02:00
parent 5cd3d7ebb7
commit 53e58d8b1b
2 changed files with 2 additions and 12 deletions
@@ -236,7 +236,7 @@ public class ItemUpdateController : BaseJellyfinApiController
return NoContent();
}
private async Task UpdateItem(BaseItemDto request, BaseItem item)
internal async Task UpdateItem(BaseItemDto request, BaseItem item)
{
item.Name = request.Name;
item.ForcedSortName = request.ForcedSortName;
@@ -1,5 +1,4 @@
using System;
using System.Reflection;
using System.Threading.Tasks;
using Jellyfin.Api.Controllers;
using MediaBrowser.Controller.Configuration;
@@ -73,15 +72,6 @@ public class ItemUpdateControllerTests
private Task InvokeUpdateItem(BaseItemDto request, BaseItem item)
{
var method = typeof(ItemUpdateController).GetMethod(
"UpdateItem",
BindingFlags.NonPublic | BindingFlags.Instance,
null,
new[] { typeof(BaseItemDto), typeof(BaseItem) },
null);
Assert.NotNull(method);
return (Task)method!.Invoke(_subject, new object[] { request, item })!;
return _subject.UpdateItem(request, item);
}
}