diff --git a/TwoFromTheCaseProject/TwoFromTheCaseContracts/DataModels/WorkDataModel.cs b/TwoFromTheCaseProject/TwoFromTheCaseContracts/DataModels/WorkDataModel.cs index 1dfe1cf..efdf4ce 100644 --- a/TwoFromTheCaseProject/TwoFromTheCaseContracts/DataModels/WorkDataModel.cs +++ b/TwoFromTheCaseProject/TwoFromTheCaseContracts/DataModels/WorkDataModel.cs @@ -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 FinishDate { get; private set; } = DateTime.UtcNow; + public bool IsCancel { get; private set; } = isCancel; public List Workers { get; private set; } = workers; diff --git a/TwoFromTheCaseProject/TwoFromTheCaseContracts/DataModels/WorkerWorkDataModel.cs b/TwoFromTheCaseProject/TwoFromTheCaseContracts/DataModels/WorkerWorkDataModel.cs index 2ffeda3..46d701a 100644 --- a/TwoFromTheCaseProject/TwoFromTheCaseContracts/DataModels/WorkerWorkDataModel.cs +++ b/TwoFromTheCaseProject/TwoFromTheCaseContracts/DataModels/WorkerWorkDataModel.cs @@ -4,12 +4,14 @@ using TwoFromTheCaseContracts.Infrastructure; 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 WorkId { get; private set; } = workId; + public double Hours { get; private set; } = hours; + public void Validate() { if (WorkerId.IsEmpty()) @@ -23,5 +25,8 @@ public class WorkerWorkDataModel(string workerId, string workId) : IValidation if (!WorkId.IsGuid()) 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"); } } diff --git a/TwoFromTheCaseProject/TwoFromTheCaseTests/DataModelsTests/WorkDataModelTests.cs b/TwoFromTheCaseProject/TwoFromTheCaseTests/DataModelsTests/WorkDataModelTests.cs index d8d02a9..d856da2 100644 --- a/TwoFromTheCaseProject/TwoFromTheCaseTests/DataModelsTests/WorkDataModelTests.cs +++ b/TwoFromTheCaseProject/TwoFromTheCaseTests/DataModelsTests/WorkDataModelTests.cs @@ -86,5 +86,5 @@ class WorkDataModelTests new(id, premisesId, price, isCancel, workers); private static List CreateSubDataModel() - => [new(Guid.NewGuid().ToString(), Guid.NewGuid().ToString())]; + => [new(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 1)]; } diff --git a/TwoFromTheCaseProject/TwoFromTheCaseTests/DataModelsTests/WorkerWorkDataModelTests.cs b/TwoFromTheCaseProject/TwoFromTheCaseTests/DataModelsTests/WorkerWorkDataModelTests.cs index 5fc2dc4..a1e8577 100644 --- a/TwoFromTheCaseProject/TwoFromTheCaseTests/DataModelsTests/WorkerWorkDataModelTests.cs +++ b/TwoFromTheCaseProject/TwoFromTheCaseTests/DataModelsTests/WorkerWorkDataModelTests.cs @@ -9,32 +9,41 @@ class WorkerWorkDataModelTests [Test] public void WorkerIdIsNullOrEmptyTest() { - var workerWork = CreateDataModel(null, Guid.NewGuid().ToString()); + var workerWork = CreateDataModel(null, Guid.NewGuid().ToString(), 10); Assert.That(() => workerWork.Validate(), Throws.TypeOf()); - workerWork = CreateDataModel(string.Empty, Guid.NewGuid().ToString()); + workerWork = CreateDataModel(string.Empty, Guid.NewGuid().ToString(), 10); Assert.That(() => workerWork.Validate(), Throws.TypeOf()); } [Test] public void WorkerIdIsNotGuidTest() { - var workerWork = CreateDataModel("workerId", Guid.NewGuid().ToString()); + var workerWork = CreateDataModel("workerId", Guid.NewGuid().ToString(), 10); Assert.That(() => workerWork.Validate(), Throws.TypeOf()); } [Test] public void WorkIdIsNullOrEmptyTest() { - var workerWork = CreateDataModel(Guid.NewGuid().ToString(), null); + var workerWork = CreateDataModel(Guid.NewGuid().ToString(), null, 10); Assert.That(() => workerWork.Validate(), Throws.TypeOf()); - workerWork = CreateDataModel(string.Empty, Guid.NewGuid().ToString()); + workerWork = CreateDataModel(string.Empty, Guid.NewGuid().ToString(), 10); Assert.That(() => workerWork.Validate(), Throws.TypeOf()); } [Test] public void WorkIdIsNotGuidTest() { - var workerWork = CreateDataModel(Guid.NewGuid().ToString(), "workId"); + var workerWork = CreateDataModel(Guid.NewGuid().ToString(), "workId", 10); + Assert.That(() => workerWork.Validate(), Throws.TypeOf()); + } + + [Test] + public void HoursIsLessOrZeroTest() + { + var workerWork = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 0); + Assert.That(() => workerWork.Validate(), Throws.TypeOf()); + workerWork = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), -10); Assert.That(() => workerWork.Validate(), Throws.TypeOf()); } @@ -43,15 +52,17 @@ class WorkerWorkDataModelTests { var workerId = 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.Multiple(() => { Assert.That(workerWork.WorkerId, Is.EqualTo(workerId)); Assert.That(workerWork.WorkId, Is.EqualTo(workId)); + Assert.That(workerWork.Hours, Is.EqualTo(hours)); }); } - private static WorkerWorkDataModel CreateDataModel(string? workerId, string? workId) => - new(workerId, workId); + private static WorkerWorkDataModel CreateDataModel(string? workerId, string? workId, double hours) => + new(workerId, workId, hours); }