83 lines
2.5 KiB
C#
83 lines
2.5 KiB
C#
|
|
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);
|
||
|
|
}
|
||
|
|
}
|