(bugfix): fix possible null ref exception
This commit is contained in:
parent
f463862b7c
commit
fd799615f7
@ -10,7 +10,7 @@ public class ExpressionExtensionsTests {
|
|||||||
public void CombineWith_ShouldCombineTwoPredicates() {
|
public void CombineWith_ShouldCombineTwoPredicates() {
|
||||||
// Arrange
|
// Arrange
|
||||||
Expression<Func<TestEntity, bool>> firstPredicate = x => x.Age > 18;
|
Expression<Func<TestEntity, bool>> firstPredicate = x => x.Age > 18;
|
||||||
Expression<Func<TestEntity, bool>> secondPredicate = x => x.Name.StartsWith("A");
|
Expression<Func<TestEntity, bool>> secondPredicate = x => (x.Name ?? "").StartsWith("A");
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
var combinedPredicate = firstPredicate.CombineWith(secondPredicate);
|
var combinedPredicate = firstPredicate.CombineWith(secondPredicate);
|
||||||
@ -25,7 +25,7 @@ public class ExpressionExtensionsTests {
|
|||||||
private class TestEntity {
|
private class TestEntity {
|
||||||
public Guid Id { get; set; }
|
public Guid Id { get; set; }
|
||||||
public int Age { get; set; }
|
public int Age { get; set; }
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -4,17 +4,6 @@ using MaksIT.Core.Webapi.Models;
|
|||||||
namespace MaksIT.Core.Tests.Webapi.Models;
|
namespace MaksIT.Core.Tests.Webapi.Models;
|
||||||
|
|
||||||
public class PagedRequestTests {
|
public class PagedRequestTests {
|
||||||
[Fact]
|
|
||||||
public void BuildFilterExpression_ShouldReturnNull_WhenFilterIsEmpty() {
|
|
||||||
// Arrange
|
|
||||||
var request = new PagedRequest();
|
|
||||||
|
|
||||||
// Act
|
|
||||||
var result = request.BuildFilterExpression<TestEntity>(null);
|
|
||||||
|
|
||||||
// Assert
|
|
||||||
Assert.Null(result);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void BuildFilterExpression_ShouldHandleEqualsOperator() {
|
public void BuildFilterExpression_ShouldHandleEqualsOperator() {
|
||||||
@ -131,6 +120,6 @@ public class PagedRequestTests {
|
|||||||
|
|
||||||
// Helper class for testing purposes
|
// Helper class for testing purposes
|
||||||
public class TestEntity {
|
public class TestEntity {
|
||||||
public string Name { get; set; }
|
public string? Name { get; set; }
|
||||||
public int Age { get; set; }
|
public int Age { get; set; }
|
||||||
}
|
}
|
||||||
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
<!-- NuGet package metadata -->
|
<!-- NuGet package metadata -->
|
||||||
<PackageId>MaksIT.Core</PackageId>
|
<PackageId>MaksIT.Core</PackageId>
|
||||||
<Version>1.1.3</Version>
|
<Version>1.1.4</Version>
|
||||||
<Authors>Maksym Sadovnychyy</Authors>
|
<Authors>Maksym Sadovnychyy</Authors>
|
||||||
<Company>MAKS-IT</Company>
|
<Company>MAKS-IT</Company>
|
||||||
<Product>MaksIT.Core</Product>
|
<Product>MaksIT.Core</Product>
|
||||||
|
|||||||
@ -91,7 +91,8 @@ namespace MaksIT.Core.Webapi.Models {
|
|||||||
expression = Expression.Not(expression);
|
expression = Expression.Not(expression);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Combine the current expression with the previous one using the correct operator
|
// Only combine expressions if the new expression is not null
|
||||||
|
if (expression != null) {
|
||||||
if (combinedExpression == null) {
|
if (combinedExpression == null) {
|
||||||
combinedExpression = expression;
|
combinedExpression = expression;
|
||||||
}
|
}
|
||||||
@ -103,6 +104,7 @@ namespace MaksIT.Core.Webapi.Models {
|
|||||||
: Expression.OrElse(combinedExpression, expression);
|
: Expression.OrElse(combinedExpression, expression);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return combinedExpression != null
|
return combinedExpression != null
|
||||||
? Expression.Lambda<Func<T, bool>>(combinedExpression, parameter)
|
? Expression.Lambda<Func<T, bool>>(combinedExpression, parameter)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user