From 5e76b6b7808417f1c888bfbce8b62ed621ae8d73 Mon Sep 17 00:00:00 2001 From: Kudyaeva Date: Fri, 7 Feb 2025 12:26:42 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9A=D0=BE=D1=80=D1=80=D0=B5=D0=BA=D1=82?= =?UTF-8?q?=D0=B8=D1=80=D0=BE=D0=B2=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DataModelTests/BuyerDataModelTests.cs | 73 ------------------- .../DataModelTests/SaleDataModelTests.cs | 35 ++++----- .../DataModelTests/WorkerDataModelTests.cs | 46 ++++++++---- .../DataModels/BuyerDataModel.cs | 42 ----------- .../DataModels/SaleDataModel.cs | 6 +- .../DataModels/WorkerDataModel.cs | 8 +- 6 files changed, 53 insertions(+), 157 deletions(-) delete mode 100644 TheButcherShopContracts/ButcherShopTests/DataModelTests/BuyerDataModelTests.cs delete mode 100644 TheButcherShopContracts/TheButcherShopContracts/DataModels/BuyerDataModel.cs diff --git a/TheButcherShopContracts/ButcherShopTests/DataModelTests/BuyerDataModelTests.cs b/TheButcherShopContracts/ButcherShopTests/DataModelTests/BuyerDataModelTests.cs deleted file mode 100644 index 47dbf9f..0000000 --- a/TheButcherShopContracts/ButcherShopTests/DataModelTests/BuyerDataModelTests.cs +++ /dev/null @@ -1,73 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using TheButcherShopContracts.Exceptions; -using TheButcherShopContracts.DataModels; - -namespace ButcherShopTests.DataModelTests; - -[TestFixture] - -internal class BuyerDataModelTests -{ - [Test] - public void IdIsNullOrEmptyTest() - { - var buyer = CreateDataModel(null, "fio", "number"); - Assert.That(() => buyer.Validate(), Throws.TypeOf()); - buyer = CreateDataModel(string.Empty, "fio", "number"); - Assert.That(() => buyer.Validate(), Throws.TypeOf()); - } - - [Test] - public void IdIsNotGuidTest() - { - var buyer = CreateDataModel("id", "fio", "number"); - Assert.That(() => buyer.Validate(), Throws.TypeOf()); - } - - [Test] - public void FIOIsNullOrEmptyTest() - { - var buyer = CreateDataModel(Guid.NewGuid().ToString(), null, "number"); - Assert.That(() => buyer.Validate(), Throws.TypeOf()); - buyer = CreateDataModel(Guid.NewGuid().ToString(), string.Empty, "number"); - Assert.That(() => buyer.Validate(), Throws.TypeOf()); - } - - [Test] - public void PhoneNumberIsNullOrEmptyTest() - { - var buyer = CreateDataModel(Guid.NewGuid().ToString(), "fio", null); - Assert.That(() => buyer.Validate(), Throws.TypeOf()); - buyer = CreateDataModel(Guid.NewGuid().ToString(), "fio", string.Empty); - Assert.That(() => buyer.Validate(), Throws.TypeOf()); - } - - [Test] - public void PhoneNumberIsIncorrectTest() - { - var buyer = CreateDataModel(Guid.NewGuid().ToString(), "fio", "777"); - Assert.That(() => buyer.Validate(), Throws.TypeOf()); - } - - [Test] - public void AllFieldsIsCorrectTest() - { - var buyerId = Guid.NewGuid().ToString(); - var fio = "Fio"; - var phoneNumber = "+7-777-777-77-77"; - var discountSize = 11; - var buyer = CreateDataModel(buyerId, fio, phoneNumber); - Assert.That(() => buyer.Validate(), Throws.Nothing); - Assert.Multiple(() => - { - Assert.That(buyer.Id, Is.EqualTo(buyerId)); - Assert.That(buyer.FIO, Is.EqualTo(fio)); - Assert.That(buyer.PhoneNumber, Is.EqualTo(phoneNumber)); - }); - } - private static BuyerDataModel CreateDataModel(string? id, string? fio, string? phoneNumber) => new(id, fio, phoneNumber); -} diff --git a/TheButcherShopContracts/ButcherShopTests/DataModelTests/SaleDataModelTests.cs b/TheButcherShopContracts/ButcherShopTests/DataModelTests/SaleDataModelTests.cs index 2aad9e3..2def6ca 100644 --- a/TheButcherShopContracts/ButcherShopTests/DataModelTests/SaleDataModelTests.cs +++ b/TheButcherShopContracts/ButcherShopTests/DataModelTests/SaleDataModelTests.cs @@ -14,57 +14,50 @@ internal class SaleDataModelTests [Test] public void IdIsNullOrEmptyTest() { - var sale = CreateDataModel(null, Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, false, CreateSubDataModel()); + var sale = CreateDataModel(null, Guid.NewGuid().ToString(), 10, false, CreateSubDataModel()); Assert.That(() => sale.Validate(), Throws.TypeOf()); - sale = CreateDataModel(string.Empty, Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, false, CreateSubDataModel()); + sale = CreateDataModel(string.Empty, Guid.NewGuid().ToString(), 10, false, CreateSubDataModel()); Assert.That(() => sale.Validate(), Throws.TypeOf()); } [Test] public void IdIsNotGuidTest() { - var sale = CreateDataModel("id", Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, false, CreateSubDataModel()); + var sale = CreateDataModel("id", Guid.NewGuid().ToString(), 10, false, CreateSubDataModel()); Assert.That(() => sale.Validate(),Throws.TypeOf()); } [Test] public void WorkerIdIsNullOrEmptyTest() { - var sale = CreateDataModel(Guid.NewGuid().ToString(), null, Guid.NewGuid().ToString(), 10, false, CreateSubDataModel()); + var sale = CreateDataModel(Guid.NewGuid().ToString(), null, 10, false, CreateSubDataModel()); Assert.That(() => sale.Validate(), Throws.TypeOf()); - sale = CreateDataModel(Guid.NewGuid().ToString(), string.Empty, Guid.NewGuid().ToString(), 10, false, CreateSubDataModel()); + sale = CreateDataModel(Guid.NewGuid().ToString(), string.Empty, 10, false, CreateSubDataModel()); Assert.That(() => sale.Validate(), Throws.TypeOf()); } [Test] public void WorkerIdIsNotGuidTest() { - var sale = CreateDataModel(Guid.NewGuid().ToString(), "workerId", Guid.NewGuid().ToString(), 10, false, CreateSubDataModel()); - Assert.That(() => sale.Validate(), Throws.TypeOf()); - } - - [Test] - public void BuyerIdIsNotGuidTest() - { - var sale = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), "buyerId", 10, false, CreateSubDataModel()); + var sale = CreateDataModel(Guid.NewGuid().ToString(), "workerId", 10, false, CreateSubDataModel()); Assert.That(() => sale.Validate(), Throws.TypeOf()); } [Test] public void SumIsLessOrZeroTest() { - var sale = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 0, false, CreateSubDataModel()); + var sale = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 0, false, CreateSubDataModel()); Assert.That(() => sale.Validate(), Throws.TypeOf()); - sale = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), -10, false, CreateSubDataModel()); + sale = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), -10, false, CreateSubDataModel()); Assert.That(() => sale.Validate(), Throws.TypeOf()); } [Test] public void ProductsIsNullOrEmptyTest() { - var sale = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, false, null); + var sale = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, false, null); Assert.That(() => sale.Validate(), Throws.TypeOf()); - sale = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, false, []); + sale = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, false, []); Assert.That(() => sale.Validate(), Throws.TypeOf()); } @@ -73,24 +66,22 @@ internal class SaleDataModelTests { var saleId = Guid.NewGuid().ToString(); var workerId = Guid.NewGuid().ToString(); - var buyerId = Guid.NewGuid().ToString(); var sum = 10; var isCancel = true; var products = CreateSubDataModel(); - var sale = CreateDataModel(saleId, workerId, buyerId, sum, isCancel, products); + var sale = CreateDataModel(saleId, workerId, sum, isCancel, products); Assert.That(() => sale.Validate(), Throws.Nothing); Assert.Multiple(() => { Assert.That(sale.Id, Is.EqualTo(saleId)); Assert.That(sale.WorkerId, Is.EqualTo(workerId)); - Assert.That(sale.BuyerId, Is.EqualTo(buyerId)); Assert.That(sale.Sum, Is.EqualTo(sum)); Assert.That(sale.IsCancel, Is.EqualTo(isCancel)); Assert.That(sale.Products, Is.EquivalentTo(products)); }); } - private static SaleDataModel CreateDataModel(string? id, string? workerId, string? buyerId, double sum, bool isCancel, List? products) - =>new(id, workerId, buyerId, sum, isCancel, products); + private static SaleDataModel CreateDataModel(string? id, string? workerId,double sum, bool isCancel, List? products) + =>new(id, workerId, sum, isCancel, products); private static List CreateSubDataModel() => [new(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 1)]; } diff --git a/TheButcherShopContracts/ButcherShopTests/DataModelTests/WorkerDataModelTests.cs b/TheButcherShopContracts/ButcherShopTests/DataModelTests/WorkerDataModelTests.cs index 8bd696f..d921f17 100644 --- a/TheButcherShopContracts/ButcherShopTests/DataModelTests/WorkerDataModelTests.cs +++ b/TheButcherShopContracts/ButcherShopTests/DataModelTests/WorkerDataModelTests.cs @@ -14,57 +14,73 @@ internal class WorkerDataModelTests [Test] public void IdIsNullOrEmptyTest() { - var worker = CreateDataModel(null, "fio", Guid.NewGuid().ToString(), DateTime.Now.AddYears(-18), DateTime.Now, false); + var worker = CreateDataModel(null, "fio", "number", Guid.NewGuid().ToString(), DateTime.Now.AddYears(-18), DateTime.Now, false); Assert.That(() => worker.Validate(), Throws.TypeOf()); - worker = CreateDataModel(string.Empty, "fio", Guid.NewGuid().ToString(), DateTime.Now.AddYears(-18), DateTime.Now, false); + worker = CreateDataModel(string.Empty, "fio", "number", Guid.NewGuid().ToString(), DateTime.Now.AddYears(-18), DateTime.Now, false); Assert.That(() => worker.Validate(), Throws.TypeOf()); } [Test] public void IdIsNotGuidTest() { - var worker = CreateDataModel("id", "fio", Guid.NewGuid().ToString(), DateTime.Now.AddYears(-18), DateTime.Now, false); + var worker = CreateDataModel("id", "fio", "number", Guid.NewGuid().ToString(), DateTime.Now.AddYears(-18), DateTime.Now, false); Assert.That(() => worker.Validate(), Throws.TypeOf()); } [Test] public void FIOIsNullOrEmptyTest() { - var worker = CreateDataModel(Guid.NewGuid().ToString(), null, Guid.NewGuid().ToString(), DateTime.Now.AddYears(-18), DateTime.Now, false); + var worker = CreateDataModel(Guid.NewGuid().ToString(), null, "number", Guid.NewGuid().ToString(), DateTime.Now.AddYears(-18), DateTime.Now, false); Assert.That(() => worker.Validate(), Throws.TypeOf()); - worker = CreateDataModel(Guid.NewGuid().ToString(), string.Empty, Guid.NewGuid().ToString(), DateTime.Now.AddYears(-18), DateTime.Now, false); + worker = CreateDataModel(Guid.NewGuid().ToString(), string.Empty, "number", Guid.NewGuid().ToString(), DateTime.Now.AddYears(-18), DateTime.Now, false); Assert.That(() => worker.Validate(), Throws.TypeOf()); } + [Test] + public void PhoneNumberIsNullOrEmptyTest() + { + var buyer = CreateDataModel(Guid.NewGuid().ToString(), "fio", null, Guid.NewGuid().ToString(), DateTime.Now.AddYears(-18), DateTime.Now, false); + Assert.That(() => buyer.Validate(), Throws.TypeOf()); + buyer = CreateDataModel(Guid.NewGuid().ToString(), "fio", string.Empty, Guid.NewGuid().ToString(), DateTime.Now.AddYears(-18), DateTime.Now, false); + Assert.That(() => buyer.Validate(), Throws.TypeOf()); + } + + [Test] + public void PhoneNumberIsIncorrectTest() + { + var buyer = CreateDataModel(Guid.NewGuid().ToString(), "fio", "777", Guid.NewGuid().ToString(), DateTime.Now.AddYears(-18), DateTime.Now, false); + Assert.That(() => buyer.Validate(), Throws.TypeOf()); + } + [Test] public void PostIdIsNullOrEmptyTest() { - var worker = CreateDataModel(Guid.NewGuid().ToString(), "fio", null, DateTime.Now.AddYears(-18), DateTime.Now, false); + var worker = CreateDataModel(Guid.NewGuid().ToString(), "fio", "number", null, DateTime.Now.AddYears(-18), DateTime.Now, false); Assert.That(() => worker.Validate(), Throws.TypeOf()); - worker = CreateDataModel(Guid.NewGuid().ToString(), "fio", string.Empty, DateTime.Now.AddYears(-18), DateTime.Now, false); + worker = CreateDataModel(Guid.NewGuid().ToString(), "fio", "number", string.Empty, DateTime.Now.AddYears(-18), DateTime.Now, false); Assert.That(() => worker.Validate(), Throws.TypeOf()); } [Test] public void PostIdIsNotGuidTest() { - var worker = CreateDataModel(Guid.NewGuid().ToString(), "fio", "postId", DateTime.Now.AddYears(-18), DateTime.Now, false); + var worker = CreateDataModel(Guid.NewGuid().ToString(), "fio", "number", "postId", DateTime.Now.AddYears(-18), DateTime.Now, false); Assert.That(() => worker.Validate(), Throws.TypeOf()); } [Test] public void BirthDateIsNotCorrectTest() { - var worker = CreateDataModel(Guid.NewGuid().ToString(), "fio", Guid.NewGuid().ToString(), DateTime.Now.AddYears(-16).AddDays(1), DateTime.Now, false); + var worker = CreateDataModel(Guid.NewGuid().ToString(), "fio", "number", Guid.NewGuid().ToString(), DateTime.Now.AddYears(-16).AddDays(1), DateTime.Now, false); Assert.That(() => worker.Validate(), Throws.TypeOf()); } [Test] public void BirthDateAndEmploymentDateIsNotCorrectTest() { - var worker = CreateDataModel(Guid.NewGuid().ToString(), "fio", Guid.NewGuid().ToString(), DateTime.Now.AddYears(-18), DateTime.Now.AddYears(-18).AddDays(-1), false); + var worker = CreateDataModel(Guid.NewGuid().ToString(), "fio", "number", Guid.NewGuid().ToString(), DateTime.Now.AddYears(-18), DateTime.Now.AddYears(-18).AddDays(-1), false); Assert.That(() => worker.Validate(), Throws.TypeOf()); - worker = CreateDataModel(Guid.NewGuid().ToString(), "fio", Guid.NewGuid().ToString(), DateTime.Now.AddYears(-18), DateTime.Now.AddYears(-16), false); + worker = CreateDataModel(Guid.NewGuid().ToString(), "fio", "number", Guid.NewGuid().ToString(), DateTime.Now.AddYears(-18), DateTime.Now.AddYears(-16), false); Assert.That(() => worker.Validate(), Throws.TypeOf()); } @@ -73,23 +89,25 @@ internal class WorkerDataModelTests { var workerId = Guid.NewGuid().ToString(); var fio = "fio"; + var phoneNumber = "+7-777-777-77-77"; var postId = Guid.NewGuid().ToString(); var birthDate = DateTime.Now.AddYears(-16).AddDays(-1); var employmentDate = DateTime.Now; var isDelete = false; - var worker = CreateDataModel(workerId, fio, postId, birthDate, employmentDate, isDelete); + var worker = CreateDataModel(workerId, fio, phoneNumber, postId, birthDate, employmentDate, isDelete); Assert.That(() => worker.Validate(), Throws.Nothing); Assert.Multiple(() => { Assert.That(worker.Id, Is.EqualTo(workerId)); Assert.That(worker.FIO, Is.EqualTo(fio)); + Assert.That(worker.PhoneNumber, Is.EqualTo(phoneNumber)); Assert.That(worker.PostId, Is.EqualTo(postId)); Assert.That(worker.BirthDate, Is.EqualTo(birthDate)); Assert.That(worker.EmploymentDate, Is.EqualTo(employmentDate)); Assert.That(worker.IsDeleted, Is.EqualTo(isDelete)); }); } - private static WorkerDataModel CreateDataModel(string? id, string? fio, string? postId, DateTime birthDate, DateTime employmentDate, bool isDeleted) => - new(id, fio, postId, birthDate, employmentDate, isDeleted); + private static WorkerDataModel CreateDataModel(string? id, string? fio, string? phoneNumber, string? postId, DateTime birthDate, DateTime employmentDate, bool isDeleted) => + new(id, fio, phoneNumber, postId, birthDate, employmentDate, isDeleted); } diff --git a/TheButcherShopContracts/TheButcherShopContracts/DataModels/BuyerDataModel.cs b/TheButcherShopContracts/TheButcherShopContracts/DataModels/BuyerDataModel.cs deleted file mode 100644 index 94af1df..0000000 --- a/TheButcherShopContracts/TheButcherShopContracts/DataModels/BuyerDataModel.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Numerics; -using System.Text; -using System.Text.RegularExpressions; -using System.Threading.Tasks; -using System.Xml; -using TheButcherShopContracts.Extensions; -using TheButcherShopContracts.Infrastructure; -using static System.Runtime.InteropServices.JavaScript.JSType; -using TheButcherShopContracts.Exceptions; - - -namespace TheButcherShopContracts.DataModels; - -public class BuyerDataModel(string id, string fio, string phoneNumber) : IValidation -{ - public string Id { get; private set; } = id; - public string FIO { get; private set; } = fio; - public string PhoneNumber { get; private set; } = phoneNumber; - - - public void Validate() - { - 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 (PhoneNumber.IsEmpty()) - throw new ValidationException("Field PhoneNumber is empty"); - - if (!Regex.IsMatch(PhoneNumber, @"^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\-]?)?[\d\- ]{7,10}$")) - throw new ValidationException("Field PhoneNumber is not a phone number"); - - } -} diff --git a/TheButcherShopContracts/TheButcherShopContracts/DataModels/SaleDataModel.cs b/TheButcherShopContracts/TheButcherShopContracts/DataModels/SaleDataModel.cs index 8f70d1a..391652f 100644 --- a/TheButcherShopContracts/TheButcherShopContracts/DataModels/SaleDataModel.cs +++ b/TheButcherShopContracts/TheButcherShopContracts/DataModels/SaleDataModel.cs @@ -10,11 +10,10 @@ using TheButcherShopContracts.Infrastructure; namespace TheButcherShopContracts.DataModels; -public class SaleDataModel(string id, string workerId, string? buyerId, double sum, bool isCancel, List products) : IValidation +public class SaleDataModel(string id, string workerId, double sum, bool isCancel, List products) : IValidation { public string Id { get; private set; } = id; public string WorkerId { get; private set; } = workerId; - public string? BuyerId { get; private set; } = buyerId; public DateTime SaleDate { get; private set; } = DateTime.UtcNow; public double Sum { get; private set; } = sum; public bool IsCancel { get; private set; } = isCancel; @@ -34,9 +33,6 @@ public class SaleDataModel(string id, string workerId, string? buyerId, double s if (!WorkerId.IsGuid()) throw new ValidationException("The value in the field WorkerId is not a unique identifier"); - if (!BuyerId?.IsGuid() ?? !BuyerId?.IsEmpty() ?? false) - throw new ValidationException("The value in the field BuyerId is not a unique identifier"); - if (Sum <= 0) throw new ValidationException("Field Sum is less than or equal to 0"); diff --git a/TheButcherShopContracts/TheButcherShopContracts/DataModels/WorkerDataModel.cs b/TheButcherShopContracts/TheButcherShopContracts/DataModels/WorkerDataModel.cs index a97577a..c641146 100644 --- a/TheButcherShopContracts/TheButcherShopContracts/DataModels/WorkerDataModel.cs +++ b/TheButcherShopContracts/TheButcherShopContracts/DataModels/WorkerDataModel.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; +using System.Text.RegularExpressions; using System.Threading.Tasks; using System.Xml; using TheButcherShopContracts.Exceptions; @@ -11,10 +12,11 @@ using static System.Runtime.InteropServices.JavaScript.JSType; namespace TheButcherShopContracts.DataModels; -public class WorkerDataModel(string id, string fio, string postId, DateTime birthDate, DateTime employmentDate, bool isDeleted) : IValidation +public class WorkerDataModel(string id, string fio, string phoneNumber, string postId, DateTime birthDate, DateTime employmentDate, bool isDeleted) : IValidation { public string Id { get; private set; } = id; public string FIO { get; private set; } = fio; + public string PhoneNumber { get; private set; } = phoneNumber; public string PostId { get; private set; } = postId; public DateTime BirthDate { get; private set; } = birthDate; public DateTime EmploymentDate { get; private set; } = employmentDate; @@ -31,6 +33,10 @@ public class WorkerDataModel(string id, string fio, string postId, DateTime birt if (FIO.IsEmpty()) throw new ValidationException("Field FIO is empty"); + if (PhoneNumber.IsEmpty()) { throw new ValidationException("Field PhoneNumber is empty"); } + + if (!Regex.IsMatch(PhoneNumber, @"^\+7[\s-]?\d{3}[\s-]?\d{3}[\s-]?\d{2}[\s-]?\d{2}$")) { throw new ValidationException("Field PhoneNumber is not a phone number"); } + if (PostId.IsEmpty()) throw new ValidationException("Field PostId is empty");