public void UpdateValueOutOfVisitorTest() { var act = new NiceAct() { Name = "Hu", Age = 22, Country = Country.China, Birthday = DateTime.Today }; var v = act.ToVisitor(); Assert.Equal("Hu", v.GetValue <string>("Name")); Assert.Equal(22, v.GetValue <int>("Age")); Assert.Equal(Country.China, v.GetValue <Country>("Country")); Assert.Equal(DateTime.Today, v.GetValue <DateTime>("Birthday")); Assert.False(v.GetValue <bool>("IsValid")); act.Name = "Du"; act.Age = 55; act.Country = Country.USA; act.Birthday = DateTime.Today.AddDays(-1); act.IsValid = true; Assert.Equal("Du", v.GetValue <string>("Name")); Assert.Equal(55, v.GetValue <int>("Age")); Assert.Equal(Country.USA, v.GetValue <Country>("Country")); Assert.Equal(DateTime.Today.AddDays(-1), v.GetValue <DateTime>("Birthday")); Assert.True(v.GetValue <bool>("IsValid")); }
public void DirectInstanceWithValueApiValidTest() { var act = new NiceAct() { Name = "Hu", Age = 22, Country = Country.China, Birthday = DateTime.Today }; var type = typeof(NiceAct); var v = LeoVisitorFactory.Create(type, act); var context = v.ValidationEntry; Assert.NotNull(context); context.ForMember("Name", c => c.NotEmpty().MinLength(4).MaxLength(15)); var r1 = v.Verify(); Assert.False(r1.IsValid); Assert.Single(r1.Errors); Assert.Single(r1.Errors[0].Details); v["Name"] = "Hulu"; //4 var r2 = v.Verify(); Assert.True(r2.IsValid); v["Name"] = "HuluWayaJavaPojoNovaLomo"; //16,greater than 15 var r3 = v.Verify(); Assert.False(r3.IsValid); Assert.Single(r3.Errors); Assert.Single(r3.Errors[0].Details); v["Name"] = ""; //0 var r4 = v.Verify(); Assert.False(r4.IsValid); Assert.Single(r4.Errors); Assert.Equal(2, r4.Errors[0].Details.Count); v["Name"] = null; //nil var r5 = v.Verify(); Assert.False(r5.IsValid); Assert.Single(r5.Errors); Assert.Equal(2, r5.Errors[0].Details.Count); }
public void DirectInstanceWithStrategyValidTest() { var act = new NiceAct() { Name = "Hu", //2 Age = 22, Country = Country.China, Birthday = DateTime.Today }; var type = typeof(NiceAct); var v = LeoVisitorFactory.Create(type, act); var context = v.ValidationEntry; Assert.NotNull(context); context.SetStrategy <NormalNiceActValidationStrategy>(); var r1 = v.Verify(); Assert.False(r1.IsValid); Assert.Single(r1.Errors); Assert.Single(r1.Errors[0].Details); v["Name"] = "Hulu"; //4 var r2 = v.Verify(); Assert.True(r2.IsValid); v["Name"] = "HuluWayaJavaPojoNovaLomo"; //16,greater than 15 var r3 = v.Verify(); Assert.False(r3.IsValid); Assert.Single(r3.Errors); Assert.Single(r3.Errors[0].Details); v["Name"] = ""; //0 var r4 = v.Verify(); Assert.False(r4.IsValid); Assert.Single(r4.Errors); Assert.Equal(2, r4.Errors[0].Details.Count); v["Name"] = null; //nil var r5 = v.Verify(); Assert.False(r5.IsValid); Assert.Single(r5.Errors); Assert.Equal(2, r5.Errors[0].Details.Count); }
public void DirectInstanceSelectTest() { var act = new NiceAct() { Name = "Hu", Age = 22, Country = Country.China, Birthday = DateTime.Today }; var type = typeof(NiceAct); var v = LeoVisitorFactory.Create(type, act); var z0 = v.Select((s, o) => s); var z1 = v.Select((s, o, m) => s); var z2 = v.Select(c => c.Name); var z3 = v.Select <(string, int)>(c => (c.Name, c.Index)); var z4 = v.Select(c => new { c.Name, c.Value, c.Index }); Assert.NotNull(z0); Assert.NotNull(z1); Assert.NotNull(z2); Assert.NotNull(z3); Assert.NotNull(z4); var l0 = z0.FireAndReturn(); var l1 = z1.FireAndReturn(); var l2 = z2.FireAndReturn(); var l3 = z3.FireAndReturn(); var l4 = z4.FireAndReturn(); Assert.Equal(5, l0.Count()); Assert.Equal(5, l1.Count()); Assert.Equal(5, l2.Count()); Assert.Equal(5, l3.Count()); Assert.Equal(5, l4.Count()); var f0 = l0.First(); var f1 = l1.First(); var f2 = l2.First(); var f3 = l3.First(); var f4 = l4.First(); Assert.Equal("Name", f0); Assert.Equal("Name", f1); Assert.Equal("Name", f2); Assert.Equal("Name", f3.Item1); Assert.Equal(0, f3.Item2); Assert.Equal("Name", f4.Name); Assert.Equal("Hu", f4.Value); Assert.Equal(0, f4.Index); }
public void GenericInstanceWithValueApiValidTest() { var act = new NiceAct() { Name = "Hulu", Age = 22, Country = Country.China, Birthday = DateTime.Today }; var v = ObjectVisitor.Create <NiceAct>(act); var context = v.VerifiableEntry; Assert.NotNull(context); context.ForMember(x => x.Name, c => c.NotEmpty().MinLength(4).MaxLength(15)); var r1 = v.Verify(); Assert.True(r1.IsValid); v.VerifiableEntry .ForMember("Name", c => c.Empty().OverwriteRule()); var r2 = v.Verify(); Assert.False(r2.IsValid); Assert.Single(r2.Errors); Assert.Single(r2.Errors[0].Details); v["Name"] = ""; var r3 = v.Verify(); Assert.True(r3.IsValid); v["Name"] = null; var r4 = v.Verify(); Assert.True(r4.IsValid); }
public void DirectInstanceLoopTest() { var act = new NiceAct() { Name = "Hu", Age = 22, Country = Country.China, Birthday = DateTime.Today }; var type = typeof(NiceAct); var v = ObjectVisitor.Create(type, act); string s0 = "", s1 = "", s2 = ""; int i2 = 0; var ss = "NameAgeBirthdayCountryIsValid"; var ii = 0 + 1 + 2 + 3 + 4; var l0 = v.ForEach((s, o) => { s0 += s; }); var l1 = v.ForEach((s, o, m) => { s1 += s; }); var l2 = v.ForEach(c => { s2 += c.Name; i2 += c.Index; }); Assert.Equal("", s0); Assert.Equal("", s1); Assert.Equal("", s2); Assert.Equal(0, i2); l0.Fire(); l1.Fire(); l2.Fire(); Assert.Equal(ss, s0); Assert.Equal(ss, s1); Assert.Equal(ss, s2); Assert.Equal(ii, i2); l2.Fire(); Assert.Equal($"{ss}{ss}", s2); Assert.Equal(ii + ii, i2); }
public void DirectInstanceWithValueApiValidTest() { var act = new NiceAct() { Name = "Hulu", Age = 22, Country = Country.China, Birthday = DateTime.Today }; var type = typeof(NiceAct); var v = LeoVisitorFactory.Create(type, act); v.ValidationEntry .ForMember("Name", c => c.NotEmpty().MinLength(4).MaxLength(15)); var r1 = v.Verify(); Assert.True(r1.IsValid); v.ValidationEntry .ForMember("Name", c => c.Empty().OverwriteRule()); var r2 = v.Verify(); Assert.False(r2.IsValid); Assert.Single(r2.Errors); Assert.Single(r2.Errors[0].Details); v["Name"] = ""; var r3 = v.Verify(); Assert.True(r3.IsValid); v["Name"] = null; var r4 = v.Verify(); Assert.True(r4.IsValid); }
public void FluentGetterTest() { var type = typeof(NiceAct); var act = new NiceAct() { Name = "Hu", Age = 22, Country = Country.China, Birthday = DateTime.Today }; var d = new Dictionary <string, object>(); d["Name"] = "Ax"; d["Age"] = 10086; d["Country"] = Country.China; d["Birthday"] = DateTime.Today.AddDays(10); d["IsValid"] = true; var g1 = ObjectGetter.Type(type).Instance(act); var g2 = ObjectGetter.Type(type).InitialValues(d); var g3 = ObjectGetter.Type <NiceAct>().Instance(act); var g4 = ObjectGetter.Type <NiceAct>().InitialValues(d); var g5 = ObjectGetter.Type(type).Value("Name"); var g6 = ObjectGetter.Type <NiceAct>().Value("Name"); var g7 = ObjectGetter.Type <NiceAct>().Value(t => t.Name); var g8 = ObjectGetter.Type <NiceAct>().Value <string>(t => t.Name); Assert.Equal("Hu", g1.GetValue <string>("Name")); Assert.Equal("Ax", g2.GetValue <string>("Name")); Assert.Equal("Hu", g3.GetValue <string>("Name")); Assert.Equal("Ax", g4.GetValue <string>("Name")); Assert.Equal("Hu", g5.Instance(act).Value); Assert.Equal("Hu", g6.Instance(act).Value); Assert.Equal("Hu", g7.Instance(act).Value); Assert.Equal("Hu", g8.Instance(act).Value); }
public void GenericInstanceTest() { var act = new NiceAct() { Name = "Hu", Age = 22, Country = Country.China, Birthday = DateTime.Today }; var v = LeoVisitorFactory.Create <NiceAct>(act); Assert.False(v.IsStatic); Assert.Equal(typeof(NiceAct), v.SourceType); Assert.Equal(AlgorithmKind.Precision, v.AlgorithmKind); Assert.Equal("Hu", v.GetValue <string>("Name")); Assert.Equal(22, v.GetValue <int>("Age")); Assert.Equal(Country.China, v.GetValue <Country>("Country")); Assert.Equal(DateTime.Today, v.GetValue <DateTime>("Birthday")); Assert.False(v.GetValue <bool>("IsValid")); v.SetValue("Name", "Du"); v.SetValue("Age", 55); v.SetValue("Country", Country.USA); v.SetValue("Birthday", DateTime.Today.AddDays(-1)); v.SetValue("IsValid", true); Assert.Equal("Du", v.GetValue <string>("Name")); Assert.Equal(55, v.GetValue <int>("Age")); Assert.Equal(Country.USA, v.GetValue <Country>("Country")); Assert.Equal(DateTime.Today.AddDays(-1), v.GetValue <DateTime>("Birthday")); Assert.True(v.GetValue <bool>("IsValid")); v["Name"] = "Au"; v["Age"] = 77; v["Country"] = Country.China; v["Birthday"] = DateTime.Today.AddDays(1); v["IsValid"] = false; Assert.Equal("Au", v.GetValue <string>("Name")); Assert.Equal(77, v.GetValue <int>("Age")); Assert.Equal(Country.China, v.GetValue <Country>("Country")); Assert.Equal(DateTime.Today.AddDays(1), v.GetValue <DateTime>("Birthday")); Assert.False(v.GetValue <bool>("IsValid")); v.SetValue <NiceAct>(x => x.Name, "Zu"); v.SetValue <NiceAct>(x => x.Age, 99); v.SetValue <NiceAct>(x => x.Country, Country.USA); v.SetValue <NiceAct>(x => x.Birthday, DateTime.Today.AddDays(2)); v.SetValue <NiceAct>(x => x.IsValid, true); Assert.Equal("Zu", v.GetValue <NiceAct>(x => x.Name)); Assert.Equal(99, v.GetValue <NiceAct>(x => x.Age)); Assert.Equal(Country.USA, v.GetValue <NiceAct>(x => x.Country)); Assert.Equal(DateTime.Today.AddDays(2), v.GetValue <NiceAct>(x => x.Birthday)); Assert.True((bool)v.GetValue <NiceAct>(x => x.IsValid)); v.SetValue <NiceAct, string>(x => x.Name, "Xu"); v.SetValue <NiceAct, int>(x => x.Age, 199); v.SetValue <NiceAct, Country>(x => x.Country, Country.China); v.SetValue <NiceAct, DateTime>(x => x.Birthday, DateTime.Today.AddDays(-2)); v.SetValue <NiceAct, bool>(x => x.IsValid, false); Assert.Equal("Xu", v.GetValue <NiceAct, string>(x => x.Name)); Assert.Equal(199, v.GetValue <NiceAct, int>(x => x.Age)); Assert.Equal(Country.China, v.GetValue <NiceAct, Country>(x => x.Country)); Assert.Equal(DateTime.Today.AddDays(-2), v.GetValue <NiceAct, DateTime>(x => x.Birthday)); Assert.False(v.GetValue <NiceAct, bool>(x => x.IsValid)); v.SetValue <string>(x => x.Name, "Lu"); v.SetValue <int>(x => x.Age, 11); v.SetValue <Country>(x => x.Country, Country.USA); v.SetValue <DateTime>(x => x.Birthday, DateTime.Today); v.SetValue <bool>(x => x.IsValid, true); Assert.Equal("Lu", v.GetValue(x => x.Name)); Assert.Equal(11, v.GetValue(x => x.Age)); Assert.Equal(Country.USA, v.GetValue(x => x.Country)); Assert.Equal(DateTime.Today, v.GetValue(x => x.Birthday)); Assert.True(v.GetValue(x => x.IsValid)); var d = v.ToDictionary(); Assert.Equal("Lu", d["Name"]); Assert.Equal(11, d["Age"]); Assert.Equal(Country.USA, d["Country"]); Assert.Equal(DateTime.Today, d["Birthday"]); Assert.True((bool)d["IsValid"]); d["Name"] = "Ax"; d["Age"] = 10086; d["Country"] = Country.China; d["Birthday"] = DateTime.Today.AddDays(10); d["IsValid"] = true; v.SetValue(d); Assert.Equal("Ax", d["Name"]); Assert.Equal(10086, d["Age"]); Assert.Equal(Country.China, d["Country"]); Assert.Equal(DateTime.Today.AddDays(10), d["Birthday"]); Assert.True((bool)d["IsValid"]); }
public void DirectInstanceWithValueApiValidTest() { var act = new NiceAct() { Name = "Hulu", Age = 22, Country = Country.China, Birthday = DateTime.Today }; var type = typeof(NiceAct); var v = ObjectVisitor.Create(type, act); v.VerifiableEntry .ForMember("Name", c => c.NotEmpty().MinLength(4).MaxLength(15)); var r1 = v.Verify(); Assert.True(r1.IsValid); v.VerifiableEntry .ForMember("Name", c => c.Empty().OverwriteRule()); var r2 = v.Verify(); Assert.False(r2.IsValid); Assert.Single(r2.Errors); Assert.Single(r2.Errors[0].Details); v["Name"] = ""; var r3 = v.Verify(); Assert.True(r3.IsValid); v["Name"] = null; var r4 = v.Verify(); Assert.True(r4.IsValid); // NotEqual is not mutually exclusive, so these three tokens can be added. The default is AppendRule mode. v.VerifiableEntry.ForMember("Name", c => c.Length(4, 15).NotEqual("Huhuhu").NotEqual("Lululu").NotEqual("Hu")); r1 = v.Verify(); Assert.True(r1.IsValid); // NotEqual is not mutually exclusive, so these three tokens can be added. v.VerifiableEntry.ForMember("Name", c => c.Length(4, 15).NotEqual("Huhuhu").NotEqual("Lululu").NotEqual("Hu").OverwriteRule()); v["Name"] = "Hululu"; r1 = v.Verify(); Assert.True(r1.IsValid); v["Name"] = "Huhuhu"; r1 = v.Verify(); Assert.False(r1.IsValid); Assert.Single(r1.Errors); Assert.Single(r1.Errors[0].Details); v["Name"] = "Lululu"; r1 = v.Verify(); Assert.False(r1.IsValid); Assert.Single(r1.Errors); Assert.Single(r1.Errors[0].Details); v["Name"] = "Hu"; r1 = v.Verify(); Assert.False(r1.IsValid); Assert.Single(r1.Errors); Assert.Equal(2, r1.Errors[0].Details.Count); // Revert to RequiredNull token to test the mutual exclusion under AppendRule v.VerifiableEntry .ForMember("Name", c => c.Empty().OverwriteRule()); // Due to mutual exclusion, these conditions will all fail to take effect (because of the AppendRule mode). v.VerifiableEntry .ForMember("Name", c => c.NotEmpty().MinLength(4).MaxLength(15).AppendRule()); v["Name"] = ""; r1 = v.Verify(); Assert.True(r1.IsValid); v["Name"] = null; r1 = v.Verify(); Assert.True(r1.IsValid); }
public void GenericFutureTest() { var v = ObjectVisitor.Create <NiceAct>(); v.SetValue("Name", "Du"); v.SetValue("Age", 55); v.SetValue("Country", Country.USA); v.SetValue("Birthday", DateTime.Today.AddDays(-1)); v.SetValue("IsValid", true); var n1 = new NiceAct(); var b1 = v.TryRepeat(n1, out var o1); var to1 = (NiceAct)o1; Assert.True(b1); Assert.Equal("Du", to1.Name); Assert.Equal(55, to1.Age); Assert.Equal(Country.USA, to1.Country); Assert.Equal(DateTime.Today.AddDays(-1), to1.Birthday); Assert.True(to1.IsValid); v["Name"] = "Au"; v["Age"] = 77; v["Country"] = Country.China; v["Birthday"] = DateTime.Today.AddDays(1); v["IsValid"] = false; var n2 = new NiceAct(); var b2 = v.TryRepeat(n2, out var o2); var b3 = v.TryRepeat(n1, out var o3); var b4 = v.TryRepeat(out var o4); var b5 = v.TryRepeatAs <NiceAct>(out var o5); var n6 = new NiceAct(); var b6 = v.TryRepeatAs <NiceAct>(n6, out var o6); Assert.True(b2); Assert.Equal("Au", o2.Name); Assert.Equal(77, o2.Age); Assert.Equal(Country.China, o2.Country); Assert.Equal(DateTime.Today.AddDays(1), o2.Birthday); Assert.False(o2.IsValid); Assert.True(b3); Assert.Equal("Au", o3.Name); Assert.Equal(77, o3.Age); Assert.Equal(Country.China, o3.Country); Assert.Equal(DateTime.Today.AddDays(1), o3.Birthday); Assert.False(o3.IsValid); Assert.True(b4); Assert.Equal("Au", o4.Name); Assert.Equal(77, o4.Age); Assert.Equal(Country.China, o4.Country); Assert.Equal(DateTime.Today.AddDays(1), o4.Birthday); Assert.False(o4.IsValid); Assert.True(b5); Assert.Equal("Au", o5.Name); Assert.Equal(77, o5.Age); Assert.Equal(Country.China, o5.Country); Assert.Equal(DateTime.Today.AddDays(1), o5.Birthday); Assert.False(o5.IsValid); Assert.True(b6); Assert.Equal("Au", o6.Name); Assert.Equal(77, o6.Age); Assert.Equal(Country.China, o6.Country); Assert.Equal(DateTime.Today.AddDays(1), o6.Birthday); Assert.False(o6.IsValid); var repeater = v.ForRepeat(); var n7 = new NiceAct(); var o7 = repeater.Play(n7); var o8 = repeater.NewAndPlay(); Assert.Equal("Au", o7.Name); Assert.Equal(77, o7.Age); Assert.Equal(Country.China, o7.Country); Assert.Equal(DateTime.Today.AddDays(1), o7.Birthday); Assert.False(o7.IsValid); Assert.Equal("Au", o8.Name); Assert.Equal(77, o8.Age); Assert.Equal(Country.China, o8.Country); Assert.Equal(DateTime.Today.AddDays(1), o8.Birthday); Assert.False(o8.IsValid); var d = new Dictionary <string, object>(); d["Name"] = "AuX"; d["Age"] = 707; d["Country"] = Country.USA; d["Birthday"] = DateTime.Today.AddDays(10); d["IsValid"] = true; var b10 = v.TryRepeat(d, out var to10); var b11 = v.TryRepeatAs <NiceAct>(d, out var o11); var o12 = repeater.Play(d); Assert.True(b10); Assert.Equal("Au", to10.Name); Assert.Equal(77, to10.Age); Assert.Equal(Country.China, to10.Country); Assert.Equal(DateTime.Today.AddDays(1), to10.Birthday); Assert.False(to10.IsValid); Assert.True(b11); Assert.Equal("Au", o11.Name); Assert.Equal(77, o11.Age); Assert.Equal(Country.China, o11.Country); Assert.Equal(DateTime.Today.AddDays(1), o11.Birthday); Assert.False(o11.IsValid); Assert.Equal("Au", o12.Name); Assert.Equal(77, o12.Age); Assert.Equal(Country.China, o12.Country); Assert.Equal(DateTime.Today.AddDays(1), o12.Birthday); Assert.False(o12.IsValid); }
public void DirectInstanceRepeatTest() { var act = new NiceAct() { Name = "Hu", Age = 22, Country = Country.China, Birthday = DateTime.Today }; var type = typeof(NiceAct); var v = LeoVisitorFactory.Create(type, act); v.SetValue("Name", "Du"); v.SetValue("Age", 55); v.SetValue("Country", Country.USA); v.SetValue("Birthday", DateTime.Today.AddDays(-1)); v.SetValue("IsValid", true); var n1 = new NiceAct(); var b1 = v.TryRepeat(n1, out var o1); var to1 = (NiceAct)o1; Assert.True(b1); Assert.Equal("Du", to1.Name); Assert.Equal(55, to1.Age); Assert.Equal(Country.USA, to1.Country); Assert.Equal(DateTime.Today.AddDays(-1), to1.Birthday); Assert.True(to1.IsValid); v["Name"] = "Au"; v["Age"] = 77; v["Country"] = Country.China; v["Birthday"] = DateTime.Today.AddDays(1); v["IsValid"] = false; var n2 = new NiceAct(); var b2 = v.TryRepeat(n2, out var o2); var to2 = (NiceAct)o2; var b3 = v.TryRepeat(n1, out var o3); var to3 = (NiceAct)o3; var b4 = v.TryRepeat(out var o4); var to4 = (NiceAct)o4; var b5 = v.TryRepeatAs <NiceAct>(out var o5); var n6 = new NiceAct(); var b6 = v.TryRepeatAs <NiceAct>(n6, out var o6); Assert.True(b2); Assert.Equal("Au", to2.Name); Assert.Equal(77, to2.Age); Assert.Equal(Country.China, to2.Country); Assert.Equal(DateTime.Today.AddDays(1), to2.Birthday); Assert.False(to2.IsValid); Assert.True(b3); Assert.Equal("Au", to3.Name); Assert.Equal(77, to3.Age); Assert.Equal(Country.China, to3.Country); Assert.Equal(DateTime.Today.AddDays(1), to3.Birthday); Assert.False(to3.IsValid); Assert.True(b4); Assert.Equal("Au", to4.Name); Assert.Equal(77, to4.Age); Assert.Equal(Country.China, to4.Country); Assert.Equal(DateTime.Today.AddDays(1), to4.Birthday); Assert.False(to4.IsValid); Assert.True(b5); Assert.Equal("Au", o5.Name); Assert.Equal(77, o5.Age); Assert.Equal(Country.China, o5.Country); Assert.Equal(DateTime.Today.AddDays(1), o5.Birthday); Assert.False(o5.IsValid); Assert.True(b6); Assert.Equal("Au", o6.Name); Assert.Equal(77, o6.Age); Assert.Equal(Country.China, o6.Country); Assert.Equal(DateTime.Today.AddDays(1), o6.Birthday); Assert.False(o6.IsValid); var repeater = v.ForRepeat(); var n7 = new NiceAct(); var o7 = (NiceAct)repeater.Play(n7); var o8 = (NiceAct)repeater.NewAndPlay(); Assert.Equal("Au", o7.Name); Assert.Equal(77, o7.Age); Assert.Equal(Country.China, o7.Country); Assert.Equal(DateTime.Today.AddDays(1), o7.Birthday); Assert.False(o7.IsValid); Assert.Equal("Au", o8.Name); Assert.Equal(77, o8.Age); Assert.Equal(Country.China, o8.Country); Assert.Equal(DateTime.Today.AddDays(1), o8.Birthday); Assert.False(o8.IsValid); var d = new Dictionary <string, object>(); d["Name"] = "AuX"; d["Age"] = 707; d["Country"] = Country.USA; d["Birthday"] = DateTime.Today.AddDays(10); d["IsValid"] = true; var b10 = v.TryRepeat(d, out var o10); var to10 = (NiceAct)o10; var b11 = v.TryRepeatAs <NiceAct>(d, out var o11); var o12 = (NiceAct)repeater.Play(d); Assert.True(b10); Assert.Equal("Au", to10.Name); Assert.Equal(77, to10.Age); Assert.Equal(Country.China, to10.Country); Assert.Equal(DateTime.Today.AddDays(1), to10.Birthday); Assert.False(to10.IsValid); Assert.True(b11); Assert.Equal("Au", o11.Name); Assert.Equal(77, o11.Age); Assert.Equal(Country.China, o11.Country); Assert.Equal(DateTime.Today.AddDays(1), o11.Birthday); Assert.False(o11.IsValid); Assert.Equal("Au", o12.Name); Assert.Equal(77, o12.Age); Assert.Equal(Country.China, o12.Country); Assert.Equal(DateTime.Today.AddDays(1), o12.Birthday); Assert.False(o12.IsValid); }
public void FluentSetterTest() { var type = typeof(NiceAct); var act = new NiceAct() { Name = "Hu", Age = 22, Country = Country.China, Birthday = DateTime.Today }; var d = new Dictionary <string, object>(); d["Name"] = "Ax"; d["Age"] = 10086; d["Country"] = Country.China; d["Birthday"] = DateTime.Today.AddDays(10); d["IsValid"] = true; var s1 = ObjectSetter.Type(type).Instance(act); var s2 = ObjectSetter.Type(type).InitialValues(d); var s3 = ObjectSetter.Type(type).NewInstance(); var s4 = ObjectSetter.Type <NiceAct>().Instance(act); var s5 = ObjectSetter.Type <NiceAct>().InitialValues(d); var s6 = ObjectSetter.Type <NiceAct>().NewInstance(); var s7 = ObjectSetter.Type(type).Value("Name"); var s8 = ObjectSetter.Type <NiceAct>().Value("Name"); var s9 = ObjectSetter.Type <NiceAct>().Value(t => t.Name); var s10 = ObjectSetter.Type <NiceAct>().Value <string>(t => t.Name); s1.SetValue("Name", "LL0"); Assert.Equal("LL0", ((NiceAct)s1.Instance).Name); Assert.Equal("LL0", act.Name); s2.SetValue("Name", "LL1"); Assert.Equal("LL1", ((NiceAct)s2.Instance).Name); var act2 = (NiceAct)s2.Instance; Assert.Equal("LL1", act2.Name); s3.SetValue("Name", "LL2"); Assert.Equal("LL2", ((NiceAct)s3.Instance).Name); var act3 = (NiceAct)s3.Instance; Assert.Equal("LL2", act3.Name); s4.SetValue("Name", "LL3"); Assert.Equal("LL3", ((NiceAct)s4.Instance).Name); Assert.Equal("LL3", act.Name); s5.SetValue("Name", "LL4"); Assert.Equal("LL4", ((NiceAct)s5.Instance).Name); var act5 = (NiceAct)s5.Instance; Assert.Equal("LL4", act5.Name); s6.SetValue("Name", "LL5"); Assert.Equal("LL5", ((NiceAct)s6.Instance).Name); var act6 = (NiceAct)s6.Instance; Assert.Equal("LL5", act6.Name); s7.Instance(act).Value("LL6"); Assert.Equal("LL6", act.Name); s8.Instance(act).Value("LL7"); Assert.Equal("LL7", act.Name); s9.Instance(act).Value("LL8"); Assert.Equal("LL8", act.Name); s10.Instance(act).Value("LL9"); Assert.Equal("LL9", act.Name); }