< Summary

Information
Class: Fluorite.Strainer.Services.Configuration.ModuleLoadingStrategySelector
Assembly: Fluorite.Strainer
File(s): /builds/fluorite/strainer/src/Strainer/Services/Configuration/ModuleLoadingStrategySelector.cs
Line coverage
100%
Covered lines: 14
Uncovered lines: 0
Coverable lines: 14
Total lines: 31
Line coverage: 100%
Branch coverage
100%
Covered branches: 4
Total branches: 4
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
Select(...)100%44100%

File(s)

/builds/fluorite/strainer/src/Strainer/Services/Configuration/ModuleLoadingStrategySelector.cs

#LineLine coverage
 1using Fluorite.Strainer.Services.Modules;
 2
 3namespace Fluorite.Strainer.Services.Configuration;
 4
 5public class ModuleLoadingStrategySelector : IModuleLoadingStrategySelector
 6{
 7    private readonly IGenericModuleLoadingStrategy _genericModuleLoadingStrategy;
 8    private readonly IPlainModuleLoadingStrategy _plainModuleLoadingStrategy;
 9
 1010    public ModuleLoadingStrategySelector(
 1011        IGenericModuleLoadingStrategy genericModuleLoadingStrategy,
 1012        IPlainModuleLoadingStrategy plainModuleLoadingStrategy)
 13    {
 1014        _genericModuleLoadingStrategy = Guard.Against.Null(genericModuleLoadingStrategy);
 1015        _plainModuleLoadingStrategy = Guard.Against.Null(plainModuleLoadingStrategy);
 1016    }
 17
 18    public IModuleLoadingStrategy Select(IStrainerModule strainerModule)
 19    {
 620        Guard.Against.Null(strainerModule);
 21
 622        var isGeneric = strainerModule
 623            .GetType()
 624            .GetInterfaces()
 1225            .Any(i => i.IsGenericType && i.GetGenericTypeDefinition() == typeof(IStrainerModule<>));
 26
 627        return isGeneric
 628            ? _genericModuleLoadingStrategy
 629            : _plainModuleLoadingStrategy;
 30    }
 31}