public static IEnumerable <object[]> TestData() { var target = new NestValue { Value = 1, Member = new NestValue { Value = 2 }, Members = { new NestValue { Value = 3 }, new NestValue { Value = 4 } } }; yield return(new object[] { target, "Value", 1 }); yield return(new object[] { target, "Member.Value", 2 }); yield return(new object[] { target, "Members[0].Value", 3 }); yield return(new object[] { target, "Member.Value * Members[0].Value", 6 }); }
public void TestTokenFormat() { var format = "Value:{Value} Member:{Member.Value} arrayMember:{Members[0].Value} compute:{Member.Value * Members[0].Value}"; var expect = "Value:1 Member:2 arrayMember:3 compute:6"; var actual = new NestValue { Value = 1, Member = new NestValue { Value = 2 }, Members = { new NestValue { Value = 3 }, new NestValue { Value = 4 } } }.Format(format); Assert.Equal(expect, actual); }
public void TestScriptParser(NestValue target, string script, object expect) => Assert.Equal(expect, script.Parse <NestValue, int>().Invoke(target));