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()); } [Test] public void ServiceIdIsNotGuidTest() { var serviceHistory = CreateDataModel("invalid-guid", 100.0); Assert.That(() => serviceHistory.Validate(), Throws.TypeOf()); } [Test] public void OldPriceIsLessOrEqualToZeroTest() { var serviceHistory = CreateDataModel(Guid.NewGuid().ToString(), 0); Assert.That(() => serviceHistory.Validate(), Throws.TypeOf()); serviceHistory = CreateDataModel(Guid.NewGuid().ToString(), -50.0); Assert.That(() => serviceHistory.Validate(), Throws.TypeOf()); } [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); } }