diff --git a/test/System.Linq.Dynamic.Core.Tests/MikArea/Dictionary.cs b/test/System.Linq.Dynamic.Core.Tests/MikArea/Dictionary.cs index c2a387e9..e22ec68c 100644 --- a/test/System.Linq.Dynamic.Core.Tests/MikArea/Dictionary.cs +++ b/test/System.Linq.Dynamic.Core.Tests/MikArea/Dictionary.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Linq.Expressions; using System.Text; using System.Threading.Tasks; using NFluent; @@ -89,5 +90,25 @@ public void Test_ContainsKey_3() Check.That("ZZZ1").IsEqualTo((string)data.First().City); Check.That(3).IsEqualTo(data.Count); } + + [Fact] + public void Test_DynamicIndexCall() + { + { + object CreateDicParameter(string name) => new Dictionary + { + {"Name", new Dictionary {{"FirstName", name }, {"LastName", name + "Test" }}}, + }; + + var parType = new Dictionary().GetType(); + var lambda = DynamicExpressionParser.ParseLambda(new[] { Expression.Parameter(parType, "item") }, typeof(object), "item.Name.FirstName + \"7\" + item.Name.LastName ").Compile(); + + var x1 = lambda.DynamicInvoke(CreateDicParameter("Julio")); + var x2 = lambda.DynamicInvoke(CreateDicParameter("John")); + + Check.That(x1).IsEqualTo("Julio7JulioTest"); + Check.That(x2).IsEqualTo("John7JohnTest"); + } + } } }