< Summary - ZhEaIsNsAaBn.Libraries coverage (affected: 23 packages)

Information
Class: ZhEaIsNsAaBn.DbSeeder.Design.DesignTypeRegistrar
Assembly: ZhEaIsNsAaBn.DbSeeder.Design
File(s): /home/runner/work/ZhEaIsNsAaBn.Libraries.V1/ZhEaIsNsAaBn.Libraries.V1/src/DataBasePackages/ZhEaIsNsAaBn.DbSeeder.Design/Commands/DesignTypeRegistrar.cs
Line coverage
100%
Covered lines: 9
Uncovered lines: 0
Coverable lines: 9
Total lines: 33
Line coverage: 100%
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%
Build()100%11100%
Register(...)100%11100%
RegisterInstance(...)100%11100%
RegisterLazy(...)100%11100%
.ctor(...)100%11100%
Resolve(...)50%22100%
Dispose()100%11100%

File(s)

/home/runner/work/ZhEaIsNsAaBn.Libraries.V1/ZhEaIsNsAaBn.Libraries.V1/src/DataBasePackages/ZhEaIsNsAaBn.DbSeeder.Design/Commands/DesignTypeRegistrar.cs

#LineLine coverage
 1namespace ZhEaIsNsAaBn.DbSeeder.Design;
 2
 3/// Spectre's command DI over Microsoft.Extensions.DependencyInjection, so commands get the <see cref="DesignSession"/>.
 4internal sealed class DesignTypeRegistrar : ITypeRegistrar
 5{
 4116    private readonly ServiceCollection _services = new();
 7
 8
 8229    public DesignTypeRegistrar( DesignSession session ) => _services.AddSingleton( session );
 10
 11
 41112    public ITypeResolver Build() => new Resolver( _services.BuildServiceProvider() );
 13
 1356314    public void Register( Type service, Type implementation ) => _services.AddSingleton( service, implementation );
 15
 164416    public void RegisterInstance( Type service, object implementation ) => _services.AddSingleton( service, implementati
 17
 41118    public void RegisterLazy( Type service, Func<object> factory ) => _services.AddSingleton( service, _ => factory() );
 19
 20
 21    private sealed class Resolver : ITypeResolver, IDisposable
 22    {
 23        private readonly ServiceProvider _provider;
 24
 25
 82226        public Resolver( ServiceProvider provider ) => _provider = provider;
 27
 28
 164429        public object? Resolve( Type? type ) => type is null ? null : _provider.GetService( type );
 30
 41131        public void Dispose() => _provider.Dispose();
 32    }
 33}