< Summary

Information
Class: Elsa.Workflows.Management.Stores.MemoryWorkflowDefinitionRegistryGenerationStore
Assembly: Elsa.Workflows.Management
File(s): /home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Workflows.Management/Stores/MemoryWorkflowDefinitionRegistryGenerationStore.cs
Line coverage
83%
Covered lines: 5
Uncovered lines: 1
Coverable lines: 6
Total lines: 32
Line coverage: 83.3%
Branch coverage
50%
Covered branches: 1
Total branches: 2
Branch coverage: 50%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor()100%11100%
get_IsShared()100%210%
IncrementAsync(...)100%11100%
GetGenerationAsync(...)100%11100%
NormalizeTenantId(...)50%22100%

File(s)

/home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Workflows.Management/Stores/MemoryWorkflowDefinitionRegistryGenerationStore.cs

#LineLine coverage
 1using System.Collections.Concurrent;
 2using Elsa.Common.Multitenancy;
 3using Elsa.Workflows.Management.Contracts;
 4
 5namespace Elsa.Workflows.Management.Stores;
 6
 7/// <summary>
 8/// An in-memory registry generation store for single-node use and tests.
 9/// </summary>
 10public class MemoryWorkflowDefinitionRegistryGenerationStore : IWorkflowDefinitionRegistryGenerationStore
 11{
 412    private readonly ConcurrentDictionary<string, long> _generations = new();
 13
 14    /// <inheritdoc />
 015    public bool IsShared => false;
 16
 17    /// <inheritdoc />
 18    public Task<long> IncrementAsync(string? tenantId, CancellationToken cancellationToken = default)
 19    {
 1820        var generation = _generations.AddOrUpdate(NormalizeTenantId(tenantId), 1, (_, current) => current + 1);
 1321        return Task.FromResult(generation);
 22    }
 23
 24    /// <inheritdoc />
 25    public Task<long> GetGenerationAsync(string? tenantId, CancellationToken cancellationToken = default)
 26    {
 1127        return Task.FromResult(_generations.GetValueOrDefault(NormalizeTenantId(tenantId)));
 28    }
 29
 30    /// <inheritdoc />
 2431    private static string NormalizeTenantId(string? tenantId) => tenantId ?? Tenant.DefaultTenantId;
 32}