61 lines
1.6 KiB
C#
61 lines
1.6 KiB
C#
|
|
using FluentAssertions;
|
||
|
|
using SIGCM2.Domain.Exceptions;
|
||
|
|
|
||
|
|
namespace SIGCM2.Application.Tests.Products.Exceptions;
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
/// PRD-002 — Tests for new Product domain exceptions.
|
||
|
|
/// Verifies message content and property values.
|
||
|
|
/// </summary>
|
||
|
|
public class ProductExceptionsTests
|
||
|
|
{
|
||
|
|
[Fact]
|
||
|
|
public void ProductNotFoundException_ContainsId_InMessage()
|
||
|
|
{
|
||
|
|
var ex = new ProductNotFoundException(5);
|
||
|
|
|
||
|
|
ex.Message.Should().Contain("5");
|
||
|
|
ex.ProductId.Should().Be(5);
|
||
|
|
}
|
||
|
|
|
||
|
|
[Fact]
|
||
|
|
public void ProductNombreDuplicadoEnMedioTipoException_ContainsDetails()
|
||
|
|
{
|
||
|
|
var ex = new ProductNombreDuplicadoEnMedioTipoException(2, 3, "Clasificado");
|
||
|
|
|
||
|
|
ex.Message.Should().Contain("Clasificado");
|
||
|
|
ex.Message.Should().Contain("2");
|
||
|
|
ex.Message.Should().Contain("3");
|
||
|
|
ex.MedioId.Should().Be(2);
|
||
|
|
ex.ProductTypeId.Should().Be(3);
|
||
|
|
ex.Nombre.Should().Be("Clasificado");
|
||
|
|
}
|
||
|
|
|
||
|
|
[Fact]
|
||
|
|
public void ProductTipoFlagsIncoherentesException_FieldAndMessage()
|
||
|
|
{
|
||
|
|
var ex = new ProductTipoFlagsIncoherentesException("requiere RubroId", "rubroId");
|
||
|
|
|
||
|
|
ex.Field.Should().Be("rubroId");
|
||
|
|
ex.Message.Should().Contain("requiere RubroId");
|
||
|
|
}
|
||
|
|
|
||
|
|
[Fact]
|
||
|
|
public void ProductTypeInactivoException_ContainsProductTypeId()
|
||
|
|
{
|
||
|
|
var ex = new ProductTypeInactivoException(7);
|
||
|
|
|
||
|
|
ex.Message.Should().Contain("7");
|
||
|
|
ex.ProductTypeId.Should().Be(7);
|
||
|
|
}
|
||
|
|
|
||
|
|
[Fact]
|
||
|
|
public void RubroInactivoException_ContainsRubroId()
|
||
|
|
{
|
||
|
|
var ex = new RubroInactivoException(12);
|
||
|
|
|
||
|
|
ex.Message.Should().Contain("12");
|
||
|
|
ex.RubroId.Should().Be(12);
|
||
|
|
}
|
||
|
|
}
|