public void Should_CreatePath_BasicExpression() { var manager = new ExpressionManager(); var expressions = CreateExpressions <ComplexObject>(x => x.Id); var paths = expressions.Select(x => manager.GetPropertyPath(x)).ToList(); CollectionAssert.AreEqual(new[] { ".Id" }, paths); }
public void Should_CreatePath_WithChildrenFirst() { var manager = new ExpressionManager(); var expressions = CreateExpressions <ComplexObjectWithListChildren>( x => x.Children.First().BasicChild.BasicChildId ); var paths = expressions.Select(x => manager.GetPropertyPath(x)).ToList(); CollectionAssert.AreEqual(new[] { ".Children.BasicChild.BasicChildId" }, paths); }
public void Should_CreatePath_WithChildrenRoot() { var manager = new ExpressionManager(); var expressions = CreateExpressions <ComplexObjectWithListChildren>( x => x.Id, x => x.Name, x => x.Children ); var paths = expressions.Select(x => manager.GetPropertyPath(x)).ToList(); CollectionAssert.AreEqual(new[] { ".Id", ".Name", ".Children" }, paths); }
public void Should_IncludeOnly_DeepPath() { var manager = new ExpressionManager(); var expressions = CreateExpressions <DeepObject>( x => x.DeepChildObject.DeepChild2Object.DeepChild3Object.Name ); var paths = expressions.Select(x => manager.GetPropertyPath(x)).ToList(); CollectionAssert.AreEqual(new[] { ".DeepChildObject.DeepChild2Object.DeepChild3Object.Name" }, paths); }
public void Should_CreatePath_WithDeepSubselect() { var manager = new ExpressionManager(); var expressions = CreateExpressions <ComplexObjectWithListChildren>( x => x.Id, x => x.Name, x => x.Children.Select(y => y.BasicChild.BasicChildId), x => x.BasicChild.Children.Select(y => y.BasicChildId), x => x.BasicChild.Children.Select(y => y.Children.Select(z => z.BasicChildName)) ); var paths = expressions.Select(x => manager.GetPropertyPath(x)).ToList(); CollectionAssert.AreEqual(new[] { ".Id", ".Name", ".Children.BasicChild.BasicChildId", ".BasicChild.Children.BasicChildId", ".BasicChild.Children.Children.BasicChildName" }, paths); }