예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }
예제 #4
0
        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);
        }