using FluentAssertions; using SIGCM2.Domain.Exceptions; namespace SIGCM2.Application.Tests.Domain.Rubros; public class RubroReglaDeOroExceptionsTests { // ── RubroPadreEsHojaConAvisosException ────────────────────────────────── [Fact] public void RubroPadreEsHojaConAvisosException_Constructor_SetsMessage() { var ex = new RubroPadreEsHojaConAvisosException(parentId: 42, cantidadAvisos: 3); ex.Message.Should().Be("El rubro padre contiene 3 avisos. Muévalos antes de crear sub-rubros."); } [Fact] public void RubroPadreEsHojaConAvisosException_Constructor_SetsParentId_Y_CantidadAvisos() { var ex = new RubroPadreEsHojaConAvisosException(parentId: 42, cantidadAvisos: 3); ex.ParentId.Should().Be(42); ex.CantidadAvisos.Should().Be(3); } [Fact] public void RubroPadreEsHojaConAvisosException_IsA_DomainException() { var ex = new RubroPadreEsHojaConAvisosException(parentId: 1, cantidadAvisos: 1); ex.Should().BeAssignableTo(); } // ── RubroEsRamaConHijosActivosException ───────────────────────────────── [Fact] public void RubroEsRamaConHijosActivosException_Constructor_SetsMessage() { var ex = new RubroEsRamaConHijosActivosException(rubroId: 7, cantidadHijos: 2); ex.Message.Should().Be("El destino tiene sub-rubros. No puede contener avisos directos."); } [Fact] public void RubroEsRamaConHijosActivosException_Constructor_SetsRubroId_Y_CantidadHijos() { var ex = new RubroEsRamaConHijosActivosException(rubroId: 7, cantidadHijos: 2); ex.RubroId.Should().Be(7); ex.CantidadHijos.Should().Be(2); } [Fact] public void RubroEsRamaConHijosActivosException_IsA_DomainException() { var ex = new RubroEsRamaConHijosActivosException(rubroId: 1, cantidadHijos: 1); ex.Should().BeAssignableTo(); } }