using e_suite.Database.Core.Extensions; using e_suite.Database.Core.Extensions.Exceptions; using e_suite.Database.Core.UnitTests.Models; using eSuite.Core.Miscellaneous; using NUnit.Framework; namespace e_suite.Database.Core.UnitTests; [TestFixture] public class QueryableExtensionsUnitTests { [Test] public void FindByGeneralIdRef_IdNotFound_ReturnsNull() { //Arrange var items = new List { new() { Id = 1, Guid = new Guid("{F81F58DB-ACB0-404E-B5DB-C480DE3F2016}"), Name = "Test Item" } }; //Act var generalIdRef = new GeneralIdRef { Id = 100 }; var result = items.FindByGeneralIdRef(generalIdRef); //Assert Assert.That(result, Is.Null); } [Test] public void FindByGeneralIdRef_IdFound_ReturnsExpectedValue() { //Arrange var keyId = 1; var keyGuid = new Guid("{F81F58DB-ACB0-404E-B5DB-C480DE3F2016}"); var testItem = new TestCargo() { Id = keyId, Guid = keyGuid, Name = "Test Item" }; var items = new List { testItem }; //Act var generalIdRef = new GeneralIdRef { Id = keyId }; var result = items.FindByGeneralIdRef(generalIdRef); //Assert Assert.That(result, Is.EqualTo(testItem)); } [Test] public void FindByGeneralIdRef_GuidFound_ReturnsExpectedValue() { //Arrange var keyId = 1; var keyGuid = new Guid("{F81F58DB-ACB0-404E-B5DB-C480DE3F2016}"); var testItem = new TestCargo() { Id = keyId, Guid = keyGuid, Name = "Test Item" }; var items = new List { testItem }; //Act var generalIdRef = new GeneralIdRef { Guid = keyGuid }; var result = items.FindByGeneralIdRef(generalIdRef); //Assert Assert.That(result, Is.EqualTo(testItem)); } [Test] public void FindByGeneralIdRef_IdAndGuid_ReturnsExpectedValue() { //Arrange var keyId = 1; var keyGuid = new Guid("{F81F58DB-ACB0-404E-B5DB-C480DE3F2016}"); var testItem = new TestCargo() { Id = keyId, Guid = keyGuid, Name = "Test Item" }; var items = new List { testItem }; //Act var generalIdRef = new GeneralIdRef { Id = keyId, Guid = keyGuid }; var result = items.FindByGeneralIdRef(generalIdRef); //Assert Assert.That(result, Is.EqualTo(testItem)); } [Test] public void FindByGeneralIdRef_WrongIdAndCorrectGuid_ReturnsNullWhenIdDoesNotExist() { //Arrange var keyId = 1; var keyGuid = new Guid("{F81F58DB-ACB0-404E-B5DB-C480DE3F2016}"); var testItem = new TestCargo() { Id = keyId, Guid = keyGuid, Name = "Test Item" }; var items = new List { testItem }; //Act var generalIdRef = new GeneralIdRef { Id = keyId + 1, Guid = keyGuid }; var result = items.FindByGeneralIdRef(generalIdRef); //Assert Assert.That(result, Is.Null); } [Test] public void FindByGeneralIdRef_CorrectIdAndWrongGuid_ThrowsExpectedException() { //Arrange var keyId = 1; var keyGuid = new Guid("{F81F58DB-ACB0-404E-B5DB-C480DE3F2016}"); var wrongGuid = new Guid("{C3BC5BAC-39F9-40B8-A191-0F25CD366FE4}"); var testItem = new TestCargo { Id = keyId, Guid = keyGuid, Name = "Test Item" }; var items = new List { testItem }; //Act and Assert var generalIdRef = new GeneralIdRef { Id = keyId, Guid = wrongGuid }; var result = Assert.Throws(() => { items.FindByGeneralIdRef(generalIdRef); }); Assert.That(result?.Message, Is.EqualTo($"The retrieved guid {keyGuid} does not match the expected guid {wrongGuid}")); } [Test] public void FindById_IdNotFound_ReturnsNull() { //Arrange var items = new List { new() { Id = 1, Guid = new Guid("{F81F58DB-ACB0-404E-B5DB-C480DE3F2016}"), Name = "Test Item" } }; //Act var result = items.FindById(100); //Assert Assert.That(result, Is.Null); } [Test] public void FindById_IdFound_ReturnsExpectedValue() { //Arrange var keyId = 1; var keyGuid = new Guid("{F81F58DB-ACB0-404E-B5DB-C480DE3F2016}"); var testItem = new TestCargo() { Id = keyId, Guid = keyGuid, Name = "Test Item" }; var items = new List { testItem }; //Act var result = items.FindById(keyId); //Assert Assert.That(result, Is.EqualTo(testItem)); } }