54 lines
1.9 KiB
C#

using SoftwareInstallationContracts.DataModels;
using SoftwareInstallationContracts.Exceptions;
namespace SoftwareInstallationTests.DataModelsTests;
[TestFixture]
internal class WarehouseDataModelTests
{
private WarehouseDataModel warehouse;
[Test]
public void IdIsEmptyTest()
{
warehouse = CreateDataModel(null, 10, DateTime.Now);
Assert.That(() => warehouse.Validate(), Throws.TypeOf<ValidationFieldException>());
warehouse = CreateDataModel(string.Empty, 10, DateTime.Now);
Assert.That(() => warehouse.Validate(), Throws.TypeOf<ValidationFieldException>());
}
[Test]
public void IdIsNotGuidTest()
{
warehouse = CreateDataModel("id", 10, DateTime.Now);
Assert.That(() => warehouse.Validate(), Throws.TypeOf<ValidationFieldException>());
}
[Test]
public void TotalCountIsLessOrZeroTest()
{
warehouse = CreateDataModel(Guid.NewGuid().ToString(), 0, DateTime.Now);
Assert.That(() => warehouse.Validate(), Throws.TypeOf<ValidationFieldException>());
warehouse = CreateDataModel(Guid.NewGuid().ToString(), -10, DateTime.Now);
Assert.That(() => warehouse.Validate(), Throws.TypeOf<ValidationFieldException>());
}
[Test]
public void AllFieldsIsCorrectTest()
{
string warehouseId = Guid.NewGuid().ToString();
int totalCount = 10;
DateTime date = DateTime.UtcNow;
warehouse = CreateDataModel(warehouseId, totalCount, date);
Assert.That(() => warehouse.Validate(), Throws.Nothing);
Assert.Multiple(() =>
{
Assert.That(warehouse.Id, Is.EqualTo(warehouseId));
Assert.That(warehouse.TotalCount, Is.EqualTo(totalCount));
Assert.That(warehouse.ChangeDate, Is.EqualTo(date));
});
}
private static WarehouseDataModel CreateDataModel(string? id, int totalCount, DateTime date)
=> new(id, totalCount, date);
}