public void GetComputedPropertyExpressionTest() { var entityParam = Expression.Parameter(typeof(Sales), "e"); var mi = typeof(Sales).GetMethod("DummyString"); var result = ApplyImplementationBase.GetComputedPropertyExpression(typeof(Sales), @"Product/Category/Name", entityParam, mi, null, null); "after creating expression".Then(() => result.Should().NotBeNull()); "After creating expression".Then(() => result.ToString().Should().BeEquivalentTo ("IIF((e.Product == null), null, new Product() {Category = IIF((e.Product.Category == null), null, new Category() {Name = DummyString(e.Product.Category.Name)})})")); }
public void GetPropertyInfoTest() { var result = ApplyImplementationBase.GetPropertyInfo(typeof(Sales), @"Product/Category/Name"); "After creating the property infos".Then(() => result.Count.Should().Be(3)); "First Expression".Then(() => result[0].Name.Should().BeEquivalentTo("Product")); "Second Expression".Then(() => result[1].Name.Should().BeEquivalentTo("Category")); "Last Expression".Then(() => result[2].Name.Should().BeEquivalentTo("Name")); }
public void GetProjectionExpressionsTest() { var entityParam = Expression.Parameter(typeof(Sales), "e"); var projectionExpressions = ApplyImplementationBase.GetProjectionExpressions(@"Product/Category/Name", entityParam); "After creating a projection expression".Then(() => projectionExpressions.Count.Should().Be(3)); "First Expression".Then(() => projectionExpressions[0].ToString().Should().BeEquivalentTo("e.Product")); "Second Expression".Then(() => projectionExpressions[1].ToString().Should().BeEquivalentTo("e.Product.Category")); "Last Expression".Then(() => projectionExpressions[2].ToString().Should().BeEquivalentTo("e.Product.Category.Name")); }