From 4cb3eed21f80a839749e4191e7eba268c76fd143 Mon Sep 17 00:00:00 2001 From: dmolinari Date: Fri, 17 Apr 2026 17:52:12 -0300 Subject: [PATCH] test(adm-009): domain exceptions tests (Red) --- .../Domain/Fiscal/FiscalExceptionsTests.cs | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 tests/SIGCM2.Application.Tests/Domain/Fiscal/FiscalExceptionsTests.cs diff --git a/tests/SIGCM2.Application.Tests/Domain/Fiscal/FiscalExceptionsTests.cs b/tests/SIGCM2.Application.Tests/Domain/Fiscal/FiscalExceptionsTests.cs new file mode 100644 index 0000000..b8a5069 --- /dev/null +++ b/tests/SIGCM2.Application.Tests/Domain/Fiscal/FiscalExceptionsTests.cs @@ -0,0 +1,99 @@ +using FluentAssertions; +using SIGCM2.Domain.Exceptions; +using SIGCM2.Domain.Fiscal; + +namespace SIGCM2.Application.Tests.Domain.Fiscal; + +public class FiscalExceptionsTests +{ + // ── T200.30: cada excepción instancia correctamente con mensaje ─────────── + + [Fact] + public void PorcentajeInmutableException_HasExpectedMessage() + { + var ex = new PorcentajeInmutableException(); + + ex.Message.Should().Contain("inmutable"); + ex.Message.Should().Contain("nueva versión"); + ex.Message.Should().Contain("/iva/"); + } + + [Fact] + public void AlicuotaInmutableException_HasExpectedMessage() + { + var ex = new AlicuotaInmutableException(); + + ex.Message.Should().Contain("inmutable"); + ex.Message.Should().Contain("nueva versión"); + ex.Message.Should().Contain("/iibb/"); + } + + [Fact] + public void PredecesorYaCerradoException_ContainsId() + { + var ex = new PredecesorYaCerradoException(42); + + ex.PredecesorId.Should().Be(42); + ex.Message.Should().Contain("42"); + } + + [Fact] + public void DuplicateCodigoException_ContainsCodigo() + { + var ex = new DuplicateCodigoException("IVA_21"); + + ex.Codigo.Should().Be("IVA_21"); + ex.Message.Should().Contain("IVA_21"); + } + + [Fact] + public void DuplicateProvinciaException_ContainsProvincia() + { + var ex = new DuplicateProvinciaException(ProvinciaArgentina.Cordoba); + + ex.Provincia.Should().Be(ProvinciaArgentina.Cordoba); + ex.Message.Should().Contain("Cordoba"); + } + + // ── Todas heredan de DomainException ───────────────────────────────────── + + [Fact] + public void PorcentajeInmutableException_InheritsFromDomainException() + { + var ex = new PorcentajeInmutableException(); + + ex.Should().BeAssignableTo(); + } + + [Fact] + public void AlicuotaInmutableException_InheritsFromDomainException() + { + var ex = new AlicuotaInmutableException(); + + ex.Should().BeAssignableTo(); + } + + [Fact] + public void PredecesorYaCerradoException_InheritsFromDomainException() + { + var ex = new PredecesorYaCerradoException(1); + + ex.Should().BeAssignableTo(); + } + + [Fact] + public void DuplicateCodigoException_InheritsFromDomainException() + { + var ex = new DuplicateCodigoException("X"); + + ex.Should().BeAssignableTo(); + } + + [Fact] + public void DuplicateProvinciaException_InheritsFromDomainException() + { + var ex = new DuplicateProvinciaException(ProvinciaArgentina.Salta); + + ex.Should().BeAssignableTo(); + } +}