test(udt-011): T400.40 — update tests for TimeProvider injection and explicit now params
Fix all test compilation errors caused by T400.10/T400.20/T400.30: - Handler constructors: add TimeProvider.System as last argument - Domain mutator calls: add DateTime.UtcNow as explicit 'now' argument - AuditLogger/SecurityEventLogger Build() helpers: add TimeProvider.System - JwtService test constructors: add TimeProvider.System Cat2 coverage already present in TimeProviderArgentinaExtensionsTests.cs: FakeTimeProvider proves GetArgentinaToday() returns ART civil date, not UTC.
This commit is contained in:
@@ -95,7 +95,7 @@ public class IngresosBrutosTests
|
||||
{
|
||||
var original = MakeIIBB(descripcion: "Original");
|
||||
|
||||
var updated = original.WithDescripcion("Actualizado");
|
||||
var updated = original.WithDescripcion("Actualizado", DateTime.UtcNow);
|
||||
|
||||
updated.Should().NotBeSameAs(original);
|
||||
updated.Descripcion.Should().Be("Actualizado");
|
||||
@@ -107,7 +107,7 @@ public class IngresosBrutosTests
|
||||
{
|
||||
var original = MakeIIBB(activo: true);
|
||||
|
||||
var deactivated = original.Deactivate();
|
||||
var deactivated = original.Deactivate(DateTime.UtcNow);
|
||||
|
||||
deactivated.Activo.Should().BeFalse();
|
||||
deactivated.Alicuota.Should().Be(original.Alicuota);
|
||||
@@ -119,7 +119,7 @@ public class IngresosBrutosTests
|
||||
{
|
||||
var original = MakeIIBB(activo: false);
|
||||
|
||||
var reactivated = original.Reactivate();
|
||||
var reactivated = original.Reactivate(DateTime.UtcNow);
|
||||
|
||||
reactivated.Activo.Should().BeTrue();
|
||||
}
|
||||
@@ -130,7 +130,7 @@ public class IngresosBrutosTests
|
||||
var original = MakeIIBB(vigenciaHasta: null);
|
||||
var hasta = new DateOnly(2026, 5, 31);
|
||||
|
||||
var cerrado = original.CerrarVigencia(hasta);
|
||||
var cerrado = original.CerrarVigencia(hasta, DateTime.UtcNow);
|
||||
|
||||
cerrado.VigenciaHasta.Should().Be(hasta);
|
||||
cerrado.Alicuota.Should().Be(original.Alicuota);
|
||||
@@ -143,7 +143,7 @@ public class IngresosBrutosTests
|
||||
{
|
||||
var predecesora = MakeIIBB(id: 5, alicuota: 2.5m, vigenciaDesde: Desde2020, vigenciaHasta: null);
|
||||
|
||||
var (cerrada, nueva) = predecesora.NuevaVersion(3.0m, Desde2026);
|
||||
var (cerrada, nueva) = predecesora.NuevaVersion(3.0m, Desde2026, DateTime.UtcNow);
|
||||
|
||||
cerrada.Id.Should().Be(5);
|
||||
cerrada.VigenciaHasta.Should().Be(Desde2026.AddDays(-1));
|
||||
@@ -166,7 +166,7 @@ public class IngresosBrutosTests
|
||||
vigenciaDesde: Desde2020,
|
||||
vigenciaHasta: new DateOnly(2025, 12, 31));
|
||||
|
||||
var act = () => predecesora.NuevaVersion(4.0m, Desde2026);
|
||||
var act = () => predecesora.NuevaVersion(4.0m, Desde2026, DateTime.UtcNow);
|
||||
|
||||
act.Should().Throw<InvalidOperationException>();
|
||||
}
|
||||
@@ -176,7 +176,7 @@ public class IngresosBrutosTests
|
||||
{
|
||||
var predecesora = MakeIIBB(vigenciaDesde: Desde2020, vigenciaHasta: null);
|
||||
|
||||
var act = () => predecesora.NuevaVersion(4.0m, Desde2020);
|
||||
var act = () => predecesora.NuevaVersion(4.0m, Desde2020, DateTime.UtcNow);
|
||||
|
||||
act.Should().Throw<ArgumentException>()
|
||||
.WithParameterName("vigenciaDesde");
|
||||
@@ -187,7 +187,7 @@ public class IngresosBrutosTests
|
||||
{
|
||||
var predecesora = MakeIIBB(vigenciaDesde: Desde2020, vigenciaHasta: null);
|
||||
|
||||
var act = () => predecesora.NuevaVersion(-1m, Desde2026);
|
||||
var act = () => predecesora.NuevaVersion(-1m, Desde2026, DateTime.UtcNow);
|
||||
|
||||
act.Should().Throw<ArgumentException>()
|
||||
.WithParameterName("nuevaAlicuota");
|
||||
@@ -198,7 +198,7 @@ public class IngresosBrutosTests
|
||||
{
|
||||
var predecesora = MakeIIBB(vigenciaDesde: Desde2020, vigenciaHasta: null);
|
||||
|
||||
var act = () => predecesora.NuevaVersion(101m, Desde2026);
|
||||
var act = () => predecesora.NuevaVersion(101m, Desde2026, DateTime.UtcNow);
|
||||
|
||||
act.Should().Throw<ArgumentException>()
|
||||
.WithParameterName("nuevaAlicuota");
|
||||
|
||||
@@ -150,7 +150,7 @@ public class TipoDeIvaTests
|
||||
{
|
||||
var original = MakeTipoDeIva(descripcion: "Original");
|
||||
|
||||
var updated = original.WithDescripcion("Nueva descripcion");
|
||||
var updated = original.WithDescripcion("Nueva descripcion", DateTime.UtcNow);
|
||||
|
||||
updated.Should().NotBeSameAs(original);
|
||||
updated.Descripcion.Should().Be("Nueva descripcion");
|
||||
@@ -162,7 +162,7 @@ public class TipoDeIvaTests
|
||||
{
|
||||
var original = MakeTipoDeIva(codigo: "IVA_21");
|
||||
|
||||
var updated = original.WithCodigo("NO_GRAVADO");
|
||||
var updated = original.WithCodigo("NO_GRAVADO", DateTime.UtcNow);
|
||||
|
||||
updated.Codigo.Should().Be("NO_GRAVADO");
|
||||
updated.Porcentaje.Should().Be(original.Porcentaje);
|
||||
@@ -174,7 +174,7 @@ public class TipoDeIvaTests
|
||||
{
|
||||
var original = MakeTipoDeIva(aplicaIVA: true);
|
||||
|
||||
var updated = original.WithAplicaIVA(false);
|
||||
var updated = original.WithAplicaIVA(false, DateTime.UtcNow);
|
||||
|
||||
updated.AplicaIVA.Should().BeFalse();
|
||||
updated.Porcentaje.Should().Be(original.Porcentaje);
|
||||
@@ -185,7 +185,7 @@ public class TipoDeIvaTests
|
||||
{
|
||||
var original = MakeTipoDeIva(activo: true);
|
||||
|
||||
var deactivated = original.Deactivate();
|
||||
var deactivated = original.Deactivate(DateTime.UtcNow);
|
||||
|
||||
deactivated.Activo.Should().BeFalse();
|
||||
deactivated.Porcentaje.Should().Be(original.Porcentaje);
|
||||
@@ -197,7 +197,7 @@ public class TipoDeIvaTests
|
||||
{
|
||||
var original = MakeTipoDeIva(activo: false);
|
||||
|
||||
var reactivated = original.Reactivate();
|
||||
var reactivated = original.Reactivate(DateTime.UtcNow);
|
||||
|
||||
reactivated.Activo.Should().BeTrue();
|
||||
}
|
||||
@@ -208,7 +208,7 @@ public class TipoDeIvaTests
|
||||
var original = MakeTipoDeIva(vigenciaHasta: null);
|
||||
var hasta = new DateOnly(2026, 5, 31);
|
||||
|
||||
var cerrado = original.CerrarVigencia(hasta);
|
||||
var cerrado = original.CerrarVigencia(hasta, DateTime.UtcNow);
|
||||
|
||||
cerrado.VigenciaHasta.Should().Be(hasta);
|
||||
cerrado.Porcentaje.Should().Be(original.Porcentaje);
|
||||
@@ -222,7 +222,7 @@ public class TipoDeIvaTests
|
||||
{
|
||||
var predecesora = MakeTipoDeIva(id: 5, porcentaje: 21m, vigenciaDesde: Desde2020, vigenciaHasta: null);
|
||||
|
||||
var (cerrada, nueva) = predecesora.NuevaVersion(23.5m, Desde2026);
|
||||
var (cerrada, nueva) = predecesora.NuevaVersion(23.5m, Desde2026, DateTime.UtcNow);
|
||||
|
||||
cerrada.Id.Should().Be(5);
|
||||
cerrada.VigenciaHasta.Should().Be(Desde2026.AddDays(-1), "predecesora queda cerrada el día anterior");
|
||||
@@ -244,7 +244,7 @@ public class TipoDeIvaTests
|
||||
var predecesora = MakeTipoDeIva(porcentaje: 10.5m, vigenciaDesde: Desde2020);
|
||||
var nuevaVigencia = new DateOnly(2025, 1, 1);
|
||||
|
||||
var (_, nueva) = predecesora.NuevaVersion(21m, nuevaVigencia);
|
||||
var (_, nueva) = predecesora.NuevaVersion(21m, nuevaVigencia, DateTime.UtcNow);
|
||||
|
||||
nueva.Porcentaje.Should().Be(21m);
|
||||
predecesora.Porcentaje.Should().Be(10.5m, "predecesora no muta");
|
||||
@@ -259,7 +259,7 @@ public class TipoDeIvaTests
|
||||
vigenciaDesde: Desde2020,
|
||||
vigenciaHasta: new DateOnly(2025, 12, 31)); // ya cerrada
|
||||
|
||||
var act = () => predecesora.NuevaVersion(23.5m, Desde2026);
|
||||
var act = () => predecesora.NuevaVersion(23.5m, Desde2026, DateTime.UtcNow);
|
||||
|
||||
act.Should().Throw<InvalidOperationException>();
|
||||
}
|
||||
@@ -269,7 +269,7 @@ public class TipoDeIvaTests
|
||||
{
|
||||
var predecesora = MakeTipoDeIva(vigenciaDesde: Desde2020, vigenciaHasta: null);
|
||||
|
||||
var act = () => predecesora.NuevaVersion(23.5m, Desde2020); // igual a VigenciaDesde predecesora
|
||||
var act = () => predecesora.NuevaVersion(23.5m, Desde2020, DateTime.UtcNow); // igual a VigenciaDesde predecesora
|
||||
|
||||
act.Should().Throw<ArgumentException>()
|
||||
.WithParameterName("vigenciaDesde");
|
||||
@@ -281,7 +281,7 @@ public class TipoDeIvaTests
|
||||
var predecesora = MakeTipoDeIva(vigenciaDesde: Desde2026, vigenciaHasta: null);
|
||||
var vigenciaAnterior = new DateOnly(2020, 1, 1);
|
||||
|
||||
var act = () => predecesora.NuevaVersion(23.5m, vigenciaAnterior);
|
||||
var act = () => predecesora.NuevaVersion(23.5m, vigenciaAnterior, DateTime.UtcNow);
|
||||
|
||||
act.Should().Throw<ArgumentException>()
|
||||
.WithParameterName("vigenciaDesde");
|
||||
@@ -292,7 +292,7 @@ public class TipoDeIvaTests
|
||||
{
|
||||
var predecesora = MakeTipoDeIva(vigenciaDesde: Desde2020, vigenciaHasta: null);
|
||||
|
||||
var act = () => predecesora.NuevaVersion(-1m, Desde2026);
|
||||
var act = () => predecesora.NuevaVersion(-1m, Desde2026, DateTime.UtcNow);
|
||||
|
||||
act.Should().Throw<ArgumentException>()
|
||||
.WithParameterName("nuevoPorcentaje");
|
||||
@@ -303,7 +303,7 @@ public class TipoDeIvaTests
|
||||
{
|
||||
var predecesora = MakeTipoDeIva(vigenciaDesde: Desde2020, vigenciaHasta: null);
|
||||
|
||||
var act = () => predecesora.NuevaVersion(101m, Desde2026);
|
||||
var act = () => predecesora.NuevaVersion(101m, Desde2026, DateTime.UtcNow);
|
||||
|
||||
act.Should().Throw<ArgumentException>()
|
||||
.WithParameterName("nuevoPorcentaje");
|
||||
@@ -326,7 +326,7 @@ public class TipoDeIvaTests
|
||||
{
|
||||
var original = MakeTipoDeIva(id: 99, porcentaje: 21m, vigenciaDesde: Desde2020);
|
||||
|
||||
var updated = original.WithDescripcion("Nueva");
|
||||
var updated = original.WithDescripcion("Nueva", DateTime.UtcNow);
|
||||
|
||||
updated.Id.Should().Be(99);
|
||||
updated.Porcentaje.Should().Be(21m);
|
||||
|
||||
@@ -43,7 +43,7 @@ public class PuntoDeVentaTests
|
||||
{
|
||||
var original = MakePdv(id: 10, nombre: "Original");
|
||||
|
||||
var updated = original.WithUpdatedProfile(nombre: "Actualizado", numeroAFIP: 7, descripcion: "Desc");
|
||||
var updated = original.WithUpdatedProfile(nombre: "Actualizado", numeroAFIP: 7, descripcion: "Desc", now: DateTime.UtcNow);
|
||||
|
||||
Assert.NotSame(original, updated);
|
||||
Assert.Equal("Actualizado", updated.Nombre);
|
||||
@@ -56,7 +56,7 @@ public class PuntoDeVentaTests
|
||||
{
|
||||
var original = MakePdv(id: 10, medioId: 5);
|
||||
|
||||
var updated = original.WithUpdatedProfile("Nuevo", 2, null);
|
||||
var updated = original.WithUpdatedProfile("Nuevo", 2, null, DateTime.UtcNow);
|
||||
|
||||
Assert.Equal(10, updated.Id);
|
||||
Assert.Equal(5, updated.MedioId);
|
||||
@@ -69,7 +69,7 @@ public class PuntoDeVentaTests
|
||||
{
|
||||
var original = MakePdv();
|
||||
|
||||
var updated = original.WithUpdatedProfile("Nuevo", 2, null);
|
||||
var updated = original.WithUpdatedProfile("Nuevo", 2, null, DateTime.UtcNow);
|
||||
|
||||
Assert.NotNull(updated.FechaModificacion);
|
||||
}
|
||||
@@ -81,7 +81,7 @@ public class PuntoDeVentaTests
|
||||
{
|
||||
var pdv = MakePdv(activo: true);
|
||||
|
||||
var deactivated = pdv.WithActivo(false);
|
||||
var deactivated = pdv.WithActivo(false, DateTime.UtcNow);
|
||||
|
||||
Assert.False(deactivated.Activo);
|
||||
Assert.NotSame(pdv, deactivated);
|
||||
@@ -92,7 +92,7 @@ public class PuntoDeVentaTests
|
||||
{
|
||||
var pdv = MakePdv(activo: false);
|
||||
|
||||
var reactivated = pdv.WithActivo(true);
|
||||
var reactivated = pdv.WithActivo(true, DateTime.UtcNow);
|
||||
|
||||
Assert.True(reactivated.Activo);
|
||||
}
|
||||
@@ -102,7 +102,7 @@ public class PuntoDeVentaTests
|
||||
{
|
||||
var pdv = MakePdv(id: 99, medioId: 3);
|
||||
|
||||
var toggled = pdv.WithActivo(false);
|
||||
var toggled = pdv.WithActivo(false, DateTime.UtcNow);
|
||||
|
||||
Assert.Equal(99, toggled.Id);
|
||||
Assert.Equal(3, toggled.MedioId);
|
||||
|
||||
@@ -101,7 +101,7 @@ public class UsuarioTests
|
||||
public void WithUpdatedProfile_Returns_NewInstance()
|
||||
{
|
||||
var u = MakeUsuario();
|
||||
var updated = u.WithUpdatedProfile("NuevoNombre", "NuevoApellido", "new@x.com", "cajero", true);
|
||||
var updated = u.WithUpdatedProfile("NuevoNombre", "NuevoApellido", "new@x.com", "cajero", true, DateTime.UtcNow);
|
||||
Assert.NotSame(u, updated);
|
||||
}
|
||||
|
||||
@@ -109,7 +109,7 @@ public class UsuarioTests
|
||||
public void WithUpdatedProfile_Sets_Fields_Correctly()
|
||||
{
|
||||
var u = MakeUsuario();
|
||||
var updated = u.WithUpdatedProfile("Pedro", "Gómez", "p@g.com", "cajero", false);
|
||||
var updated = u.WithUpdatedProfile("Pedro", "Gómez", "p@g.com", "cajero", false, DateTime.UtcNow);
|
||||
Assert.Equal("Pedro", updated.Nombre);
|
||||
Assert.Equal("Gómez", updated.Apellido);
|
||||
Assert.Equal("p@g.com", updated.Email);
|
||||
@@ -121,8 +121,9 @@ public class UsuarioTests
|
||||
public void WithUpdatedProfile_Sets_FechaModificacion_To_UtcNow()
|
||||
{
|
||||
var before = DateTime.UtcNow.AddSeconds(-1);
|
||||
var now = DateTime.UtcNow;
|
||||
var u = MakeUsuario();
|
||||
var updated = u.WithUpdatedProfile("A", "B", null, "admin", true);
|
||||
var updated = u.WithUpdatedProfile("A", "B", null, "admin", true, now);
|
||||
Assert.NotNull(updated.FechaModificacion);
|
||||
Assert.True(updated.FechaModificacion >= before);
|
||||
}
|
||||
@@ -131,7 +132,7 @@ public class UsuarioTests
|
||||
public void WithUpdatedProfile_Preserves_Immutable_Fields()
|
||||
{
|
||||
var u = MakeUsuario();
|
||||
var updated = u.WithUpdatedProfile("X", "Y", null, "cajero", true);
|
||||
var updated = u.WithUpdatedProfile("X", "Y", null, "cajero", true, DateTime.UtcNow);
|
||||
Assert.Equal(u.Id, updated.Id);
|
||||
Assert.Equal(u.Username, updated.Username);
|
||||
Assert.Equal(u.PasswordHash, updated.PasswordHash);
|
||||
@@ -143,7 +144,7 @@ public class UsuarioTests
|
||||
public void WithNewPasswordHash_Returns_NewInstance()
|
||||
{
|
||||
var u = MakeUsuario();
|
||||
var updated = u.WithNewPasswordHash("newhash", mustChangePassword: false);
|
||||
var updated = u.WithNewPasswordHash("newhash", mustChangePassword: false, DateTime.UtcNow);
|
||||
Assert.NotSame(u, updated);
|
||||
}
|
||||
|
||||
@@ -151,7 +152,7 @@ public class UsuarioTests
|
||||
public void WithNewPasswordHash_Sets_Hash_And_MustChange()
|
||||
{
|
||||
var u = MakeUsuario();
|
||||
var updated = u.WithNewPasswordHash("newhash", mustChangePassword: true);
|
||||
var updated = u.WithNewPasswordHash("newhash", mustChangePassword: true, DateTime.UtcNow);
|
||||
Assert.Equal("newhash", updated.PasswordHash);
|
||||
Assert.True(updated.MustChangePassword);
|
||||
}
|
||||
@@ -160,7 +161,7 @@ public class UsuarioTests
|
||||
public void WithNewPasswordHash_Clears_MustChange_When_False()
|
||||
{
|
||||
var u = MakeUsuario(mustChangePassword: true);
|
||||
var updated = u.WithNewPasswordHash("hash2", mustChangePassword: false);
|
||||
var updated = u.WithNewPasswordHash("hash2", mustChangePassword: false, DateTime.UtcNow);
|
||||
Assert.False(updated.MustChangePassword);
|
||||
}
|
||||
|
||||
@@ -168,8 +169,9 @@ public class UsuarioTests
|
||||
public void WithNewPasswordHash_Sets_FechaModificacion()
|
||||
{
|
||||
var before = DateTime.UtcNow.AddSeconds(-1);
|
||||
var now = DateTime.UtcNow;
|
||||
var u = MakeUsuario();
|
||||
var updated = u.WithNewPasswordHash("hash2", false);
|
||||
var updated = u.WithNewPasswordHash("hash2", false, now);
|
||||
Assert.NotNull(updated.FechaModificacion);
|
||||
Assert.True(updated.FechaModificacion >= before);
|
||||
}
|
||||
@@ -208,7 +210,7 @@ public class UsuarioTests
|
||||
public void WithMustChangePassword_Sets_Value_True()
|
||||
{
|
||||
var u = MakeUsuario(mustChangePassword: false);
|
||||
var updated = u.WithMustChangePassword(true);
|
||||
var updated = u.WithMustChangePassword(true, DateTime.UtcNow);
|
||||
Assert.True(updated.MustChangePassword);
|
||||
}
|
||||
|
||||
@@ -216,8 +218,9 @@ public class UsuarioTests
|
||||
public void WithMustChangePassword_Sets_FechaModificacion()
|
||||
{
|
||||
var before = DateTime.UtcNow.AddSeconds(-1);
|
||||
var now = DateTime.UtcNow;
|
||||
var u = MakeUsuario();
|
||||
var updated = u.WithMustChangePassword(true);
|
||||
var updated = u.WithMustChangePassword(true, now);
|
||||
Assert.NotNull(updated.FechaModificacion);
|
||||
Assert.True(updated.FechaModificacion >= before);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user