< Summary

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

Feature is only available for sponsors

Upgrade to PRO version

Metrics

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

File(s)

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

#LineLine coverage
 1using Fluorite.Strainer.Exceptions;
 2using Fluorite.Strainer.Services.Metadata;
 3using Fluorite.Strainer.Services.Modules;
 4
 5namespace Fluorite.Strainer.Services.Configuration;
 6
 7public class StrainerModuleBuilderFactory : IStrainerModuleBuilderFactory
 8{
 9    private readonly IPropertyInfoProvider _propertyInfoProvider;
 10    private readonly IStrainerOptionsProvider _strainerOptionsProvider;
 11
 1212    public StrainerModuleBuilderFactory(
 1213        IPropertyInfoProvider propertyInfoProvider,
 1214        IStrainerOptionsProvider strainerOptionsProvider)
 15    {
 1216        _propertyInfoProvider = Guard.Against.Null(propertyInfoProvider);
 1217        _strainerOptionsProvider = Guard.Against.Null(strainerOptionsProvider);
 1218    }
 19
 20    public object Create(Type moduleTypeParameter, IStrainerModule strainerModule)
 21    {
 322        Guard.Against.Null(moduleTypeParameter);
 323        Guard.Against.Null(strainerModule);
 24
 325        var options = _strainerOptionsProvider.GetStrainerOptions();
 326        var builderType = typeof(StrainerModuleBuilder<>).MakeGenericType(moduleTypeParameter);
 27
 28        try
 29        {
 330            return Activator.CreateInstance(builderType, _propertyInfoProvider, strainerModule, options);
 31        }
 132        catch (Exception ex)
 33        {
 134            throw new StrainerException($"Unable to create a module builder for module of type {strainerModule.GetType()
 35        }
 236    }
 37}