using System; using LCU.API.Internal.DocumentIngestor.Utilities; using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Accounts; using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.Tax; using NUnit.Framework; namespace LCU.API.Internal.DocumentIngestorTests.Utilities; public class ToDetailStringExtensionTest { [Test] public void ToDetailString_AccountOwnershipPersonNumberNotZero_FormatsPersonDetail() { var ownership = PersonOwnershipFactory(); var detail = ownership.ToDetailString(); StringAssert.Contains(ownership.PersonNumber.ToString(), detail); StringAssert.Contains(ownership.FirstName, detail); StringAssert.Contains(ownership.MiddleName, detail); StringAssert.Contains(ownership.LastName, detail); } [Test] public void ToDetailString_AccountOwnershipPersonNumberZero_FormatsOrganizationDetail() { var ownership = OrganizationOwnershipFactory(); var detail = ownership.ToDetailString(); StringAssert.Contains(ownership.OrganizationName, detail); StringAssert.Contains(ownership.ByOrgNbr.ToString(), detail); } [Test] public void ToDetailString_PersonTaxIdDataResponse_FormatsPersonDetail() { var ownership = PersonPersonTaxDataFactory(); var detail = ownership.ToDetailString(); StringAssert.Contains(ownership.PersonNumber.ToString(), detail); StringAssert.Contains(ownership.FirstName, detail); StringAssert.Contains(ownership.MiddleName, detail); StringAssert.Contains(ownership.LastName, detail); } [Test] public void ToDetailString_OrganizationTaxIdDataResponse_FormatsOrganizationDetail() { var ownership = OrganizationTaxDataFactory(); var detail = ownership.ToDetailString(); StringAssert.Contains(ownership.Name, detail); StringAssert.Contains(ownership.OrganizationNumber.ToString(), detail); } [Test] public void ToDetailString_EnumerableAccountOwnerships_SpacesBetweenEach() { var ownerships = new[] { PersonOwnershipFactory(), OrganizationOwnershipFactory(), PersonOwnershipFactory(), OrganizationOwnershipFactory() }; var detail = ownerships.ToDetailString(); foreach (var owner in ownerships) { StringAssert.IsMatch($"{owner.ToDetailString()}(; |$)", detail); } } [Test] public void ToDetailString_EnumerablePersonTaxIdDataResponses_SpacesBetweenEach() { var ownerships = new[] { PersonPersonTaxDataFactory(), PersonPersonTaxDataFactory(), PersonPersonTaxDataFactory() }; var detail = ownerships.ToDetailString(); foreach (var owner in ownerships) { StringAssert.IsMatch($"{owner.ToDetailString()}(; |$)", detail); } } [Test] public void ToDetailString_EnumerableOrganizationTaxIdDataResponses_SpacesBetweenEach() { var ownerships = new[] { OrganizationTaxDataFactory(), OrganizationTaxDataFactory(), OrganizationTaxDataFactory() }; var detail = ownerships.ToDetailString(); foreach (var owner in ownerships) { StringAssert.IsMatch($"{owner.ToDetailString()}(; |$)", detail); } } private static AccountOwnership PersonOwnershipFactory() => new() { PersonNumber = DateTime.Now.Millisecond, FirstName = Guid.NewGuid().ToString(), MiddleName = Guid.NewGuid().ToString(), LastName = Guid.NewGuid().ToString() }; private static AccountOwnership OrganizationOwnershipFactory() => new() { PersonNumber = 0, OrganizationName = Guid.NewGuid().ToString(), ByOrgNbr = DateTime.Now.Millisecond }; private static PersonTaxIdDataResponse PersonPersonTaxDataFactory() => new() { PersonNumber = DateTime.Now.Millisecond, FirstName = Guid.NewGuid().ToString(), MiddleName = Guid.NewGuid().ToString(), LastName = Guid.NewGuid().ToString() }; private static OrganizationTaxIdDataResponse OrganizationTaxDataFactory() => new() { Name = Guid.NewGuid().ToString(), OrganizationNumber = DateTime.Now.Millisecond }; }