< Summary

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

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
CreateModule(...)100%22100%

File(s)

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

#LineLine coverage
 1using Fluorite.Strainer.Services.Modules;
 2
 3namespace Fluorite.Strainer.Services.Configuration;
 4
 5public class StrainerModuleFactory : IStrainerModuleFactory
 6{
 7    public IStrainerModule CreateModule(Type moduleType)
 8    {
 109        Guard.Against.Null(moduleType);
 10
 911        if (!typeof(IStrainerModule).IsAssignableFrom(moduleType))
 12        {
 113            throw new ArgumentException(
 114                $"Provider module type {moduleType.FullName} is not implementing {nameof(IStrainerModule)}.",
 115                nameof(moduleType));
 16        }
 17
 18        try
 19        {
 820            return (IStrainerModule)Activator.CreateInstance(moduleType);
 21        }
 122        catch (Exception exception)
 23        {
 124            throw new InvalidOperationException(
 125                $"Unable to create instance of {moduleType.FullName}. " +
 126                $"Ensure that type provides parameterless constructor.",
 127                exception);
 28        }
 729    }
 30}

Methods/Properties

CreateModule(System.Type)