Добавлены рабочие часы и дата окончания работы

This commit is contained in:
Pyro 2025-02-26 23:26:31 +04:00
parent e7b1cf8123
commit a6bc98dd0a
4 changed files with 29 additions and 11 deletions

View File

@ -14,6 +14,8 @@ public class WorkDataModel(string id, string premisesId, double price, bool isCa
public DateTime StartDate { get; private set; } = DateTime.UtcNow; public DateTime StartDate { get; private set; } = DateTime.UtcNow;
public DateTime FinishDate { get; private set; } = DateTime.UtcNow;
public bool IsCancel { get; private set; } = isCancel; public bool IsCancel { get; private set; } = isCancel;
public List<WorkerWorkDataModel> Workers { get; private set; } = workers; public List<WorkerWorkDataModel> Workers { get; private set; } = workers;

View File

@ -4,12 +4,14 @@ using TwoFromTheCaseContracts.Infrastructure;
namespace TwoFromTheCaseContracts.DataModels; namespace TwoFromTheCaseContracts.DataModels;
public class WorkerWorkDataModel(string workerId, string workId) : IValidation public class WorkerWorkDataModel(string workerId, string workId, double hours) : IValidation
{ {
public string WorkerId { get; private set; } = workerId; public string WorkerId { get; private set; } = workerId;
public string WorkId { get; private set; } = workId; public string WorkId { get; private set; } = workId;
public double Hours { get; private set; } = hours;
public void Validate() public void Validate()
{ {
if (WorkerId.IsEmpty()) if (WorkerId.IsEmpty())
@ -23,5 +25,8 @@ public class WorkerWorkDataModel(string workerId, string workId) : IValidation
if (!WorkId.IsGuid()) if (!WorkId.IsGuid())
throw new ValidationException("The value in the field WorkId is not a unique identifier"); throw new ValidationException("The value in the field WorkId is not a unique identifier");
if (Hours <= 0)
throw new ValidationException("Field Hours is less than or equal to 0");
} }
} }

View File

@ -86,5 +86,5 @@ class WorkDataModelTests
new(id, premisesId, price, isCancel, workers); new(id, premisesId, price, isCancel, workers);
private static List<WorkerWorkDataModel> CreateSubDataModel() private static List<WorkerWorkDataModel> CreateSubDataModel()
=> [new(Guid.NewGuid().ToString(), Guid.NewGuid().ToString())]; => [new(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 1)];
} }

View File

@ -9,32 +9,41 @@ class WorkerWorkDataModelTests
[Test] [Test]
public void WorkerIdIsNullOrEmptyTest() public void WorkerIdIsNullOrEmptyTest()
{ {
var workerWork = CreateDataModel(null, Guid.NewGuid().ToString()); var workerWork = CreateDataModel(null, Guid.NewGuid().ToString(), 10);
Assert.That(() => workerWork.Validate(), Throws.TypeOf<ValidationException>()); Assert.That(() => workerWork.Validate(), Throws.TypeOf<ValidationException>());
workerWork = CreateDataModel(string.Empty, Guid.NewGuid().ToString()); workerWork = CreateDataModel(string.Empty, Guid.NewGuid().ToString(), 10);
Assert.That(() => workerWork.Validate(), Throws.TypeOf<ValidationException>()); Assert.That(() => workerWork.Validate(), Throws.TypeOf<ValidationException>());
} }
[Test] [Test]
public void WorkerIdIsNotGuidTest() public void WorkerIdIsNotGuidTest()
{ {
var workerWork = CreateDataModel("workerId", Guid.NewGuid().ToString()); var workerWork = CreateDataModel("workerId", Guid.NewGuid().ToString(), 10);
Assert.That(() => workerWork.Validate(), Throws.TypeOf<ValidationException>()); Assert.That(() => workerWork.Validate(), Throws.TypeOf<ValidationException>());
} }
[Test] [Test]
public void WorkIdIsNullOrEmptyTest() public void WorkIdIsNullOrEmptyTest()
{ {
var workerWork = CreateDataModel(Guid.NewGuid().ToString(), null); var workerWork = CreateDataModel(Guid.NewGuid().ToString(), null, 10);
Assert.That(() => workerWork.Validate(), Throws.TypeOf<ValidationException>()); Assert.That(() => workerWork.Validate(), Throws.TypeOf<ValidationException>());
workerWork = CreateDataModel(string.Empty, Guid.NewGuid().ToString()); workerWork = CreateDataModel(string.Empty, Guid.NewGuid().ToString(), 10);
Assert.That(() => workerWork.Validate(), Throws.TypeOf<ValidationException>()); Assert.That(() => workerWork.Validate(), Throws.TypeOf<ValidationException>());
} }
[Test] [Test]
public void WorkIdIsNotGuidTest() public void WorkIdIsNotGuidTest()
{ {
var workerWork = CreateDataModel(Guid.NewGuid().ToString(), "workId"); var workerWork = CreateDataModel(Guid.NewGuid().ToString(), "workId", 10);
Assert.That(() => workerWork.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void HoursIsLessOrZeroTest()
{
var workerWork = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 0);
Assert.That(() => workerWork.Validate(), Throws.TypeOf<ValidationException>());
workerWork = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), -10);
Assert.That(() => workerWork.Validate(), Throws.TypeOf<ValidationException>()); Assert.That(() => workerWork.Validate(), Throws.TypeOf<ValidationException>());
} }
@ -43,15 +52,17 @@ class WorkerWorkDataModelTests
{ {
var workerId = Guid.NewGuid().ToString(); var workerId = Guid.NewGuid().ToString();
var workId = Guid.NewGuid().ToString(); var workId = Guid.NewGuid().ToString();
var workerWork = CreateDataModel(workerId, workId); var hours = 10;
var workerWork = CreateDataModel(workerId, workId, hours);
Assert.That(() => workerWork.Validate(), Throws.Nothing); Assert.That(() => workerWork.Validate(), Throws.Nothing);
Assert.Multiple(() => Assert.Multiple(() =>
{ {
Assert.That(workerWork.WorkerId, Is.EqualTo(workerId)); Assert.That(workerWork.WorkerId, Is.EqualTo(workerId));
Assert.That(workerWork.WorkId, Is.EqualTo(workId)); Assert.That(workerWork.WorkId, Is.EqualTo(workId));
Assert.That(workerWork.Hours, Is.EqualTo(hours));
}); });
} }
private static WorkerWorkDataModel CreateDataModel(string? workerId, string? workId) => private static WorkerWorkDataModel CreateDataModel(string? workerId, string? workId, double hours) =>
new(workerId, workId); new(workerId, workId, hours);
} }