예제 #1
0
        public void TestWithDifferentParameterOrder()
        {
            MethodAttributes attributes = MethodAttributes.Public;
            Type             returnType = typeof(void);

            Type[] paramTypes1 = new Type[] {
                typeof(int),
                typeof(string)
            };
            Type[] paramTypes2 = new Type[] {
                typeof(string),
                typeof(int)
            };

            TypeBuilder   typeBuilder = GetTestTypeBuilder();
            MethodBuilder builder1    = typeBuilder.DefineMethod(NegTestDynamicMethodName,
                                                                 attributes,
                                                                 returnType,
                                                                 paramTypes1);
            MethodBuilder builder2 = typeBuilder.DefineMethod(NegTestDynamicMethodName,
                                                              attributes,
                                                              returnType,
                                                              paramTypes2);

            Assert.False(builder1.Equals(builder2));
        }
예제 #2
0
        public void TestWithItself()
        {
            TypeBuilder   typeBuilder = GetTestTypeBuilder();
            MethodBuilder builder     = typeBuilder.DefineMethod(NegTestDynamicMethodName,
                                                                 MethodAttributes.Public);

            Assert.True(builder.Equals(builder));
        }
예제 #3
0
        public void TestWithNull()
        {
            TypeBuilder   typeBuilder = GetTestTypeBuilder();
            MethodBuilder builder     = typeBuilder.DefineMethod(NegTestDynamicMethodName,
                                                                 MethodAttributes.Public);

            Assert.False(builder.Equals(null));
        }
예제 #4
0
        public void TestWithSameNameAndAttributes()
        {
            MethodAttributes attributes  = MethodAttributes.Public | MethodAttributes.Virtual | MethodAttributes.NewSlot;
            TypeBuilder      typeBuilder = GetTestTypeBuilder();
            MethodBuilder    builder1    = typeBuilder.DefineMethod(NegTestDynamicMethodName,
                                                                    attributes);
            MethodBuilder builder2 = typeBuilder.DefineMethod(NegTestDynamicMethodName,
                                                              attributes);

            Assert.True(builder1.Equals(builder2));
        }
예제 #5
0
        public void TestWithDifferentAttributes()
        {
            MethodAttributes attributes1 = MethodAttributes.Public;
            MethodAttributes attributes2 = MethodAttributes.Private;

            TypeBuilder   typeBuilder = GetTestTypeBuilder();
            MethodBuilder builder1    = typeBuilder.DefineMethod(NegTestDynamicMethodName,
                                                                 attributes1);
            MethodBuilder builder2 = typeBuilder.DefineMethod(NegTestDynamicMethodName,
                                                              attributes2);

            Assert.False(builder1.Equals(builder2));
        }
예제 #6
0
        public void TestRandomObject()
        {
            string       name    = "Assembly1";
            AssemblyName asmname = new AssemblyName();

            asmname.Name = name;

            AssemblyBuilder asmbuild = AssemblyBuilder.DefineDynamicAssembly(asmname, AssemblyBuilderAccess.Run);
            ModuleBuilder   modbuild = TestLibrary.Utilities.GetModuleBuilder(asmbuild, "Module1");
            TypeBuilder     tpbuild  = modbuild.DefineType("C1", TypeAttributes.Public);

            MethodBuilder methbuild = tpbuild.DefineMethod("meth1", MethodAttributes.Public | MethodAttributes.Static,
                                                           typeof(int), new Type[] { });

            Assert.False(methbuild.Equals(tpbuild));
        }
예제 #7
0
        public void TestWithDifferentSignatures()
        {
            string       name    = "Assembly1";
            AssemblyName asmname = new AssemblyName();

            asmname.Name = name;


            AssemblyBuilder asmbuild = AssemblyBuilder.DefineDynamicAssembly(asmname, AssemblyBuilderAccess.Run);
            ModuleBuilder   modbuild = TestLibrary.Utilities.GetModuleBuilder(asmbuild, "Module1"); TypeBuilder tpbuild = modbuild.DefineType("C1", TypeAttributes.Public);

            MethodBuilder methbuild1 = tpbuild.DefineMethod("meth1", MethodAttributes.Public | MethodAttributes.Static);

            methbuild1.SetSignature(typeof(int), new Type[] { typeof(string) }, null, null, null, null);

            MethodBuilder methbuild2 = tpbuild.DefineMethod("meth1", MethodAttributes.Public | MethodAttributes.Static);

            methbuild2.SetSignature(typeof(int), new Type[] { typeof(object) }, null, null, null, null);

            Assert.False(methbuild1.Equals(methbuild2));
        }
예제 #8
0
        public void TestWithSameNameAttributeReturnTypeParameterType()
        {
            MethodAttributes attributes = MethodAttributes.Public;
            Type             returnType = typeof(void);

            Type[] paramTypes = new Type[] {
                typeof(int),
                typeof(string)
            };

            TypeBuilder typeBuilder = GetTestTypeBuilder();

            MethodBuilder builder1 = typeBuilder.DefineMethod(NegTestDynamicMethodName,
                                                              attributes,
                                                              returnType,
                                                              paramTypes);
            MethodBuilder builder2 = typeBuilder.DefineMethod(NegTestDynamicMethodName,
                                                              attributes,
                                                              returnType,
                                                              paramTypes);

            Assert.True(builder1.Equals(builder2));
        }
예제 #9
0
        public void TestWithDifferentName()
        {
            string methodName1 = null;
            string methodName2 = null;

            methodName1 = TestLibrary.Generator.GetString(false, MinStringLength, MaxStringLength);
            methodName2 = TestLibrary.Generator.GetString(false, MinStringLength, MaxStringLength);

            // Avoid generate same method name
            if (methodName1.Length == methodName2.Length)
            {
                methodName1 += TestLibrary.Generator.GetChar();
            }

            MethodAttributes attributes = MethodAttributes.Public;

            TypeBuilder   typeBuilder = GetTestTypeBuilder();
            MethodBuilder builder1    = typeBuilder.DefineMethod(methodName1,
                                                                 attributes);
            MethodBuilder builder2 = typeBuilder.DefineMethod(methodName2,
                                                              attributes);

            Assert.False(builder1.Equals(builder2));
        }
예제 #10
0
 public void Equals(MethodBuilder builder, object obj, bool expected)
 {
     Assert.Equal(expected, builder.Equals(obj));
 }
예제 #11
0
 public void Equals(MethodBuilder builder, object obj, bool expected)
 {
     Assert.Equal(expected, builder.Equals(obj));
 }