48 lines
1.6 KiB
C#
48 lines
1.6 KiB
C#
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);
|
|
}
|