< Summary

Information
Class: FAU.Logica.Services.InsumoValidators.BeneficiosSocialesValidator
Assembly: FAU.Logica
File(s): /home/runner/work/Sistema.Liquidacion.BE/Sistema.Liquidacion.BE/FAU.Logica/Services/InsumoValidators/BeneficiosSocialesValidator.cs
Line coverage
100%
Covered lines: 18
Uncovered lines: 0
Coverable lines: 18
Total lines: 37
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
.ctor(...)100%11100%
ValidarAsync()100%22100%

File(s)

/home/runner/work/Sistema.Liquidacion.BE/Sistema.Liquidacion.BE/FAU.Logica/Services/InsumoValidators/BeneficiosSocialesValidator.cs

#LineLine coverage
 1using FAU.DataAccess;
 2using FAU.Entidades;
 3using FAU.Logica.DTOs;
 4using Microsoft.EntityFrameworkCore;
 5
 6namespace FAU.Logica.Services.InsumoValidators;
 7
 8public class BeneficiosSocialesValidator : InsumoValidatorBase
 9{
 10    private readonly ApplicationDbContext _context;
 11
 3112    public BeneficiosSocialesValidator(ApplicationDbContext context)
 13    {
 3114        _context = context;
 3115    }
 16
 17    public override async Task<List<ItemInsumoDto>> ValidarAsync(Periodo periodo)
 18    {
 1219        var fechaInicio = new DateTime(periodo.Anio, periodo.Mes, 1, 0, 0, 0, DateTimeKind.Utc);
 1220        var fechaFin = fechaInicio.AddMonths(1).AddTicks(-1);
 21
 1222        var tieneBeneficios = await _context.BeneficiosSociales
 1223            .AsNoTracking()
 1224            .AnyAsync(b =>
 1225                b.Estado == "activo" &&
 1226                b.VigenteDesde <= fechaFin &&
 1227                (b.VigenteHasta == null || b.VigenteHasta >= fechaInicio));
 28
 1229        if (!tieneBeneficios)
 330            return [Confirmable(
 331                clave: "SinBeneficios",
 332                tipo: "beneficios_faltantes",
 333                descripcion: "No hay beneficios sociales activos vigentes para el período")];
 34
 935        return [];
 1236    }
 37}