WildPlumProject/WildPlumTests/DataModelTests/OrderHistoryDataModelTests.cs

48 lines
1.6 KiB
C#
Raw Normal View History

2025-02-19 09:24:22 +04:00
using WildPlumContracts.DataModels;
using WildPlumContracts.Enums;
using WildPlumContracts.Exceptions;
namespace WildPlumTests.DataModelTests;
[TestFixture]
internal class OrderHistoryDataModelTests
{
[Test]
public void OrderIdIsNullOrEmptyTest()
{
var order = CreateDataModel(null, OrderStatus.InProgress);
Assert.That(() => order.Validate(),
Throws.TypeOf<ValidationException>());
order = CreateDataModel(string.Empty, OrderStatus.InProgress);
Assert.That(() => order.Validate(),
Throws.TypeOf<ValidationException>());
}
[Test]
public void OrderIdIsNotGuidTest()
{
var order = CreateDataModel("id", OrderStatus.InProgress);
Assert.That(() => order.Validate(),
Throws.TypeOf<ValidationException>());
}
[Test]
public void AllFieldsIsCorrectTest()
{
var orderId = Guid.NewGuid().ToString();
var oldStatus = OrderStatus.Pending;
var orderHistory = CreateDataModel(orderId, oldStatus);
Assert.That(() => orderHistory.Validate(), Throws.Nothing);
Assert.Multiple(() =>
{
Assert.That(orderHistory.OrderId, Is.EqualTo(orderId));
Assert.That(orderHistory.OldStatus, Is.EqualTo(oldStatus));
Assert.That(orderHistory.ChangeDate,
Is.LessThan(DateTime.UtcNow));
Assert.That(orderHistory.ChangeDate,
Is.GreaterThan(DateTime.UtcNow.AddMinutes(-1)));
});
}
private static OrderHistoryDataModel CreateDataModel(string? productId,
OrderStatus oldStatus) =>
new(productId, oldStatus);
}