Начало

This commit is contained in:
Adelina888 2025-02-19 20:48:02 +04:00
parent e6a053624b
commit 195fd57378
5 changed files with 76 additions and 15 deletions

View File

@ -9,13 +9,15 @@ using System.Threading.Tasks;
namespace PipingHotContrast.DataModels;
public class OrderDataModel(string id, string workerId, string? restaurantId, double sum, List<OrderProductDataModel> products):IValidation
public class OrderDataModel(string id, string workerId, string? restaurantId, double sum, bool isCancel, List<OrderProductDataModel> products):IValidation
{
public string Id { get; private set; } = id;
public string WorkerId { get; private set; } = workerId;
public string? RestaurantId { get; private set; } = restaurantId;
public DateTime OrderDate { get; private set; } = DateTime.UtcNow;
public double Sum { get; private set; } = sum;
public bool IsCancel { get; private set; } = isCancel;
public List<OrderProductDataModel> Products { get; private set; } = products;
public void Validate()

View File

@ -0,0 +1,20 @@
using PipingHotContrast.DataModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PipingHotContrast.StoragesContracts;
public interface IPostStorageContract
{
List<PostDataModel> GetList(bool onlyActual = true);
List<PostDataModel> GetPostWithHistory(string postId);
PostDataModel? GetElementById(int id);
PostDataModel? GetElementByName(string name);
void AddElement(PostDataModel postDataModel);
void UpdElement(PostDataModel postDataModel);
void DelElement(string id);
void ResElement(string id);
}

View File

@ -0,0 +1,18 @@
using PipingHotContrast.DataModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PipingHotContrast.StoragesContracts;
public interface IProductStorageContract
{
List<ProductDataModel> GetList(bool onlyActive = true, string? restaurantId = null);
List<ProductHistoryDataModel> GetHistoryByProductId(string productId);
ProductDataModel? GetElementById(string id);
ProductDataModel? GetElementByName(string name);
void AddElement(ProductDataModel productDataModel);
void UpdElement(ProductDataModel productDataModel);
}

View File

@ -0,0 +1,19 @@
using PipingHotContrast.DataModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PipingHotContrast.StoragesContracts;
public interface IRestaurantStorageContract
{
List<RestaurantDataModel> GetList();
RestaurantDataModel? GetElementById(string id);
RestaurantDataModel? GetElementByName(string name);
RestaurantDataModel? GetElementByOldName(string name);
void AddElement(RestaurantDataModel restaurantDataModel);
void UpdElement(RestaurantDataModel restaurantDataModel);
void DelElement(string id);
}

View File

@ -14,57 +14,57 @@ internal class OrderDataModelTests
[Test]
public void IdIsNullOrEmptyTest()
{
var order = CreateDataModel(null, Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, CreateSubDataModel());
var order = CreateDataModel(null, Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, false, CreateSubDataModel());
Assert.That(() => order.Validate(), Throws.TypeOf<ValidationException>());
order = CreateDataModel(string.Empty, Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, CreateSubDataModel());
order = CreateDataModel(string.Empty, Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, false, CreateSubDataModel());
Assert.That(() => order.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void IdIsNotGuidTest()
{
var order = CreateDataModel("id", Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, CreateSubDataModel());
var order = CreateDataModel("id", Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, false, CreateSubDataModel());
Assert.That(() => order.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void WorkerIdIsNullOrEmptyTest()
{
var order = CreateDataModel(Guid.NewGuid().ToString(), null, Guid.NewGuid().ToString(), 10, CreateSubDataModel());
var order = CreateDataModel(Guid.NewGuid().ToString(), null, Guid.NewGuid().ToString(), 10, false, CreateSubDataModel());
Assert.That(() => order.Validate(), Throws.TypeOf<ValidationException>());
order = CreateDataModel(Guid.NewGuid().ToString(), string.Empty, Guid.NewGuid().ToString(), 10, CreateSubDataModel());
order = CreateDataModel(Guid.NewGuid().ToString(), string.Empty, Guid.NewGuid().ToString(), 10, false, CreateSubDataModel());
Assert.That(() => order.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void WorkerIdIsNotGuidTest()
{
var order = CreateDataModel(Guid.NewGuid().ToString(), "employeeId", Guid.NewGuid().ToString(), 10, CreateSubDataModel());
var order = CreateDataModel(Guid.NewGuid().ToString(), "employeeId", Guid.NewGuid().ToString(), 10, false, CreateSubDataModel());
Assert.That(() => order.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void RestaurantIdIsNotGuidTest()
{
var order = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), "restaurantId", 10, CreateSubDataModel());
var order = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), "restaurantId", 10, false, CreateSubDataModel());
Assert.That(() => order.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void SumIsLessOrZeroTest()
{
var order = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 0, CreateSubDataModel());
var order = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 0, false, CreateSubDataModel());
Assert.That(() => order.Validate(), Throws.TypeOf<ValidationException>());
order = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), -10, CreateSubDataModel());
order = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), -10, false, CreateSubDataModel());
Assert.That(() => order.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void ProductsIsNullOrEmptyTest()
{
var order = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, null);
var order = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, false, null);
Assert.That(() => order.Validate(), Throws.TypeOf<ValidationException>());
order = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, []);
order = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 10, false,[]);
Assert.That(() => order.Validate(), Throws.TypeOf<ValidationException>());
}
@ -75,8 +75,9 @@ internal class OrderDataModelTests
var workerId = Guid.NewGuid().ToString();
var restaurantId = Guid.NewGuid().ToString();
var sum = 10;
var isCancel = true;
var products = CreateSubDataModel();
var order = CreateDataModel(orderId, workerId, restaurantId, sum, products);
var order = CreateDataModel(orderId, workerId, restaurantId, sum, isCancel, products);
Assert.That(() => order.Validate(), Throws.Nothing);
Assert.Multiple(() =>
{
@ -84,12 +85,13 @@ internal class OrderDataModelTests
Assert.That(order.WorkerId, Is.EqualTo(workerId));
Assert.That(order.RestaurantId, Is.EqualTo(restaurantId));
Assert.That(order.Sum, Is.EqualTo(sum));
Assert.That(order.IsCancel, Is.EqualTo(isCancel));
Assert.That(order.Products, Is.EquivalentTo(products));
});
}
private static OrderDataModel CreateDataModel(string? id, string? workerId, string? restaurantId, double sum, List<OrderProductDataModel>? products) =>
new(id, workerId, restaurantId, sum, products);
private static OrderDataModel CreateDataModel(string? id, string? workerId, string? restaurantId, double sum, bool isCancel, List<OrderProductDataModel>? products) =>
new(id, workerId, restaurantId, sum, isCancel, products);
private static List<OrderProductDataModel> CreateSubDataModel()
=> [new(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 1)];