96 lines
4.4 KiB
C#
96 lines
4.4 KiB
C#
|
using BitterlyAndExclamationMarkContracts.DataModels;
|
|||
|
using BitterlyAndExclamationMarkContracts.Enums;
|
|||
|
using BitterlyAndExclamationMarkContracts.Exceptions;
|
|||
|
|
|||
|
namespace BitterlyAndExclamationMarkTests.DataModelsTests;
|
|||
|
|
|||
|
[TestFixture]
|
|||
|
internal class OrderDataModelTests
|
|||
|
{
|
|||
|
[Test]
|
|||
|
public void IdIsNullOrEmptyTest()
|
|||
|
{
|
|||
|
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, false, CreateSubDataModel());
|
|||
|
Assert.That(() => order.Validate(), Throws.TypeOf<ValidationException>());
|
|||
|
}
|
|||
|
[Test]
|
|||
|
public void IdIsNotGuidTest()
|
|||
|
{
|
|||
|
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, false, CreateSubDataModel());
|
|||
|
Assert.That(() => order.Validate(), Throws.TypeOf<ValidationException>());
|
|||
|
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(), "workerId", Guid.NewGuid().ToString(),
|
|||
|
10, false, CreateSubDataModel());
|
|||
|
Assert.That(() => order.Validate(), Throws.TypeOf<ValidationException>());
|
|||
|
}
|
|||
|
[Test]
|
|||
|
public void BuyerIdIsNotGuidTest()
|
|||
|
{
|
|||
|
var order = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), "buyerId",
|
|||
|
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, false, CreateSubDataModel());
|
|||
|
Assert.That(() => order.Validate(), Throws.TypeOf<ValidationException>());
|
|||
|
order = CreateDataModel(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), Guid.NewGuid().ToString(),
|
|||
|
-10, false, CreateSubDataModel());
|
|||
|
Assert.That(() => order.Validate(), Throws.TypeOf<ValidationException>());
|
|||
|
}
|
|||
|
[Test]
|
|||
|
public void DishsIsNullOrEmptyTest()
|
|||
|
{
|
|||
|
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, false, []);
|
|||
|
Assert.That(() => order.Validate(), Throws.TypeOf<ValidationException>());
|
|||
|
}
|
|||
|
[Test]
|
|||
|
public void AllFieldsIsCorrectTest()
|
|||
|
{
|
|||
|
var orderId = Guid.NewGuid().ToString();
|
|||
|
var workerId = Guid.NewGuid().ToString();
|
|||
|
var buyerId = Guid.NewGuid().ToString();
|
|||
|
var sum = 10;
|
|||
|
var isCancel = true;
|
|||
|
var dishes = CreateSubDataModel();
|
|||
|
var order = CreateDataModel(orderId, workerId, buyerId, sum, isCancel, dishes);
|
|||
|
Assert.That(() => order.Validate(), Throws.Nothing);
|
|||
|
Assert.Multiple(() =>
|
|||
|
{
|
|||
|
Assert.That(order.Id, Is.EqualTo(orderId));
|
|||
|
Assert.That(order.WorkerId, Is.EqualTo(workerId));
|
|||
|
Assert.That(order.BuyerId, Is.EqualTo(buyerId));
|
|||
|
Assert.That(order.Sum, Is.EqualTo(sum));
|
|||
|
Assert.That(order.IsCancel, Is.EqualTo(isCancel));
|
|||
|
Assert.That(order.Dishes, Is.EquivalentTo(dishes));
|
|||
|
});
|
|||
|
}
|
|||
|
private static OrderDataModel CreateDataModel(string? id, string? workerId, string? buyerId, double sum,
|
|||
|
bool isCancel, List<OrderDishDataModel>? dishes) =>
|
|||
|
new(id, workerId, buyerId, sum, isCancel, dishes);
|
|||
|
private static List<OrderDishDataModel> CreateSubDataModel() => [new(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), 1)];
|
|||
|
}
|