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()); }
/// <summary> /// Converts the provided <see cref="TypeExpressions"/> into an equivilant <see cref="MetaGraphTypes"/> /// array. /// </summary> /// <param name="modifer">The modifer to expand.</param> /// <returns>GraphTypeWrapper[].</returns> public static MetaGraphTypes[] ToTypeWrapperSet(this TypeExpressions modifer) { var list = new List <MetaGraphTypes>(); if (modifer.HasFlag(TypeExpressions.IsNotNullList)) { list.Add(MetaGraphTypes.IsNotNull); } if (modifer.HasFlag(TypeExpressions.IsList)) { list.Add(MetaGraphTypes.IsList); } if (modifer.HasFlag(TypeExpressions.IsNotNull) && (list.Count == 0 || list[list.Count - 1] != MetaGraphTypes.IsNotNull)) { list.Add(MetaGraphTypes.IsNotNull); } return(list.ToArray()); }
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()); }
/// <summary> /// Initializes a new instance of the <see cref="FromGraphQLAttribute"/> class. /// </summary> /// <param name="argumentName">The name of the input argument to extract the value from.</param> /// <param name="typeExpression">The type expression to apply to this value.</param> public FromGraphQLAttribute(string argumentName, TypeExpressions typeExpression) { this.ArgumentName = argumentName?.Trim(); this.TypeExpression = typeExpression; }
/// <summary> /// Initializes a new instance of the <see cref="FromGraphQLAttribute"/> class. /// </summary>/// <param name="typeExpression">The type expression to apply to this value.</param> public FromGraphQLAttribute(TypeExpressions typeExpression) : this(Constants.Routing.PARAMETER_META_NAME, typeExpression) { }
public void ShouldThrowArgumentExceptionWhenInvalidProperty() { Assert.Throws <ArgumentException>(() => TypeExpressions.GetPropertyExpression <TestClass>("ComputerSaysNo")); }
public void ShouldThrowInvalidOperationExceptionWhenInvalidCast() { Assert.Throws <InvalidOperationException>(() => TypeExpressions.GetPropertyExpression <TestClass, DateTime>(nameof(TestClass.StringProp))); }