public void BindingEvaluateVisitor_PropertyGet() { var target = CreateTestObject(); var parser = new BindingParser(); var eval = new BindingEvaluateVisitor(); // arrayIndex on array var binding = (BindingMarkup)parser.ParseExpression("Child"); Assert.AreEqual(target.Child, eval.Visit(binding.Path, target)); }
public void BindingEvaluateVisitor_IndexerOnIList() { var target = CreateTestObject(); var parser = new BindingParser(); var eval = new BindingEvaluateVisitor(); // property.arrayIndex on List var binding = (BindingMarkup)parser.ParseExpression("Child.ListOfIntegers[0]"); Assert.AreEqual(1, eval.Visit(binding.Path, target)); }
public void BindingEvaluateVisitor_IndexerOnly() { var target = CreateTestObject(); var parser = new BindingParser(); var eval = new BindingEvaluateVisitor(); // arrayIndex on array var binding = (BindingMarkup)parser.ParseExpression("[1]"); Assert.AreEqual(2, eval.Visit(binding.Path, target.Child.ArrayOfIntegers)); }
public void BindingEvaluateVisitor_IndexerOnIEnumerable() { var target = CreateTestObject(); var parser = new BindingParser(); var eval = new BindingEvaluateVisitor(); // property.arrayIndex on IEnumerable var binding = (BindingMarkup)parser.ParseExpression("Child.EnumerableOfValues[1].Value"); Assert.AreEqual("b", eval.Visit(binding.Path, target)); }
public object Evaluate(object context) { var visitor = new BindingEvaluateVisitor(); return visitor.Visit(this, context); }