Add tests for GetDynamicAsync method in RecActionApiTests

Added a `using` directive for `System.Text.Json` to support JSON
operations. Introduced two new test methods:
`GetDynamicAsync_without_filters_returns_dynamic_payload_or_throws_not_found`
to validate the behavior of `GetDynamicAsync` without filters, and
`GetDynamicAsync_with_unknown_profile_throws_not_found` to ensure
proper handling of unknown profile IDs.
This commit is contained in:
2026-05-20 11:41:43 +02:00
parent bbc3524dd9
commit 340349a2d5

View File

@@ -1,4 +1,5 @@
using System.Net;
using System.Text.Json;
using Microsoft.Extensions.Configuration;
using ReC.Application.Common.Dto;
using ReC.Application.Common.Procedures.UpdateProcedure.Dto;
@@ -41,6 +42,27 @@ public class RecActionApiTests : RecClientTestBase
}
}
[Test]
public async Task GetDynamicAsync_without_filters_returns_dynamic_payload_or_throws_not_found()
{
var (client, scope) = CreateScopedClient();
using var _ = scope;
try
{
dynamic? actions = await client.RecActions.GetDynamicAsync();
Assert.That(actions, Is.Not.Null);
Assert.That(actions, Is.TypeOf<JsonElement>());
Assert.That(((JsonElement)actions).ValueKind, Is.EqualTo(JsonValueKind.Array));
}
catch (ReCApiException ex)
{
Assert.That(ex.StatusCode, Is.EqualTo(HttpStatusCode.NotFound));
Assert.That(ex.Method, Is.EqualTo("GET"));
Assert.That(ex.RequestUri!.AbsolutePath, Does.EndWith("api/RecAction"));
}
}
[Test]
public async Task GetAsync_with_profile_filter_returns_only_matching_actions()
{
@@ -81,6 +103,21 @@ public class RecActionApiTests : RecClientTestBase
Assert.That(ex.RequestUri!.Query, Does.Contain("ProfileId="));
}
[Test]
public void GetDynamicAsync_with_unknown_profile_throws_not_found()
{
var (client, scope) = CreateScopedClient();
using var _ = scope;
var ex = Assert.ThrowsAsync<ReCApiException>(async () =>
await client.RecActions.GetDynamicAsync(profileId: long.MaxValue));
Assert.That(ex, Is.Not.Null);
Assert.That(ex!.StatusCode, Is.EqualTo(HttpStatusCode.NotFound));
Assert.That(ex.Method, Is.EqualTo("GET"));
Assert.That(ex.RequestUri!.Query, Does.Contain("ProfileId="));
}
[Test]
public void CreateAsync_with_invalid_foreign_key_throws_ReCApiException()
{