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

83 lines
2.5 KiB
C#
Raw Normal View History

using SIGCM2.Domain.Entities;
namespace SIGCM2.Application.Tests.Domain;
public class RolTests
{
// Happy path: full constructor sets all properties.
[Fact]
public void Constructor_SetsAllProperties()
{
var created = new DateTime(2026, 4, 15, 10, 0, 0, DateTimeKind.Utc);
var modified = new DateTime(2026, 4, 15, 11, 0, 0, DateTimeKind.Utc);
var rol = new Rol(
id: 1,
codigo: "cajero",
nombre: "Cajero",
descripcion: "Atención de mostrador",
activo: true,
fechaCreacion: created,
fechaModificacion: modified
);
Assert.Equal(1, rol.Id);
Assert.Equal("cajero", rol.Codigo);
Assert.Equal("Cajero", rol.Nombre);
Assert.Equal("Atención de mostrador", rol.Descripcion);
Assert.True(rol.Activo);
Assert.Equal(created, rol.FechaCreacion);
Assert.Equal(modified, rol.FechaModificacion);
}
// Triangulation: descripcion is nullable, fechaModificacion is nullable.
[Fact]
public void Constructor_WithNullOptionals_SetsNulls()
{
var created = new DateTime(2026, 4, 15, 10, 0, 0, DateTimeKind.Utc);
var rol = new Rol(
id: 2,
codigo: "reportes",
nombre: "Reportes",
descripcion: null,
activo: false,
fechaCreacion: created,
fechaModificacion: null
);
Assert.Null(rol.Descripcion);
Assert.Null(rol.FechaModificacion);
Assert.False(rol.Activo);
}
// ForCreation: Id=0 (IDENTITY assigned by DB), Activo=true, FechaCreacion=SYSUTCDATETIME-ish (not set here), FechaModificacion=null.
[Fact]
public void ForCreation_ReturnsNewInstanceWithDefaults()
{
var rol = Rol.ForCreation(
codigo: "picadora",
nombre: "Picadora/Correctora",
descripcion: "Edición de textos"
);
Assert.Equal(0, rol.Id);
Assert.Equal("picadora", rol.Codigo);
Assert.Equal("Picadora/Correctora", rol.Nombre);
Assert.Equal("Edición de textos", rol.Descripcion);
Assert.True(rol.Activo);
Assert.Null(rol.FechaModificacion);
}
// Triangulation: ForCreation accepts null descripcion.
[Fact]
public void ForCreation_WithNullDescripcion_AllowsNull()
{
var rol = Rol.ForCreation(codigo: "admin", nombre: "Administrador", descripcion: null);
Assert.Null(rol.Descripcion);
Assert.Equal("admin", rol.Codigo);
Assert.True(rol.Activo);
}
}