57 lines
2.1 KiB
C#

using SoftwareInstallationContracts.DataModels;
using SoftwareInstallationContracts.Exceptions;
namespace SoftwareInstallationTests.DataModelsTests;
[TestFixture]
internal class CompanyDataModelTests
{
private CompanyDataModel company;
[Test]
public void IdIsNullEmptyTest()
{
company = CreateDataModel(null, "name");
Assert.That(() => company.Validate(), Throws.TypeOf<ValidationFieldException>());
company = CreateDataModel(string.Empty, "name");
Assert.That(() => company.Validate(), Throws.TypeOf<ValidationFieldException>());
}
[Test]
public void IdIsNotGuidTest()
{
company = CreateDataModel("id", "name");
Assert.That(() => company.Validate(), Throws.TypeOf<ValidationFieldException>());
}
[Test]
public void companyNameIsNullOrEmptyTest()
{
company = CreateDataModel(Guid.NewGuid().ToString(), null);
Assert.That(() => company.Validate(), Throws.TypeOf<ValidationFieldException>());
company = CreateDataModel(Guid.NewGuid().ToString(), string.Empty);
Assert.That(() => company.Validate(), Throws.TypeOf<ValidationFieldException>());
}
[Test]
public void AllFieldsIsCorrectTest()
{
string companyId = Guid.NewGuid().ToString();
string companyName = "name";
string prevcompanyName = "prevcompanyName";
string prevPrevcompanyName = "prevPrevcompanyName";
company = CreateDataModel(companyId, companyName, prevcompanyName, prevPrevcompanyName);
Assert.That(() => company.Validate(), Throws.Nothing);
Assert.Multiple(() =>
{
Assert.That(company.Id, Is.EqualTo(companyId));
Assert.That(company.CompanyName, Is.EqualTo(companyName));
Assert.That(company.PrevCompanyName, Is.EqualTo(prevcompanyName));
Assert.That(company.PrevPrevCompanyName, Is.EqualTo(prevPrevcompanyName));
});
}
private static CompanyDataModel CreateDataModel(string? id, string? companyName, string? prevcompanyName = null,
string? prevPrevcompanyName = null) => new(id, companyName, prevcompanyName, prevPrevcompanyName);
}