2025-02-13 14:18:53 +04:00

53 lines
1.8 KiB
C#

using TwoFromTheCaseContracts.DataModels;
using TwoFromTheCaseContracts.Exceptions;
namespace TwoFromTheCaseTests.DataModelsTests;
[TestFixture]
class WorkHistoryDataModelTests
{
[Test]
public void WorkIdIsNullOrEmptyTest()
{
var work = CreateDataModel(null, 10);
Assert.That(() => work.Validate(), Throws.TypeOf<ValidationException>());
work = CreateDataModel(string.Empty, 10);
Assert.That(() => work.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void WorkIdIsNotGuidTest()
{
var work = CreateDataModel("id", 10);
Assert.That(() => work.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void OldPriceIsLessOrZeroTest()
{
var work = CreateDataModel(Guid.NewGuid().ToString(), 0);
Assert.That(() => work.Validate(), Throws.TypeOf<ValidationException>());
work = CreateDataModel(Guid.NewGuid().ToString(), -10);
Assert.That(() => work.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void AllFieldsIsCorrectTest()
{
var workId = Guid.NewGuid().ToString();
var oldPrice = 10;
var workHistory = CreateDataModel(workId, oldPrice);
Assert.That(() => workHistory.Validate(), Throws.Nothing);
Assert.Multiple(() =>
{
Assert.That(workHistory.WorkId, Is.EqualTo(workId));
Assert.That(workHistory.OldPrice, Is.EqualTo(oldPrice));
Assert.That(workHistory.ChangeDate, Is.LessThan(DateTime.UtcNow));
Assert.That(workHistory.ChangeDate, Is.GreaterThan(DateTime.UtcNow.AddMinutes(-1)));
});
}
private static WorkHistoryDataModel CreateDataModel(string? workId, double oldPrice) =>
new(workId, oldPrice);
}