Implement TimeProvider injection for deterministic timestamps across various services and modules
This commit is contained in:
@@ -20,6 +20,7 @@ public sealed class Spdx3Parser : ISpdx3Parser
|
||||
{
|
||||
private readonly ISpdx3ContextResolver _contextResolver;
|
||||
private readonly ILogger<Spdx3Parser> _logger;
|
||||
private readonly TimeProvider _timeProvider;
|
||||
|
||||
private static readonly JsonSerializerOptions JsonOptions = new()
|
||||
{
|
||||
@@ -34,10 +35,12 @@ public sealed class Spdx3Parser : ISpdx3Parser
|
||||
/// </summary>
|
||||
public Spdx3Parser(
|
||||
ISpdx3ContextResolver contextResolver,
|
||||
ILogger<Spdx3Parser> logger)
|
||||
ILogger<Spdx3Parser> logger,
|
||||
TimeProvider? timeProvider = null)
|
||||
{
|
||||
_contextResolver = contextResolver;
|
||||
_logger = logger;
|
||||
_timeProvider = timeProvider ?? TimeProvider.System;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
@@ -697,7 +700,7 @@ public sealed class Spdx3Parser : ISpdx3Parser
|
||||
var createdStr = GetStringProperty(ciElement, "created");
|
||||
if (!DateTimeOffset.TryParse(createdStr, out var created))
|
||||
{
|
||||
created = DateTimeOffset.UtcNow;
|
||||
created = _timeProvider.GetUtcNow();
|
||||
}
|
||||
|
||||
var profileStrings = GetStringArrayProperty(ciElement, "profile");
|
||||
|
||||
Reference in New Issue
Block a user