using System.Text.Json; using backend.Tools; using FluentAssertions; using Xunit; namespace backend.tests; public class GetCurrentTimeToolTests { [Fact] public async Task Returns_now_field_with_iso_utc_timestamp() { var tool = new GetCurrentTimeTool(); var args = JsonDocument.Parse("{}").RootElement; var ctx = new DeviceContext(Guid.NewGuid(), Guid.NewGuid(), new NoopChannel()); var res = await tool.ExecuteAsync(new ToolInvocation("call_1", args), ctx, default); res.Output.TryGetProperty("now", out var now).Should().BeTrue(); now.GetString().Should().MatchRegex(@"^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}"); now.GetString()!.Should().EndWith("Z"); } private class NoopChannel : IDeviceChannel { public Task CallPiToolAsync(string name, JsonElement args, CancellationToken ct) => throw new NotSupportedException(); } }