Backend/e-suite.Database.Core/e-suite.Database.Core.UnitTests/QueryableExtensionsUnitTests.cs
2026-01-20 21:50:10 +00:00

242 lines
5.6 KiB
C#

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<TestCargo>
{
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<TestCargo>
{
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<TestCargo>
{
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<TestCargo>
{
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<TestCargo>
{
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<TestCargo>
{
testItem
};
//Act and Assert
var generalIdRef = new GeneralIdRef
{
Id = keyId,
Guid = wrongGuid
};
var result = Assert.Throws<GuidMismatchException>(() => { 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<TestCargo>
{
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<TestCargo>
{
testItem
};
//Act
var result = items.FindById(keyId);
//Assert
Assert.That(result, Is.EqualTo(testItem));
}
}