59 lines
2.0 KiB
C#
Raw Normal View History

2025-02-17 17:06:55 +04:00
using TheCyclopsContracts.DataModels;
using TheCyclopsContracts.Exceptions;
namespace TheCyclopsTests.DataModelsTests;
[TestFixture]
internal class SupplyDataModelTests
{
[Test]
public void IdIsNullOrEmptyTest()
{
var supply = CreateDataModel(null, DateTime.UtcNow, CreateSubDataModel());
Assert.That(() => supply.Validate(), Throws.TypeOf<ValidationException>());
supply = CreateDataModel(string.Empty, DateTime.UtcNow, CreateSubDataModel());
Assert.That(() => supply.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void IdIsNotGuidTest()
{
var supply = CreateDataModel("id", DateTime.UtcNow, CreateSubDataModel());
Assert.That(() => supply.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void ComponentsIsNullOrEmptyTest()
{
var supply = CreateDataModel(Guid.NewGuid().ToString(), DateTime.UtcNow, null);
Assert.That(() => supply.Validate(), Throws.TypeOf<ValidationException>());
supply = CreateDataModel(Guid.NewGuid().ToString(), DateTime.UtcNow, []);
Assert.That(() => supply.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void AllFieldsIsCorrectTest()
{
var supplyId = Guid.NewGuid().ToString();
var components = CreateSubDataModel();
var supply = CreateDataModel(supplyId, DateTime.UtcNow, components);
Assert.That(() => supply.Validate(), Throws.Nothing);
Assert.Multiple(() =>
{
Assert.That(supply.Id, Is.EqualTo(supplyId));
Assert.That(supply.Components, Is.EquivalentTo(components));
});
}
private static SupplyDataModel CreateDataModel(string id, DateTime date,
List<SupplyComponentDataModel> components) =>
new(id, date, components);
private static List<SupplyComponentDataModel> CreateSubDataModel()
=> [new(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10)];
}