71 lines
2.5 KiB
C#
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);
|
|
}
|