public void ShouldReturnExpectedForIntProp() { var result = TypeExpressions.GetPropertyExpression <TestClass>(nameof(TestClass.IntProp)); Expression <Func <TestClass, object> > expected = x => x.IntProp; Assert.Equal(expected.ToString(), result.ToString()); }
public void ShouldReturnExpectedWhenCastingDecimalProp() { var result = TypeExpressions.GetPropertyExpression <TestClass, double>(nameof(TestClass.DecimalProp)); Expression <Func <TestClass, double> > expected = x => (double)x.DecimalProp; Assert.Equal(expected.ToString(), result.ToString()); }
public void ExampleUsageShouldWork() { var predicate = Predicate.Of <int>(a => a > 10); var propertyExpression = TypeExpressions.GetPropertyExpression <TestClass, int>(nameof(TestClass.IntProperty2)); var result = predicate.RemapTo(propertyExpression); Assert.Equal("x => (x.IntProperty2 > 10)", result.ToString()); }
public void DocumentationExampleShouldWork() { var data = new[] { new MyEntity { Name = "b" }, new MyEntity { Name = "c" }, new MyEntity { Name = "a" } }; var orderBy = nameof(MyEntity.Name); var _entities = data.AsQueryable(); var orderByExpression = TypeExpressions.GetPropertyExpression <MyEntity>(orderBy); var orderedData = _entities.OrderBy(orderByExpression); Assert.Equal(new[] { "a", "b", "c" }, orderedData.Select(x => x.Name).ToArray()); }
public void ShouldThrowArgumentExceptionWhenInvalidProperty() { Assert.Throws <ArgumentException>(() => TypeExpressions.GetPropertyExpression <TestClass>("ComputerSaysNo")); }
public void ShouldThrowInvalidOperationExceptionWhenInvalidCast() { Assert.Throws <InvalidOperationException>(() => TypeExpressions.GetPropertyExpression <TestClass, DateTime>(nameof(TestClass.StringProp))); }