Files
T
2026-03-17 09:53:09 -05:00

115 lines
3.6 KiB
C#

using System.ComponentModel.DataAnnotations;
using System.Linq;
using LCU.Library.Internal.IncentiveApiModels.Entities;
using LCU.Library.Internal.IncentiveApiModels.Enums;
using NUnit.Framework;
namespace Application.UnitTests.Entities
{
public class DepartmentTest
{
[Test]
public void Validate_OK()
{
var dept = new Department()
{
DepartmentName = "Test1",
BusinessLineCode = "MEMSRV",
State = DepartmentState.Active
};
var results = dept.Validate(new ValidationContext(dept));
Assert.IsEmpty(results);
}
[TestCase("BCHOPS", false)]
[TestCase("MEMSRV", false)]
[TestCase("OPS", false)]
[TestCase("TOAST", true)]
public void Validate_BusinessLineCode_OK(string businessLine, bool hasError)
{
var dept = new Department()
{
DepartmentName = "Test1",
BusinessLineCode = businessLine,
State = DepartmentState.Active
};
var results = dept.Validate(new ValidationContext(dept));
Assert.AreEqual(hasError,results.Any());
}
[Test]
public void Validate_Bad_BusinessLine()
{
var dept = new Department()
{
DepartmentName = "Test1",
BusinessLineCode = "THISISNOTAREALBUSINESSLINECODE",
State = DepartmentState.Active
};
var results = dept.Validate(new ValidationContext(dept));
Assert.NotNull(results);
Assert.AreEqual(1, results.Count());
Assert.AreEqual(results.First().ErrorMessage, "The supplied BusinessLineCode is not associated with any known BusinessLine");
}
[Test]
public void Validate_NullRegionCode_OK()
{
var department = new Department()
{
DepartmentName = "Test1",
BusinessLineCode = "MEMSRV",
RegionCode = null,
State = DepartmentState.Active
};
var results = department.Validate(new ValidationContext(department));
Assert.NotNull(results);
Assert.IsEmpty(results);
}
[TestCase("INVALID_REGION")]
[TestCase("")]
[TestCase(" ")]
public void Validate_BadRegionCode_IncludesValidationResult(string regionCode)
{
var department = new Department()
{
DepartmentName = "Test1",
BusinessLineCode = "MEMSRV",
RegionCode = regionCode,
State = DepartmentState.Active
};
var results = department.Validate(new ValidationContext(department));
Assert.NotNull(results);
Assert.AreEqual(1, results.Count());
Assert.AreEqual(results.First().ErrorMessage, "The supplied RegionCode is not associated with any known Region");
}
[TestCase("EAST")]
[TestCase("NORTH")]
[TestCase("SOUTH")]
[TestCase("WEST")]
public void Validate_RegionCode_OK(string regionCode)
{
var dept = new Department()
{
DepartmentName = "Test1",
BusinessLineCode = "MEMSRV",
RegionCode = regionCode,
State = DepartmentState.Active
};
var results = dept.Validate(new ValidationContext(dept));
Assert.NotNull(results);
Assert.IsEmpty(results);
}
}
}