< Summary

Information
Class: MRA.Infrastructure.Database.Documents.MongoDb.DocumentTypeRegistry
Assembly: MRA.Infrastructure
File(s): D:\a\MiguelRomerART\MiguelRomerART\MRA.Infrastructure\Database\Documents\MongoDb\DocumentTypeRegistry.cs
Line coverage
72%
Covered lines: 8
Uncovered lines: 3
Coverable lines: 11
Total lines: 32
Line coverage: 72.7%
Branch coverage
0%
Covered branches: 0
Total branches: 2
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
RegisterDocumentType(...)100%11100%
GetDocumentType(...)0%620%

File(s)

D:\a\MiguelRomerART\MiguelRomerART\MRA.Infrastructure\Database\Documents\MongoDb\DocumentTypeRegistry.cs

#LineLine coverage
 1using Google.Protobuf.Reflection;
 2using MRA.Infrastructure.Settings;
 3using MRA.Infrastructure.Database.Documents.Interfaces;
 4
 5namespace MRA.Infrastructure.Database.Documents.MongoDb;
 6
 7public class DocumentTypeRegistry
 8{
 19    private readonly Dictionary<string, Type> _collectionTypeMapping = new Dictionary<string, Type>();
 10
 111    public DocumentTypeRegistry(AppSettings appConfig)
 12    {
 113        RegisterDocumentType<InspirationMongoDocument>(appConfig.Database.Collections.Inspirations);
 114        RegisterDocumentType<DrawingMongoDocument>(appConfig.Database.Collections.Drawings);
 115        RegisterDocumentType<CollectionMongoDocument>(appConfig.Database.Collections.Collections);
 116    }
 17
 18    private void RegisterDocumentType<TDocument>(string collection) where TDocument : IDocument
 19    {
 320        _collectionTypeMapping[collection] = typeof(TDocument);
 321    }
 22
 23    public Type GetDocumentType(string collection)
 24    {
 025        if (_collectionTypeMapping.TryGetValue(collection, out var type))
 26        {
 027            return type;
 28        }
 29
 030        throw new InvalidOperationException($"No document type registered for collection '{collection}'.");
 31    }
 32}