97 lines
3.6 KiB
C#
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);
|
|
}
|
|
}
|