This commit is contained in:
Glliza 2025-02-13 16:04:45 +04:00
parent 7e40591321
commit 72b36bf3f0
4 changed files with 30 additions and 17 deletions

View File

@ -28,6 +28,9 @@ namespace PuferFishContracts.DataModels
if (FIO.IsEmpty())
throw new ValidationException("Field FIO is empty");
if (!Regex.IsMatch(FIO, @"\b[А-ЯЁ][а-яё]*\b \b[А-ЯЁ][а-яё]*\b \b[А-ЯЁ][а-яё]*\b"))
throw new ValidationException("Field FIO is not a FIO");
if (PhoneNumber.IsEmpty())
throw new ValidationException("Field PhoneNumber is empty");

View File

@ -8,6 +8,7 @@ using PuferFishContracts.Exceptions;
using System.Xml;
using PuferFishContracts.Infrastructure;
using static System.Runtime.InteropServices.JavaScript.JSType;
using System.Text.RegularExpressions;
namespace PuferFishContracts.DataModels;
@ -23,16 +24,25 @@ public class WorkerDataModel(string id, string fio, string postId, DateTime birt
{
if (Id.IsEmpty())
throw new ValidationException("Field Id is empty");
if (!Id.IsGuid())
throw new ValidationException("The value in the field Id is not a unique identifier");
if (FIO.IsEmpty())
throw new ValidationException("Field FIO is empty");
if (!Regex.IsMatch(FIO, @"\b[А-ЯЁ][а-яё]*\b \b[А-ЯЁ][а-яё]*\b \b[А-ЯЁ][а-яё]*\b"))
throw new ValidationException("Field FIO is not a FIO");
if (PostId.IsEmpty())
throw new ValidationException("Field PostId is empty");
if (!PostId.IsGuid())
throw new ValidationException("The value in the field PostId is not a unique identifier");
if (BirthDate.Date > DateTime.Now.AddYears(-16).Date)
throw new ValidationException($"Minors cannot be hired (BirthDate = { BirthDate.ToShortDateString() })");
if (EmploymentDate.Date < BirthDate.Date)
throw new ValidationException("The date of employment cannot be less than the date of birth");
if ((EmploymentDate - BirthDate).TotalDays / 365 < 16) //EmploymentDate.Year - BirthDate.Year

View File

@ -14,17 +14,17 @@ namespace PuferFishTests.DataModelsTests
[Test]
public void IdIsNullOrEmptyTest()
{
var buyer = CreateDataModel(null, "fio", "number", 10);
var buyer = CreateDataModel(null, "Фамилия Имя Отчество", "number", 10);
Assert.That(() => buyer.Validate(),
Throws.TypeOf<ValidationException>());
buyer = CreateDataModel(string.Empty, "fio", "number", 10);
buyer = CreateDataModel(string.Empty, "Фамилия Имя Отчество", "number", 10);
Assert.That(() => buyer.Validate(),
Throws.TypeOf<ValidationException>());
}
[Test]
public void IdIsNotGuidTest()
{
var buyer = CreateDataModel("id", "fio", "number", 10);
var buyer = CreateDataModel("id", "Фамилия Имя Отчество", "number", 10);
Assert.That(() => buyer.Validate(),
Throws.TypeOf<ValidationException>());
}
@ -43,11 +43,11 @@ namespace PuferFishTests.DataModelsTests
[Test]
public void PhoneNumberIsNullOrEmptyTest()
{
var buyer = CreateDataModel(Guid.NewGuid().ToString(), "fio", null,
var buyer = CreateDataModel(Guid.NewGuid().ToString(), "Фамилия Имя Отчество", null,
10);
Assert.That(() => buyer.Validate(),
Throws.TypeOf<ValidationException>());
buyer = CreateDataModel(Guid.NewGuid().ToString(), "fio",
buyer = CreateDataModel(Guid.NewGuid().ToString(), "Фамилия Имя Отчество",
string.Empty, 10);
Assert.That(() => buyer.Validate(),
Throws.TypeOf<ValidationException>());
@ -55,7 +55,7 @@ namespace PuferFishTests.DataModelsTests
[Test]
public void PhoneNumberIsIncorrectTest()
{
var buyer = CreateDataModel(Guid.NewGuid().ToString(), "fio", "777",
var buyer = CreateDataModel(Guid.NewGuid().ToString(), "Фамилия Имя Отчество", "777",
10);
Assert.That(() => buyer.Validate(),
Throws.TypeOf<ValidationException>());
@ -64,7 +64,7 @@ namespace PuferFishTests.DataModelsTests
public void AllFieldsIsCorrectTest()
{
var buyerId = Guid.NewGuid().ToString();
var fio = "Fio";
var fio = "Фамилия Имя Отчество";
var phoneNumber = "+7-777-777-77-77";
var points = 11;
var buyer = CreateDataModel(buyerId, fio, phoneNumber, points);

View File

@ -15,11 +15,11 @@ internal class WorkerDataModelTests
[Test]
public void IdIsNullOrEmptyTest()
{
var worker = CreateDataModel(null, "fio", Guid.NewGuid().ToString(),
var worker = CreateDataModel(null, "Фамилия Имя Отчество", Guid.NewGuid().ToString(),
DateTime.Now.AddYears(-18), DateTime.Now, false);
Assert.That(() => worker.Validate(),
Throws.TypeOf<ValidationException>());
worker = CreateDataModel(string.Empty, "fio",
worker = CreateDataModel(string.Empty, "Фамилия Имя Отчество",
Guid.NewGuid().ToString(), DateTime.Now.AddYears(-18), DateTime.Now, false);
Assert.That(() => worker.Validate(),
Throws.TypeOf<ValidationException>());
@ -27,7 +27,7 @@ internal class WorkerDataModelTests
[Test]
public void IdIsNotGuidTest()
{
var worker = CreateDataModel("id", "fio", Guid.NewGuid().ToString(),
var worker = CreateDataModel("id", "Фамилия Имя Отчество", Guid.NewGuid().ToString(),
DateTime.Now.AddYears(-18), DateTime.Now, false);
Assert.That(() => worker.Validate(),
Throws.TypeOf<ValidationException>());
@ -47,11 +47,11 @@ internal class WorkerDataModelTests
[Test]
public void PostIdIsNullOrEmptyTest()
{
var worker = CreateDataModel(Guid.NewGuid().ToString(), "fio", null,
var worker = CreateDataModel(Guid.NewGuid().ToString(), "Фамилия Имя Отчество", null,
DateTime.Now.AddYears(-18), DateTime.Now, false);
Assert.That(() => worker.Validate(),
Throws.TypeOf<ValidationException>());
worker = CreateDataModel(Guid.NewGuid().ToString(), "fio",
worker = CreateDataModel(Guid.NewGuid().ToString(), "Фамилия Имя Отчество",
string.Empty, DateTime.Now.AddYears(-18), DateTime.Now, false);
Assert.That(() => worker.Validate(),
Throws.TypeOf<ValidationException>());
@ -59,7 +59,7 @@ internal class WorkerDataModelTests
[Test]
public void PostIdIsNotGuidTest()
{
var worker = CreateDataModel(Guid.NewGuid().ToString(), "fio",
var worker = CreateDataModel(Guid.NewGuid().ToString(), "Фамилия Имя Отчество",
"postId", DateTime.Now.AddYears(-18), DateTime.Now, false);
Assert.That(() => worker.Validate(),
Throws.TypeOf<ValidationException>());
@ -67,7 +67,7 @@ internal class WorkerDataModelTests
[Test]
public void BirthDateIsNotCorrectTest()
{
var worker = CreateDataModel(Guid.NewGuid().ToString(), "fio",
var worker = CreateDataModel(Guid.NewGuid().ToString(), "Фамилия Имя Отчество",
Guid.NewGuid().ToString(), DateTime.Now.AddYears(-16).AddDays(1), DateTime.Now,
false);
Assert.That(() => worker.Validate(),
@ -76,12 +76,12 @@ internal class WorkerDataModelTests
[Test]
public void BirthDateAndEmploymentDateIsNotCorrectTest()
{
var worker = CreateDataModel(Guid.NewGuid().ToString(), "fio",
var worker = CreateDataModel(Guid.NewGuid().ToString(), "Фамилия Имя Отчество",
Guid.NewGuid().ToString(), DateTime.Now.AddYears(-18), DateTime.Now.AddYears(-
18).AddDays(-1), false);
Assert.That(() => worker.Validate(),
Throws.TypeOf<ValidationException>());
worker = CreateDataModel(Guid.NewGuid().ToString(), "fio",
worker = CreateDataModel(Guid.NewGuid().ToString(), "Фамилия Имя Отчество",
Guid.NewGuid().ToString(), DateTime.Now.AddYears(-18), DateTime.Now.AddYears(-
16), false);
Assert.That(() => worker.Validate(),
@ -91,7 +91,7 @@ internal class WorkerDataModelTests
public void AllFieldsIsCorrectTest()
{
var workerId = Guid.NewGuid().ToString();
var fio = "fio";
var fio = "Фамилия Имя Отчество";
var postId = Guid.NewGuid().ToString();
var birthDate = DateTime.Now.AddYears(-16).AddDays(-1);
var employmentDate = DateTime.Now;