refactor(udt-011): Quartz jobs usan TimeProvider (closes #24) #28

Merged
dmolinari merged 4 commits from fix/UDT-011-quartz-jobs-timeprovider into main 2026-04-18 14:08:11 +00:00
Owner

Resumen

Cierra el follow-up #24 de UDT-011 — los 3 Quartz jobs pendientes ahora inyectan TimeProvider en lugar de usar DateTime.UtcNow inline.

Jobs migrados

  • AuditIntegrityCheckJob
  • AuditPartitionManagerJob
  • AuditRetentionEnforcerJob

Pattern aplicado

Mismo que los 36 archivos refactorizados en UDT-011 (PR #25):

  • TimeProvider inyectado via constructor
  • _timeProvider.GetUtcNow().UtcDateTime para Cat1 (timestamps de ejecución)
  • _timeProvider.GetArgentinaToday() para Cat2 si aplica

Tests

  • Baseline: 647 unit tests + 225 api tests preservados
  • Nuevos: 6 tests de jobs con FakeTimeProvider verificando injection (AuditJobsTimeProviderTests)
  • Actualizados: AuditJobsTests (3 tests de integración DB) — constructores actualizados a TimeProvider.System

Regla automática

Los jobs ahora cumplen la regla de Obsidian/INSTRUCCIONES_IA.md → " REGLA DE FECHAS Y ZONAS HORARIAS" que prohíbe DateTime.UtcNow inline. Cierra la deuda técnica completa de UDT-011.

Closes #24

## Resumen Cierra el follow-up #24 de UDT-011 — los 3 Quartz jobs pendientes ahora inyectan `TimeProvider` en lugar de usar `DateTime.UtcNow` inline. ## Jobs migrados - `AuditIntegrityCheckJob` - `AuditPartitionManagerJob` - `AuditRetentionEnforcerJob` ## Pattern aplicado Mismo que los 36 archivos refactorizados en UDT-011 (PR #25): - `TimeProvider` inyectado via constructor - `_timeProvider.GetUtcNow().UtcDateTime` para Cat1 (timestamps de ejecución) - `_timeProvider.GetArgentinaToday()` para Cat2 si aplica ## Tests - Baseline: 647 unit tests + 225 api tests preservados - Nuevos: 6 tests de jobs con `FakeTimeProvider` verificando injection (`AuditJobsTimeProviderTests`) - Actualizados: `AuditJobsTests` (3 tests de integración DB) — constructores actualizados a `TimeProvider.System` ## Regla automática Los jobs ahora cumplen la regla de `Obsidian/INSTRUCCIONES_IA.md` → "⏰ REGLA DE FECHAS Y ZONAS HORARIAS" que prohíbe `DateTime.UtcNow` inline. Cierra la deuda técnica completa de UDT-011. Closes #24
dmolinari added 4 commits 2026-04-18 14:08:08 +00:00
dmolinari merged commit 8353f73230 into main 2026-04-18 14:08:11 +00:00
dmolinari deleted branch fix/UDT-011-quartz-jobs-timeprovider 2026-04-18 14:08:11 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dmolinari/SIG-CM2.0#28