PlaystateControllerTests.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using System;
  2. using System.Net;
  3. using System.Net.Http;
  4. using System.Threading.Tasks;
  5. using Xunit;
  6. using Xunit.Priority;
  7. namespace Jellyfin.Server.Integration.Tests.Controllers;
  8. [TestCaseOrderer(PriorityOrderer.Name, PriorityOrderer.Assembly)]
  9. public class PlaystateControllerTests : IClassFixture<JellyfinApplicationFactory>
  10. {
  11. private readonly JellyfinApplicationFactory _factory;
  12. private static readonly Guid _testUserId = Guid.NewGuid();
  13. private static readonly Guid _testItemId = Guid.NewGuid();
  14. private static string? _accessToken;
  15. public PlaystateControllerTests(JellyfinApplicationFactory factory)
  16. {
  17. _factory = factory;
  18. }
  19. private Task<HttpResponseMessage> DeleteUserPlayedItems(HttpClient httpClient, Guid userId, Guid itemId)
  20. => httpClient.DeleteAsync($"Users/{userId}/PlayedItems/{itemId}");
  21. private Task<HttpResponseMessage> PostUserPlayedItems(HttpClient httpClient, Guid userId, Guid itemId)
  22. => httpClient.PostAsync($"Users/{userId}/PlayedItems/{itemId}", null);
  23. [Fact]
  24. [Priority(0)]
  25. public async Task DeleteMarkUnplayedItem_DoesNotExist_NotFound()
  26. {
  27. var client = _factory.CreateClient();
  28. client.DefaultRequestHeaders.AddAuthHeader(_accessToken ??= await AuthHelper.CompleteStartupAsync(client).ConfigureAwait(false));
  29. using var response = await DeleteUserPlayedItems(client, _testUserId, _testItemId).ConfigureAwait(false);
  30. Assert.Equal(HttpStatusCode.NotFound, response.StatusCode);
  31. }
  32. [Fact]
  33. [Priority(0)]
  34. public async Task PostMarkPlayedItem_DoesNotExist_NotFound()
  35. {
  36. var client = _factory.CreateClient();
  37. client.DefaultRequestHeaders.AddAuthHeader(_accessToken ??= await AuthHelper.CompleteStartupAsync(client).ConfigureAwait(false));
  38. using var response = await PostUserPlayedItems(client, _testUserId, _testItemId).ConfigureAwait(false);
  39. Assert.Equal(HttpStatusCode.NotFound, response.StatusCode);
  40. }
  41. }