using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; using SoftwareInstallationContracts.DataModels; using SoftwareInstallationContracts.Exceptions; namespace SoftwareInstallationTests.DataModelsTests; internal class CompanyDataModelTests { private CompanyDataModel company; [Test] public void IdIsNullEmptyTest() { company = CreateDataModel(null, "name"); Assert.That(() => company.Validate(), Throws.TypeOf()); company = CreateDataModel(string.Empty, "name"); Assert.That(() => company.Validate(), Throws.TypeOf()); } [Test] public void IdIsNotGuidTest() { company = CreateDataModel("id", "name"); Assert.That(() => company.Validate(), Throws.TypeOf()); } [Test] public void companyNameIsNullOrEmptyTest() { company = CreateDataModel(Guid.NewGuid().ToString(), null); Assert.That(() => company.Validate(), Throws.TypeOf()); company = CreateDataModel(Guid.NewGuid().ToString(), string.Empty); Assert.That(() => company.Validate(), Throws.TypeOf()); } [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); }