Added configurators
All checks were successful
HopFrame CI / build (push) Successful in 2m10s
HopFrame CI / test (push) Successful in 1m27s

This commit is contained in:
2026-02-22 19:32:33 +01:00
parent 79ed400185
commit b2a029d50b
40 changed files with 1837 additions and 1 deletions

View File

@@ -0,0 +1,44 @@
using System.Linq.Expressions;
using HopFrame.Core.Helpers;
namespace HopFrame.Tests.Core.Helpers;
public class ExpressionHelperTests {
[Fact]
public void GetPropertyInfo_ReturnsPropertyInfo_WhenExpressionIsValid() {
Expression<Func<TestModel, int>> expr = x => x.Id;
var prop = ExpressionHelper.GetPropertyInfo(expr);
Assert.Equal(nameof(TestModel.Id), prop.Name);
Assert.Equal(typeof(int), prop.PropertyType);
}
[Fact]
public void GetPropertyInfo_Throws_WhenExpressionRefersToMethod() {
Expression<Func<TestModel, int>> expr = x => x.Method();
var ex = Assert.Throws<ArgumentException>(() => ExpressionHelper.GetPropertyInfo(expr));
Assert.Contains("refers to a method", ex.Message);
}
[Fact]
public void GetPropertyInfo_Throws_WhenExpressionRefersToField() {
Expression<Func<TestModel, int>> expr = x => x.FieldBacking;
var ex = Assert.Throws<ArgumentException>(() => ExpressionHelper.GetPropertyInfo(expr));
Assert.Contains("refers to a field", ex.Message);
}
[Fact]
public void GetPropertyInfo_Throws_WhenExpressionBodyIsNotMemberExpression() {
Expression<Func<TestModel, int>> expr = x => 5;
var ex = Assert.Throws<ArgumentException>(() => ExpressionHelper.GetPropertyInfo(expr));
Assert.Contains("refers to a method, not a property", ex.Message);
}
}