TermRemoteCtl/apps/windows_agent/tests/TermRemoteCtl.Agent.Tests/Security/PairingServiceTests.cs

30 lines
982 B
C#

using TermRemoteCtl.Agent.Security;
namespace TermRemoteCtl.Agent.Tests.Security;
public class PairingServiceTests
{
[Fact]
public void Redeem_Returns_Expired_And_Clears_Current_Code_When_Code_Has_Expired()
{
var clock = new FakeClock(new DateTimeOffset(2026, 03, 27, 02, 00, 00, TimeSpan.Zero));
var service = new PairingService(clock);
var code = service.CreateCode(TimeSpan.FromMinutes(5));
clock.UtcNow = code.ExpiresAtUtc.AddSeconds(1);
var expiredResult = service.Redeem(code.Value, "Pixel 9");
var missingResult = service.Redeem(code.Value, "Pixel 9");
Assert.False(expiredResult.Success);
Assert.Equal("expired", expiredResult.ErrorCode);
Assert.False(missingResult.Success);
Assert.Equal("not_found", missingResult.ErrorCode);
}
private sealed class FakeClock(DateTimeOffset utcNow) : IClock
{
public DateTimeOffset UtcNow { get; set; } = utcNow;
}
}