Files
SIG-CM2.0/tests/SIGCM2.Application.Tests/Domain/SecuenciaComprobanteTests.cs

58 lines
1.6 KiB
C#

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<TipoComprobante>())
{
var seq = Make(tipo: tipo);
Assert.Equal(tipo, seq.TipoComprobante);
}
}
}