2025-02-17 00:29:50 +04:00

61 lines
1.9 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using TwoFromTheCasketContratcs.DataModels;
using TwoFromTheCasketContratcs.Exceptions;
namespace TwoFromTheCasketTest.DataModelsTest;
[TestFixture]
public class ServiceHistoryDataModelTests
{
[Test]
public void ServiceIdIsNullOrEmptyTest()
{
var serviceHistory = CreateDataModel(string.Empty, 100.0);
Assert.That(() => serviceHistory.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void ServiceIdIsNotGuidTest()
{
var serviceHistory = CreateDataModel("invalid-guid", 100.0);
Assert.That(() => serviceHistory.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void OldPriceIsLessOrEqualToZeroTest()
{
var serviceHistory = CreateDataModel(Guid.NewGuid().ToString(), 0);
Assert.That(() => serviceHistory.Validate(), Throws.TypeOf<ValidationException>());
serviceHistory = CreateDataModel(Guid.NewGuid().ToString(), -50.0);
Assert.That(() => serviceHistory.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void AllFieldsAreCorrectTest()
{
var serviceId = Guid.NewGuid().ToString();
var oldPrice = 100.0;
var serviceHistory = CreateDataModel(serviceId, oldPrice);
Assert.That(() => serviceHistory.Validate(), Throws.Nothing);
Assert.Multiple(() =>
{
Assert.That(serviceHistory.ServiceId, Is.EqualTo(serviceId));
Assert.That(serviceHistory.OldPrice, Is.EqualTo(oldPrice));
Assert.That(serviceHistory.ChangeDate, Is.EqualTo(DateTime.UtcNow).Within(TimeSpan.FromSeconds(1)));
});
}
private static ServiceHistoryDataModel CreateDataModel(string serviceId, double oldPrice)
{
return new ServiceHistoryDataModel(serviceId, oldPrice);
}
}