61 lines
1.9 KiB
C#
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);
|
|
}
|
|
}
|