59 lines
2.0 KiB
C#
59 lines
2.0 KiB
C#
|
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)];
|
|||
|
}
|