diff --git a/AndDietCokeProject/AndDietCokeContracts/DataModels/BuyerDataModel.cs b/AndDietCokeProject/AndDietCokeContracts/DataModels/BuyerDataModel.cs index 810be4e..1d4c384 100644 --- a/AndDietCokeProject/AndDietCokeContracts/DataModels/BuyerDataModel.cs +++ b/AndDietCokeProject/AndDietCokeContracts/DataModels/BuyerDataModel.cs @@ -13,12 +13,11 @@ using AndDietCokeContracts.Exceptions; namespace AndDietCokeContracts.DataModels; -public class BuyerDataModel(string id, string fio, string phoneNumber, double discountSize) : IValidation +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 double DiscountSize { get; private set; } = discountSize; public void Validate() { if (Id.IsEmpty()) @@ -29,7 +28,7 @@ public class BuyerDataModel(string id, string fio, string phoneNumber, double di 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}$")) + if (!Regex.IsMatch(PhoneNumber, @"^(((8|\+7)[\-\s]?)?(\(?\d{3}\)?[\-\s]?)?[\d\-\s]{7,10}|(\d{2}[\-\s]?\d{2}[\-\s]?\d{2}))$")) throw new ValidationException("Field PhoneNumber is not a phone number"); } } \ No newline at end of file diff --git a/AndDietCokeProject/AndDietCokeContracts/DataModels/DishDataModel.cs b/AndDietCokeProject/AndDietCokeContracts/DataModels/DishDataModel.cs index 378e7ec..25ebe64 100644 --- a/AndDietCokeProject/AndDietCokeContracts/DataModels/DishDataModel.cs +++ b/AndDietCokeProject/AndDietCokeContracts/DataModels/DishDataModel.cs @@ -11,12 +11,13 @@ using AndDietCokeContracts.Exceptions; namespace AndDietCokeContracts.DataModels; -public class DishDataModel(string id, string dishName, DishType dishType, double price, bool isDeleted) : IValidation +public class DishDataModel(string id, string dishName, DishType dishType, double price, IngredientType ingredientType, bool isDeleted) : IValidation { public string Id { get; private set; } = id; public string DishName { get; private set; } = dishName; public DishType DishType { get; private set; } = dishType; public double Price { get; private set; } = price; + public IngredientType IngredientType { get; private set; } = ingredientType; public bool IsDeleted { get; private set; } = isDeleted; public void Validate() { diff --git a/AndDietCokeProject/AndDietCokeContracts/DataModels/OrderDataModel.cs b/AndDietCokeProject/AndDietCokeContracts/DataModels/OrderDataModel.cs index 07b981a..f519875 100644 --- a/AndDietCokeProject/AndDietCokeContracts/DataModels/OrderDataModel.cs +++ b/AndDietCokeProject/AndDietCokeContracts/DataModels/OrderDataModel.cs @@ -11,15 +11,13 @@ using System.Xml; namespace AndDietCokeContracts.DataModels; -public class SaleDataModel(string id, string workerId, string? buyerId, double sum, DiscountType discountType, double discount, bool isCancel, List dishes) : IValidation +public class OrderDataModel(string id, string workerId, string? buyerId, double sum, bool isCancel, List dishes) : 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 DiscountType DiscountType { get; private set; } = discountType; - public double Discount { get; private set; } = discount; public bool IsCancel { get; private set; } = isCancel; public List Dishes { get; private set; } = dishes; public void Validate() diff --git a/AndDietCokeProject/AndDietCokeContracts/Enums/DiscountType.cs b/AndDietCokeProject/AndDietCokeContracts/Enums/IngredientType.cs similarity index 67% rename from AndDietCokeProject/AndDietCokeContracts/Enums/DiscountType.cs rename to AndDietCokeProject/AndDietCokeContracts/Enums/IngredientType.cs index 10ab319..05708a9 100644 --- a/AndDietCokeProject/AndDietCokeContracts/Enums/DiscountType.cs +++ b/AndDietCokeProject/AndDietCokeContracts/Enums/IngredientType.cs @@ -7,10 +7,10 @@ using System.Threading.Tasks; namespace AndDietCokeContracts.Enums; [Flags] -public enum DiscountType +public enum IngredientType { None = 0, - OnSale = 1, - RegularCustomer = 2, - Certificate = 4 + Dough = 1, + Cheese = 2, + Tomato = 4 } \ No newline at end of file diff --git a/AndDietCokeProject/AndDietCokeTests/DataModelsTests/BuyerDataModelTests.cs b/AndDietCokeProject/AndDietCokeTests/DataModelsTests/BuyerDataModelTests.cs index 91ff9ce..836f44c 100644 --- a/AndDietCokeProject/AndDietCokeTests/DataModelsTests/BuyerDataModelTests.cs +++ b/AndDietCokeProject/AndDietCokeTests/DataModelsTests/BuyerDataModelTests.cs @@ -14,41 +14,41 @@ internal class BuyerDataModelTests [Test] public void IdIsNullOrEmptyTest() { - var buyer = CreateDataModel(null, "fio", "number", 10); + var buyer = CreateDataModel(null, "fio", "number"); Assert.That(() => buyer.Validate(), Throws.TypeOf()); - buyer = CreateDataModel(string.Empty, "fio", "number", 10); + buyer = CreateDataModel(string.Empty, "fio", "number"); Assert.That(() => buyer.Validate(), Throws.TypeOf()); } [Test] public void IdIsNotGuidTest() { - var buyer = CreateDataModel("id", "fio", "number", 10); + var buyer = CreateDataModel("id", "fio", "number"); Assert.That(() => buyer.Validate(), Throws.TypeOf()); } [Test] public void FIOIsNullOrEmptyTest() { - var buyer = CreateDataModel(Guid.NewGuid().ToString(), null, "number", 10); + var buyer = CreateDataModel(Guid.NewGuid().ToString(), null, "number"); Assert.That(() => buyer.Validate(), Throws.TypeOf()); - buyer = CreateDataModel(Guid.NewGuid().ToString(), string.Empty, "number", 10); + 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, 10); + var buyer = CreateDataModel(Guid.NewGuid().ToString(), "fio", null); Assert.That(() => buyer.Validate(), Throws.TypeOf()); - buyer = CreateDataModel(Guid.NewGuid().ToString(), "fio", string.Empty, 10); + 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", 10); + var buyer = CreateDataModel(Guid.NewGuid().ToString(), "fio", "777"); Assert.That(() => buyer.Validate(), Throws.TypeOf()); } @@ -57,18 +57,16 @@ internal class BuyerDataModelTests { var buyerId = Guid.NewGuid().ToString(); var fio = "Fio"; - var phoneNumber = "+7-777-777-77-77"; - var discountSize = 11; - var buyer = CreateDataModel(buyerId, fio, phoneNumber, discountSize); + var phoneNumber = "62-10-10"; + 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)); - Assert.That(buyer.DiscountSize, Is.EqualTo(discountSize)); }); } - private static BuyerDataModel CreateDataModel(string? id, string? fio, string? phoneNumber, double discountSize) => - new(id, fio, phoneNumber, discountSize); + private static BuyerDataModel CreateDataModel(string? id, string? fio, string? phoneNumber) => + new(id, fio, phoneNumber); } \ No newline at end of file diff --git a/AndDietCokeProject/AndDietCokeTests/DataModelsTests/DishDataModelTests.cs b/AndDietCokeProject/AndDietCokeTests/DataModelsTests/DishDataModelTests.cs index 2e33b8a..d74a842 100644 --- a/AndDietCokeProject/AndDietCokeTests/DataModelsTests/DishDataModelTests.cs +++ b/AndDietCokeProject/AndDietCokeTests/DataModelsTests/DishDataModelTests.cs @@ -16,41 +16,41 @@ internal class DishDataModelTests [Test] public void IdIsNullOrEmptyTest() { - var dish = CreateDataModel(null, "name", DishType.Pizza, 10, false); + var dish = CreateDataModel(null, "name", DishType.Pizza, 10, IngredientType.Dough, false); Assert.That(() => dish.Validate(), Throws.TypeOf()); - dish = CreateDataModel(string.Empty, "name", DishType.Pizza, 10, false); + dish = CreateDataModel(string.Empty, "name", DishType.Pizza, 10, IngredientType.Dough, false); Assert.That(() => dish.Validate(), Throws.TypeOf()); } [Test] public void IdIsNotGuidTest() { - var dish = CreateDataModel("id", "name", DishType.Pizza, 10, false); + var dish = CreateDataModel("id", "name", DishType.Pizza, 10, IngredientType.Dough, false); Assert.That(() => dish.Validate(), Throws.TypeOf()); } [Test] public void DishNameIsEmptyTest() { - var dish = CreateDataModel(Guid.NewGuid().ToString(), null, DishType.Pizza, 10, false); + var dish = CreateDataModel(Guid.NewGuid().ToString(), null, DishType.Pizza, 10, IngredientType.Dough, false); Assert.That(() => dish.Validate(), Throws.TypeOf()); - dish = CreateDataModel(Guid.NewGuid().ToString(), string.Empty, DishType.Pizza, 10, false); + dish = CreateDataModel(Guid.NewGuid().ToString(), string.Empty, DishType.Pizza, 10, IngredientType.Dough, false); Assert.That(() => dish.Validate(), Throws.TypeOf()); } [Test] public void DishTypeIsNoneTest() { - var dish = CreateDataModel(Guid.NewGuid().ToString(), null, DishType.None, 10, false); + var dish = CreateDataModel(Guid.NewGuid().ToString(), null, DishType.None, 10, IngredientType.Dough, false); Assert.That(() => dish.Validate(), Throws.TypeOf()); } [Test] public void PriceIsLessOrZeroTest() { - var dish = CreateDataModel(Guid.NewGuid().ToString(), "name", DishType.Pizza, 0, false); + var dish = CreateDataModel(Guid.NewGuid().ToString(), "name", DishType.Pizza, 0, IngredientType.Dough , false); Assert.That(() => dish.Validate(), Throws.TypeOf()); - dish = CreateDataModel(Guid.NewGuid().ToString(), "name", DishType.Pizza, -10, false); + dish = CreateDataModel(Guid.NewGuid().ToString(), "name", DishType.Pizza, -10, IngredientType.Dough, false); Assert.That(() => dish.Validate(), Throws.TypeOf()); } @@ -61,8 +61,9 @@ internal class DishDataModelTests var dishName = "name"; var dishType = DishType.Pizza; var dishPrice = 10; + var dishIngredientType = IngredientType.Dough; var dishIsDelete = false; - var dish = CreateDataModel(dishId, dishName, dishType, dishPrice, dishIsDelete); + var dish = CreateDataModel(dishId, dishName, dishType, dishPrice, dishIngredientType, dishIsDelete); Assert.That(() => dish.Validate(), Throws.Nothing); Assert.Multiple(() => { @@ -70,9 +71,10 @@ internal class DishDataModelTests Assert.That(dish.DishName, Is.EqualTo(dishName)); Assert.That(dish.DishType, Is.EqualTo(dishType)); Assert.That(dish.Price, Is.EqualTo(dishPrice)); + Assert.That(dish.IngredientType, Is.EqualTo(dishIngredientType)); Assert.That(dish.IsDeleted, Is.EqualTo(dishIsDelete)); }); } - private static DishDataModel CreateDataModel(string? id, string? dishName, DishType dishType, double price, bool isDeleted) => - new(id, dishName, dishType, price, isDeleted); + private static DishDataModel CreateDataModel(string? id, string? dishName, DishType dishType, double price, IngredientType ingredientType, bool isDeleted) => + new(id, dishName, dishType, price, ingredientType, isDeleted); } diff --git a/AndDietCokeProject/AndDietCokeTests/DataModelsTests/OrderDataModelTests.cs b/AndDietCokeProject/AndDietCokeTests/DataModelsTests/OrderDataModelTests.cs index 763309d..857d2b7 100644 --- a/AndDietCokeProject/AndDietCokeTests/DataModelsTests/OrderDataModelTests.cs +++ b/AndDietCokeProject/AndDietCokeTests/DataModelsTests/OrderDataModelTests.cs @@ -15,57 +15,57 @@ internal class OrderDataModelTests [Test] public void IdIsNullOrEmptyTest() { - var order = CreateDataModel(null, Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, DiscountType.OnSale, 10, false, CreateSubDataModel()); + var order = CreateDataModel(null, Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, false, CreateSubDataModel()); Assert.That(() => order.Validate(), Throws.TypeOf()); - order = CreateDataModel(string.Empty, Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, DiscountType.OnSale, 10, false, CreateSubDataModel()); + order = CreateDataModel(string.Empty, Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, false, CreateSubDataModel()); Assert.That(() => order.Validate(), Throws.TypeOf()); } [Test] public void IdIsNotGuidTest() { - var order = CreateDataModel("id", Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, DiscountType.OnSale, 10, false, CreateSubDataModel()); + var order = CreateDataModel("id", Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, false, CreateSubDataModel()); Assert.That(() => order.Validate(), Throws.TypeOf()); } [Test] public void WorkerIdIsNullOrEmptyTest() { - var order = CreateDataModel(Guid.NewGuid().ToString(), null, Guid.NewGuid().ToString(), 10, DiscountType.OnSale, 10, false, CreateSubDataModel()); + var order = CreateDataModel(Guid.NewGuid().ToString(), null, Guid.NewGuid().ToString(), 10, false, CreateSubDataModel()); Assert.That(() => order.Validate(), Throws.TypeOf()); - order = CreateDataModel(Guid.NewGuid().ToString(), string.Empty, Guid.NewGuid().ToString(), 10, DiscountType.OnSale, 10, false, CreateSubDataModel()); + order = CreateDataModel(Guid.NewGuid().ToString(), string.Empty, Guid.NewGuid().ToString(), 10, false, CreateSubDataModel()); Assert.That(() => order.Validate(), Throws.TypeOf()); } [Test] public void WorkerIdIsNotGuidTest() { - var order = CreateDataModel(Guid.NewGuid().ToString(), "workerId", Guid.NewGuid().ToString(), 10, DiscountType.OnSale, 10, false, CreateSubDataModel()); + var order = CreateDataModel(Guid.NewGuid().ToString(), "workerId", Guid.NewGuid().ToString(), 10, false, CreateSubDataModel()); Assert.That(() => order.Validate(), Throws.TypeOf()); } [Test] public void BuyerIdIsNotGuidTest() { - var order = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), "buyerId", 10, DiscountType.OnSale, 10, false, CreateSubDataModel()); + var order = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), "buyerId", 10, false, CreateSubDataModel()); Assert.That(() => order.Validate(), Throws.TypeOf()); } [Test] public void SumIsLessOrZeroTest() { - var order = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 0, DiscountType.OnSale, 10, false, CreateSubDataModel()); + var order = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 0, false, CreateSubDataModel()); Assert.That(() => order.Validate(), Throws.TypeOf()); - order = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), -10, DiscountType.OnSale, 10, false, CreateSubDataModel()); + order = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), -10, false, CreateSubDataModel()); Assert.That(() => order.Validate(), Throws.TypeOf()); } [Test] public void ProductsIsNullOrEmptyTest() { - var order = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, DiscountType.OnSale, 10, false, null); + var order = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, false, null); Assert.That(() => order.Validate(), Throws.TypeOf()); - order = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, DiscountType.OnSale, 10, false, []); + order = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, false, []); Assert.That(() => order.Validate(), Throws.TypeOf()); } @@ -76,11 +76,9 @@ internal class OrderDataModelTests var workerId = Guid.NewGuid().ToString(); var buyerId = Guid.NewGuid().ToString(); var sum = 10; - var discountType = DiscountType.Certificate; - var discount = 1; var isCancel = true; var dishes = CreateSubDataModel(); - var sale = CreateDataModel(orderId, workerId, buyerId, sum, discountType, discount, isCancel, dishes); + var sale = CreateDataModel(orderId, workerId, buyerId, sum, isCancel, dishes); Assert.That(() => sale.Validate(), Throws.Nothing); Assert.Multiple(() => { @@ -88,14 +86,12 @@ internal class OrderDataModelTests Assert.That(sale.WorkerId, Is.EqualTo(workerId)); Assert.That(sale.BuyerId, Is.EqualTo(buyerId)); Assert.That(sale.Sum, Is.EqualTo(sum)); - Assert.That(sale.DiscountType, Is.EqualTo(discountType)); - Assert.That(sale.Discount, Is.EqualTo(discount)); Assert.That(sale.IsCancel, Is.EqualTo(isCancel)); Assert.That(sale.Dishes, Is.EquivalentTo(dishes)); }); } - private static SaleDataModel CreateDataModel(string? id, string? workerId, string? buyerId, double sum, DiscountType discountType, double discount, bool isCancel, List? dishes) => - new(id, workerId, buyerId, sum, discountType, discount, isCancel, dishes); + private static OrderDataModel CreateDataModel(string? id, string? workerId, string? buyerId, double sum, bool isCancel, List? dishes) => + new(id, workerId, buyerId, sum, isCancel, dishes); private static List CreateSubDataModel() => [new(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 1)]; } \ No newline at end of file