public void Test1() { MethodBuilder template = MethodBuilder.RandomDomain(); var result = template .AttributeAppend("[Test]") .Access("public") .Modifier("static") .Name("Name") .Type <string>() .Script; Assert.Equal($"[Test]{Environment.NewLine}public static System.String Name(){{}}", result); Assert.Equal(typeof(Func <string>), template.DelegateType); }
public void Test4() { MethodBuilder template = MethodBuilder.RandomDomain(); var result = template .AttributeAppend <ClassDataAttribute>() .Unsafe() .Async() .Constraint("where T : class") .Access(AccessFlags.Public) .Name("Name") .Script; Assert.Equal($"[Xunit.ClassDataAttribute]{Environment.NewLine}public unsafe async void Name() where T : class{{}}", result); Assert.Equal(typeof(Action), template.DelegateType); }
public void Test3() { MethodBuilder template = MethodBuilder.RandomDomain(); var result = template .AttributeAppend("[Test]") .Async() .Access(AccessFlags.Public) .Name("Name") .Return(typeof(MethodBuilder)) .Body("int a = 0;") .BodyAppend("return \"xm\";") .Script; Assert.Equal($"[Test]{Environment.NewLine}public async Natasha.CSharp.Builder.MethodBuilder Name(){{int a = 0;return \"xm\";}}", result); Assert.Equal(typeof(Func <MethodBuilder>), template.DelegateType); }
public void Test2() { MethodBuilder template = MethodBuilder.RandomDomain(); var result = template .AttributeAppend("[Test][Test1]") .Access(AccessFlags.Public) .Modifier(ModifierFlags.Static) .Name("Age") .Param <int>("p") .Return <int>() .Body("return 1;") .Script; Assert.Equal($"[Test][Test1]{Environment.NewLine}public static System.Int32 Age(System.Int32 p){{return 1;}}", result); Assert.Equal(typeof(Func <int, int>), template.DelegateType); }