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

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 FinishDate { get; private set; } = DateTime.UtcNow;
public bool IsCancel { get; private set; } = isCancel;
public List<WorkerWorkDataModel> Workers { get; private set; } = workers;

View File

@ -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");
}
}

View File

@ -86,5 +86,5 @@ class WorkDataModelTests
new(id, premisesId, price, isCancel, workers);
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]
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>());
workerWork = CreateDataModel(string.Empty, Guid.NewGuid().ToString());
workerWork = CreateDataModel(string.Empty, Guid.NewGuid().ToString(), 10);
Assert.That(() => workerWork.Validate(), Throws.TypeOf<ValidationException>());
}
[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<ValidationException>());
}
[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<ValidationException>());
workerWork = CreateDataModel(string.Empty, Guid.NewGuid().ToString());
workerWork = CreateDataModel(string.Empty, Guid.NewGuid().ToString(), 10);
Assert.That(() => workerWork.Validate(), Throws.TypeOf<ValidationException>());
}
[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<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>());
}
@ -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);
}