58 lines
1.6 KiB
C#
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);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|