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

97 lines
3.6 KiB
C#

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<ValidationException>());
}
[Test]
public void IdIsNotGuidTest()
{
var service = CreateDataModel("invalid-guid", "bb", ServiceType.Plastering, Guid.NewGuid().ToString(), 100.0, false);
Assert.That(() => service.Validate(), Throws.TypeOf<ValidationException>());
}
[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<ValidationException>());
}
[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<ValidationException>());
}
[Test]
public void MasterIdIsNullOrEmptyTest()
{
var service = CreateDataModel(Guid.NewGuid().ToString(), "bb", ServiceType.Plastering, string.Empty, 100.0, false);
Assert.That(() => service.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void MasterIdIsNotGuidTest()
{
var service = CreateDataModel(Guid.NewGuid().ToString(), "bb", ServiceType.Plastering, "invalid-guid", 100.0, false);
Assert.That(() => service.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void PriceIsLessOrEqualToZeroTest()
{
var service = CreateDataModel(Guid.NewGuid().ToString(), "Haircut", ServiceType.Plastering, Guid.NewGuid().ToString(), 0, false);
Assert.That(() => service.Validate(), Throws.TypeOf<ValidationException>());
service = CreateDataModel(Guid.NewGuid().ToString(), "Haircut", ServiceType.Plastering, Guid.NewGuid().ToString(), -50.0, false);
Assert.That(() => service.Validate(), Throws.TypeOf<ValidationException>());
}
[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);
}
}