Files
PIbd-22_Buslaev.R.V_TwoFrom…/TwoFromTheCasketContracts/TwoFromTheCasketTests/DataModelsTests/WorkDataModelTests.cs
2025-02-07 19:35:45 +04:00

71 lines
2.5 KiB
C#

using TwoFromTheCasketContracts.DataModels;
using TwoFromTheCasketContracts.Exceptions;
using TwoFromTheCasketContracts.Enums;
namespace TwoFromTheCasketTests.DataModelsTests;
[TestFixture]
internal class WorkDataModelTests
{
[Test]
public void IdIsNullOrEmptyTest()
{
var work = CreateDataModel(null, TypeWork.Plaster, "Штукатурка стен", DateTime.Now);
Assert.That(() => work.Validate(), Throws.TypeOf<ValidationException>());
work = CreateDataModel(string.Empty, TypeWork.Plaster, "Штукатурка стен", DateTime.Now);
Assert.That(() => work.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void IdIsNotGuidTest()
{
var work = CreateDataModel("not-a-guid", TypeWork.Plaster, "Штукатурка стен", DateTime.Now);
Assert.That(() => work.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void DescriptionIsEmptyTest()
{
var work = CreateDataModel(Guid.NewGuid().ToString(), TypeWork.Plaster, "", DateTime.Now);
Assert.That(() => work.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void DateIsInPastTest()
{
var work = CreateDataModel(Guid.NewGuid().ToString(), TypeWork.Plaster, "Штукатурка стен", DateTime.Now.AddDays(-1));
Assert.That(() => work.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void TypeIsNoneTest()
{
var work = CreateDataModel(Guid.NewGuid().ToString(), TypeWork.None, "Штукатурка стен", DateTime.Now);
Assert.That(() => work.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void AllFieldsIsCorrectTest()
{
var id = Guid.NewGuid().ToString();
var type = TypeWork.Plaster;
var description = "Штукатурка стен";
var date = DateTime.Now.AddDays(10);
var work = CreateDataModel(id, type, description, date);
Assert.That(() => work.Validate(), Throws.Nothing);
Assert.Multiple(() =>
{
Assert.That(work.Id, Is.EqualTo(id));
Assert.That(work.Type, Is.EqualTo(type));
Assert.That(work.Description, Is.EqualTo(description));
Assert.That(work.Date, Is.EqualTo(date));
});
}
private static WorkDataModel CreateDataModel(string? id, TypeWork type, string description, DateTime date)
=> new(id, type, description, date);
}