@@ -127,15 +127,18 @@ public class NextId
|
||||
public void DefaultInstance_NextId_ShouldUseDefaultEpoch()
|
||||
{
|
||||
// Arrange
|
||||
var now = DateTime.UtcNow;
|
||||
var defaultEpoch = SeqId.DefaultEpoch;
|
||||
long expectedTimestamp = ((long)(now - defaultEpoch).TotalMilliseconds) & TimestampMask; // Mask handles overflow
|
||||
var now = new DateTime(2026, 6, 3, 21, 11, 1, DateTimeKind.Utc);
|
||||
SeqId.Default.UnsafeReplaceDefaultTimeFactory(() => now);
|
||||
|
||||
// Act
|
||||
long id = SeqId.NextId();
|
||||
|
||||
// Assert
|
||||
long expectedTimestamp = GetExpectedTimestamp(now);
|
||||
|
||||
long timestampPart = (id >> TimestampShift) & TimestampMask;
|
||||
timestampPart.ShouldBeInRange(expectedTimestamp, expectedTimestamp + 1);
|
||||
|
||||
static long GetExpectedTimestamp(DateTime now) => ((long)(now - SeqId.DefaultEpoch).TotalMilliseconds) & TimestampMask; // Mask handles overflow
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user