2025-02-13 14:18:53 +04:00

70 lines
2.8 KiB
C#

using TwoFromTheCaseContracts.DataModels;
using TwoFromTheCaseContracts.Enums;
using TwoFromTheCaseContracts.Exceptions;
namespace TwoFromTheCaseTests.DataModelsTests;
[TestFixture]
class PremisesDataModelTests
{
[Test]
public void IdIsNullOrEmptyTest()
{
var premises = CreateDataModel(null, PremisesType.Residential, Guid.NewGuid().ToString(), false);
Assert.That(() => premises.Validate(), Throws.TypeOf<ValidationException>());
premises = CreateDataModel(string.Empty, PremisesType.Residential, Guid.NewGuid().ToString(), false);
Assert.That(() => premises.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void IdIsNotGuidTest()
{
var premises = CreateDataModel("id", PremisesType.Residential, Guid.NewGuid().ToString(), false);
Assert.That(() => premises.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void PremisesTypeIsNoneTest()
{
var premises = CreateDataModel(Guid.NewGuid().ToString(), PremisesType.None, Guid.NewGuid().ToString(), false);
Assert.That(() => premises.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void CustomerIdIsNullOrEmptyTest()
{
var premises = CreateDataModel(Guid.NewGuid().ToString(), PremisesType.Residential, null, false);
Assert.That(() => premises.Validate(), Throws.TypeOf<ValidationException>());
premises = CreateDataModel(Guid.NewGuid().ToString(), PremisesType.Residential, string.Empty, false);
Assert.That(() => premises.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void CustomerIdIsNotGuidTest()
{
var premises = CreateDataModel(Guid.NewGuid().ToString(), PremisesType.Residential, "customerId", false);
Assert.That(() => premises.Validate(), Throws.TypeOf<ValidationException>());
}
[Test]
public void AllFieldsIsCorrectTest()
{
var premisesId = Guid.NewGuid().ToString();
var premisesType = PremisesType.Residential;
var premisesCustomerId = Guid.NewGuid().ToString();
var premisesIsDelete = false;
var premises = CreateDataModel(premisesId, premisesType, premisesCustomerId, premisesIsDelete);
Assert.That(() => premises.Validate(), Throws.Nothing);
Assert.Multiple(() =>
{
Assert.That(premises.Id, Is.EqualTo(premisesId));
Assert.That(premises.PremisesType, Is.EqualTo(premisesType));
Assert.That(premises.CustomerId, Is.EqualTo(premisesCustomerId));
Assert.That(premises.IsDeleted, Is.EqualTo(premisesIsDelete));
});
}
private static PremisesDataModel CreateDataModel(string? id, PremisesType premisesType, string? customerId, bool isDeleted) =>
new(id, premisesType, customerId, isDeleted);
}