70 lines
2.8 KiB
C#
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);
|
|
}
|