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(); } }