< Summary

Information
Class: Elsa.Persistence.VNext.Physicalization.PhysicalizationPolicyValidator
Assembly: Elsa.Persistence.VNext
File(s): /home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Persistence.VNext/Physicalization/PhysicalizationPolicyValidator.cs
Line coverage
88%
Covered lines: 8
Uncovered lines: 1
Coverable lines: 9
Total lines: 26
Line coverage: 88.8%
Branch coverage
87%
Covered branches: 7
Total branches: 8
Branch coverage: 87.5%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
GetStorageUnit(...)87.5%8888.88%

File(s)

/home/runner/work/elsa-core/elsa-core/src/modules/Elsa.Persistence.VNext/Physicalization/PhysicalizationPolicyValidator.cs

#LineLine coverage
 1using Elsa.Persistence.VNext;
 2
 3namespace Elsa.Persistence.VNext.Physicalization;
 4
 5public static class PhysicalizationPolicyValidator
 6{
 7    public static PersistenceStorageUnit GetStorageUnit(PersistenceSchema schema, StoragePhysicalizationPolicy policy)
 8    {
 69        var storageUnit = schema.StorageUnits.SingleOrDefault(x => x.Name == policy.StorageUnit);
 10
 311        if (storageUnit == null)
 012            throw new InvalidOperationException($"Storage unit '{policy.StorageUnit}' was not declared by schema '{schem
 13
 1214        var fields = storageUnit.Fields.Select(x => x.Name).ToHashSet(StringComparer.Ordinal);
 15
 1516        foreach (var index in policy.Indexes)
 17        {
 1018            var missingField = index.Fields.FirstOrDefault(field => !fields.Contains(field));
 19
 520            if (missingField != null)
 121                throw new InvalidOperationException($"Physicalized index '{index.Name}' references undeclared field '{mi
 22        }
 23
 224        return storageUnit;
 25    }
 26}