< Summary - Combined Code Coverage

Information
Class: NLightning.Infrastructure.Repositories.Database.Bitcoin.BlockchainStateDbRepository
Assembly: NLightning.Infrastructure.Repositories
File(s): /home/runner/work/nlightning/nlightning/src/NLightning.Infrastructure.Repositories/Database/Bitcoin/BlockchainStateDbRepository.cs
Tag: 36_15743069263
Line coverage
0%
Covered lines: 0
Uncovered lines: 28
Coverable lines: 28
Total lines: 49
Line coverage: 0%
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%210%
Add(...)100%210%
Add(...)100%210%
Update(...)100%210%
Update(...)100%210%
GetStateAsync()0%620%
GetStateAsync()0%620%
MapDomainToEntity(...)100%210%
MapDomainToEntity(...)100%210%
MapEntityToDomain(...)100%210%
MapEntityToDomain(...)100%210%

File(s)

/home/runner/work/nlightning/nlightning/src/NLightning.Infrastructure.Repositories/Database/Bitcoin/BlockchainStateDbRepository.cs

#LineLine coverage
 1using Microsoft.EntityFrameworkCore;
 2
 3namespace NLightning.Infrastructure.Repositories.Database.Bitcoin;
 4
 5using Domain.Bitcoin.Interfaces;
 6using Domain.Bitcoin.ValueObjects;
 7using Persistence.Contexts;
 8using Persistence.Entities.Bitcoin;
 9
 10public class BlockchainStateDbRepository(NLightningDbContext context)
 011    : BaseDbRepository<BlockchainStateEntity>(context), IBlockchainStateDbRepository
 12{
 13    public void Add(BlockchainState blockchainState)
 014    {
 015        var entity = MapDomainToEntity(blockchainState);
 016        Insert(entity);
 017    }
 18
 19    public void Update(BlockchainState blockchainState)
 020    {
 021        var entity = MapDomainToEntity(blockchainState);
 022        Update(entity);
 023    }
 24
 25    public async Task<BlockchainState?> GetStateAsync()
 026    {
 027        var entity = await DbSet.AsNoTracking().FirstOrDefaultAsync();
 028        return entity is null ? null : MapEntityToDomain(entity);
 029    }
 30
 31    private static BlockchainStateEntity MapDomainToEntity(BlockchainState blockchainState)
 032    {
 033        return new BlockchainStateEntity
 034        {
 035            Id = blockchainState.Id,
 036            LastProcessedHeight = blockchainState.LastProcessedHeight,
 037            LastProcessedBlockHash = blockchainState.LastProcessedBlockHash,
 038            LastProcessedAt = blockchainState.LastProcessedAt
 039        };
 040    }
 41
 42    private static BlockchainState MapEntityToDomain(BlockchainStateEntity entity)
 043    {
 044        return new BlockchainState(entity.LastProcessedHeight, entity.LastProcessedBlockHash, entity.LastProcessedAt)
 045        {
 046            Id = entity.Id
 047        };
 048    }
 49}