using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using TwoFromTheCasketContratcs.DataModels; using TwoFromTheCasketContratcs.Enums; using TwoFromTheCasketContratcs.Exceptions; namespace TwoFromTheCasketTest.DataModelsTest; [TestFixture] public class ServiceDataModelTests { [Test] public void IdIsNullOrEmptyTest() { var service = CreateDataModel(string.Empty, "bb", ServiceType.Plastering, Guid.NewGuid().ToString(), 100.0, false); Assert.That(() => service.Validate(), Throws.TypeOf()); } [Test] public void IdIsNotGuidTest() { var service = CreateDataModel("invalid-guid", "bb", ServiceType.Plastering, Guid.NewGuid().ToString(), 100.0, false); Assert.That(() => service.Validate(), Throws.TypeOf()); } [Test] public void ServiceNameIsNullOrEmptyTest() { var service = CreateDataModel(Guid.NewGuid().ToString(), string.Empty, ServiceType.Plastering, Guid.NewGuid().ToString(), 100.0, false); Assert.That(() => service.Validate(), Throws.TypeOf()); } [Test] public void ServiceTypeIsNoneTest() { var service = CreateDataModel(Guid.NewGuid().ToString(), "bb", ServiceType.None, Guid.NewGuid().ToString(), 100.0, false); Assert.That(() => service.Validate(), Throws.TypeOf()); } [Test] public void MasterIdIsNullOrEmptyTest() { var service = CreateDataModel(Guid.NewGuid().ToString(), "bb", ServiceType.Plastering, string.Empty, 100.0, false); Assert.That(() => service.Validate(), Throws.TypeOf()); } [Test] public void MasterIdIsNotGuidTest() { var service = CreateDataModel(Guid.NewGuid().ToString(), "bb", ServiceType.Plastering, "invalid-guid", 100.0, false); Assert.That(() => service.Validate(), Throws.TypeOf()); } [Test] public void PriceIsLessOrEqualToZeroTest() { var service = CreateDataModel(Guid.NewGuid().ToString(), "Haircut", ServiceType.Plastering, Guid.NewGuid().ToString(), 0, false); Assert.That(() => service.Validate(), Throws.TypeOf()); service = CreateDataModel(Guid.NewGuid().ToString(), "Haircut", ServiceType.Plastering, Guid.NewGuid().ToString(), -50.0, false); Assert.That(() => service.Validate(), Throws.TypeOf()); } [Test] public void AllFieldsAreCorrectTest() { var id = Guid.NewGuid().ToString(); var serviceName = "Haircut"; var serviceType = ServiceType.Plastering; var masterId = Guid.NewGuid().ToString(); var price = 100.0; var isDeleted = false; var service = CreateDataModel(id, serviceName, serviceType, masterId, price, isDeleted); Assert.That(() => service.Validate(), Throws.Nothing); Assert.Multiple(() => { Assert.That(service.Id, Is.EqualTo(id)); Assert.That(service.ServiceName, Is.EqualTo(serviceName)); Assert.That(service.ServiceType, Is.EqualTo(serviceType)); Assert.That(service.MasterId, Is.EqualTo(masterId)); Assert.That(service.Price, Is.EqualTo(price)); Assert.That(service.IsDeleted, Is.EqualTo(isDeleted)); }); } private static ServiceDataModel CreateDataModel(string id, string serviceName, ServiceType serviceType, string masterId, double price, bool isDeleted) { return new ServiceDataModel(id, serviceName, serviceType, masterId, price, isDeleted); } }