mirror of
https://github.com/Cleanuparr/Cleanuparr.git
synced 2026-01-02 10:57:52 -05:00
149 lines
3.3 KiB
C#
149 lines
3.3 KiB
C#
using Cleanuparr.Infrastructure.Models;
|
|
using Shouldly;
|
|
using Xunit;
|
|
|
|
namespace Cleanuparr.Infrastructure.Tests.Models;
|
|
|
|
public class ValidationResultTests
|
|
{
|
|
[Fact]
|
|
public void Success_ReturnsValidResult()
|
|
{
|
|
// Act
|
|
var result = ValidationResult.Success();
|
|
|
|
// Assert
|
|
result.IsValid.ShouldBeTrue();
|
|
}
|
|
|
|
[Fact]
|
|
public void Success_HasEmptyErrorMessage()
|
|
{
|
|
// Act
|
|
var result = ValidationResult.Success();
|
|
|
|
// Assert
|
|
result.ErrorMessage.ShouldBe(string.Empty);
|
|
}
|
|
|
|
[Fact]
|
|
public void Success_HasEmptyDetails()
|
|
{
|
|
// Act
|
|
var result = ValidationResult.Success();
|
|
|
|
// Assert
|
|
result.Details.ShouldBeEmpty();
|
|
}
|
|
|
|
[Fact]
|
|
public void Failure_ReturnsInvalidResult()
|
|
{
|
|
// Act
|
|
var result = ValidationResult.Failure("Error occurred");
|
|
|
|
// Assert
|
|
result.IsValid.ShouldBeFalse();
|
|
}
|
|
|
|
[Fact]
|
|
public void Failure_ContainsErrorMessage()
|
|
{
|
|
// Arrange
|
|
const string errorMessage = "Validation failed";
|
|
|
|
// Act
|
|
var result = ValidationResult.Failure(errorMessage);
|
|
|
|
// Assert
|
|
result.ErrorMessage.ShouldBe(errorMessage);
|
|
}
|
|
|
|
[Fact]
|
|
public void Failure_WithDetails_ContainsAllDetails()
|
|
{
|
|
// Arrange
|
|
const string errorMessage = "Multiple errors";
|
|
var details = new List<string> { "Error 1", "Error 2", "Error 3" };
|
|
|
|
// Act
|
|
var result = ValidationResult.Failure(errorMessage, details);
|
|
|
|
// Assert
|
|
result.Details.Count.ShouldBe(3);
|
|
result.Details.ShouldContain("Error 1");
|
|
result.Details.ShouldContain("Error 2");
|
|
result.Details.ShouldContain("Error 3");
|
|
}
|
|
|
|
[Fact]
|
|
public void Failure_WithoutDetails_HasEmptyDetailsList()
|
|
{
|
|
// Act
|
|
var result = ValidationResult.Failure("Error");
|
|
|
|
// Assert
|
|
result.Details.ShouldNotBeNull();
|
|
result.Details.ShouldBeEmpty();
|
|
}
|
|
|
|
[Fact]
|
|
public void Failure_WithNullDetails_HasEmptyDetailsList()
|
|
{
|
|
// Act
|
|
var result = ValidationResult.Failure("Error", null);
|
|
|
|
// Assert
|
|
result.Details.ShouldNotBeNull();
|
|
result.Details.ShouldBeEmpty();
|
|
}
|
|
|
|
[Fact]
|
|
public void DefaultConstructor_IsValidIsFalse()
|
|
{
|
|
// Act
|
|
var result = new ValidationResult();
|
|
|
|
// Assert
|
|
result.IsValid.ShouldBeFalse();
|
|
}
|
|
|
|
[Fact]
|
|
public void DefaultConstructor_ErrorMessageIsEmpty()
|
|
{
|
|
// Act
|
|
var result = new ValidationResult();
|
|
|
|
// Assert
|
|
result.ErrorMessage.ShouldBe(string.Empty);
|
|
}
|
|
|
|
[Fact]
|
|
public void DefaultConstructor_DetailsIsEmptyList()
|
|
{
|
|
// Act
|
|
var result = new ValidationResult();
|
|
|
|
// Assert
|
|
result.Details.ShouldNotBeNull();
|
|
result.Details.ShouldBeEmpty();
|
|
}
|
|
|
|
[Fact]
|
|
public void Properties_CanBeSetDirectly()
|
|
{
|
|
// Arrange
|
|
var result = new ValidationResult();
|
|
|
|
// Act
|
|
result.IsValid = true;
|
|
result.ErrorMessage = "Test error";
|
|
result.Details = new List<string> { "Detail 1" };
|
|
|
|
// Assert
|
|
result.IsValid.ShouldBeTrue();
|
|
result.ErrorMessage.ShouldBe("Test error");
|
|
result.Details.ShouldContain("Detail 1");
|
|
}
|
|
}
|