From 3ee0bf07249816f52d580ad5e23dcb80c96be392 Mon Sep 17 00:00:00 2001 From: dmolinari Date: Fri, 17 Apr 2026 17:45:41 -0300 Subject: [PATCH] test(adm-009): ProvinciaArgentina enum tests (Red) --- .../Domain/Fiscal/ProvinciaArgentinaTests.cs | 98 +++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 tests/SIGCM2.Application.Tests/Domain/Fiscal/ProvinciaArgentinaTests.cs diff --git a/tests/SIGCM2.Application.Tests/Domain/Fiscal/ProvinciaArgentinaTests.cs b/tests/SIGCM2.Application.Tests/Domain/Fiscal/ProvinciaArgentinaTests.cs new file mode 100644 index 0000000..cf52ac1 --- /dev/null +++ b/tests/SIGCM2.Application.Tests/Domain/Fiscal/ProvinciaArgentinaTests.cs @@ -0,0 +1,98 @@ +using System.Reflection; +using FluentAssertions; +using SIGCM2.Domain.Fiscal; + +namespace SIGCM2.Application.Tests.Domain.Fiscal; + +public class ProvinciaArgentinaTests +{ + // ── T200.1: enum tiene exactamente 24 valores ───────────────────────────── + + [Fact] + public void ProvinciaArgentina_Enum_Has_Exactly_24_Values() + { + var values = Enum.GetValues(); + + values.Should().HaveCount(24, "Argentina tiene 23 provincias INDEC + CABA = 24 jurisdicciones fiscales"); + } + + // ── T200.1: cada valor tiene el nombre canónico exacto ──────────────────── + + [Theory] + [InlineData("BuenosAires")] + [InlineData("Catamarca")] + [InlineData("Chaco")] + [InlineData("Chubut")] + [InlineData("CiudadAutonomaDeBuenosAires")] + [InlineData("Cordoba")] + [InlineData("Corrientes")] + [InlineData("EntreRios")] + [InlineData("Formosa")] + [InlineData("Jujuy")] + [InlineData("LaPampa")] + [InlineData("LaRioja")] + [InlineData("Mendoza")] + [InlineData("Misiones")] + [InlineData("Neuquen")] + [InlineData("RioNegro")] + [InlineData("Salta")] + [InlineData("SanJuan")] + [InlineData("SanLuis")] + [InlineData("SantaCruz")] + [InlineData("SantaFe")] + [InlineData("SantiagoDelEstero")] + [InlineData("TierraDelFuego")] + [InlineData("Tucuman")] + public void ProvinciaArgentina_Enum_Contains_CanonicalName(string nombre) + { + var defined = Enum.IsDefined(typeof(ProvinciaArgentina), nombre); + + defined.Should().BeTrue($"ProvinciaArgentina debe contener el valor '{nombre}'"); + } + + // ── T200.3: mapping bidireccional string BD ↔ enum ─────────────────────── + + [Theory] + [InlineData(ProvinciaArgentina.BuenosAires, "Buenos Aires")] + [InlineData(ProvinciaArgentina.CiudadAutonomaDeBuenosAires, "Ciudad Autónoma de Buenos Aires")] + [InlineData(ProvinciaArgentina.Cordoba, "Córdoba")] + [InlineData(ProvinciaArgentina.EntreRios, "Entre Ríos")] + [InlineData(ProvinciaArgentina.Neuquen, "Neuquén")] + [InlineData(ProvinciaArgentina.RioNegro, "Río Negro")] + [InlineData(ProvinciaArgentina.TierraDelFuego, "Tierra del Fuego")] + public void ToDisplayString_ReturnsCorrectDisplayName(ProvinciaArgentina provincia, string expected) + { + var result = provincia.ToDisplayString(); + + result.Should().Be(expected); + } + + [Fact] + public void ToDisplayString_AllValues_ReturnNonEmptyString() + { + foreach (var value in Enum.GetValues()) + { + var display = value.ToDisplayString(); + display.Should().NotBeNullOrWhiteSpace($"{value} debe tener un display string"); + } + } + + [Theory] + [InlineData("Buenos Aires", ProvinciaArgentina.BuenosAires)] + [InlineData("Ciudad Autónoma de Buenos Aires", ProvinciaArgentina.CiudadAutonomaDeBuenosAires)] + [InlineData("Córdoba", ProvinciaArgentina.Cordoba)] + public void FromDisplayString_ReturnsCorrectEnum(string displayName, ProvinciaArgentina expected) + { + var result = ProvinciaArgentinaExtensions.FromDisplayString(displayName); + + result.Should().Be(expected); + } + + [Fact] + public void FromDisplayString_InvalidName_ThrowsArgumentException() + { + var act = () => ProvinciaArgentinaExtensions.FromDisplayString("Patagonia Inventada"); + + act.Should().Throw(); + } +}