using SIGCM2.Domain.Entities; using SIGCM2.Domain.Enums; namespace SIGCM2.Application.Tests.Domain; public class SecuenciaComprobanteTests { private static SecuenciaComprobante Make( int puntoDeVentaId = 1, TipoComprobante tipo = TipoComprobante.FacturaA, int ultimoNumero = 0) => new(puntoDeVentaId, tipo, ultimoNumero, DateTime.UtcNow, null); [Fact] public void Constructor_SetsAllProperties() { var now = DateTime.UtcNow; var seq = new SecuenciaComprobante( puntoDeVentaId: 3, tipoComprobante: TipoComprobante.FacturaB, ultimoNumero: 42, fechaCreacion: now, fechaModificacion: null); Assert.Equal(3, seq.PuntoDeVentaId); Assert.Equal(TipoComprobante.FacturaB, seq.TipoComprobante); Assert.Equal(42, seq.UltimoNumero); Assert.Equal(now, seq.FechaCreacion); Assert.Null(seq.FechaModificacion); } [Fact] public void ProximoNumero_WhenUltimoNumeroZero_ReturnsOne() { var seq = Make(ultimoNumero: 0); Assert.Equal(1, seq.ProximoNumero); } [Fact] public void ProximoNumero_WhenUltimoNumeroN_ReturnsNPlusOne() { var seq = Make(ultimoNumero: 7); Assert.Equal(8, seq.ProximoNumero); } [Fact] public void AllTipoComprobanteValues_CanBeUsedInConstructor() { foreach (TipoComprobante tipo in Enum.GetValues()) { var seq = Make(tipo: tipo); Assert.Equal(tipo, seq.TipoComprobante); } } }