Files
git.stella-ops.org/src/__Libraries/StellaOps.HybridLogicalClock.Tests/HybridLogicalClockTests.ReceiveSkew.cs

28 lines
834 B
C#

// <copyright file="HybridLogicalClockTests.ReceiveSkew.cs" company="StellaOps">
// Copyright (c) StellaOps. Licensed under BUSL-1.1.
// </copyright>
using FluentAssertions;
using System;
using Xunit;
namespace StellaOps.HybridLogicalClock.Tests;
public sealed partial class HybridLogicalClockTests
{
[Fact]
public void Receive_ClockSkewExceeded_ThrowsException()
{
var timeProvider = CreateTimeProvider(FixedTime);
var maxSkew = TimeSpan.FromMinutes(1);
var clock = CreateClock(timeProvider, maxSkew: maxSkew);
var remote = CreateRemoteTimestamp(FixedTime.AddMinutes(2), 0);
var act = () => clock.Receive(remote);
act.Should().Throw<HlcClockSkewException>()
.Where(e => e.MaxAllowedSkew == maxSkew)
.Where(e => e.ActualSkew > maxSkew);
}
}