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)); }
public void TestWithItself() { TypeBuilder typeBuilder = GetTestTypeBuilder(); MethodBuilder builder = typeBuilder.DefineMethod(NegTestDynamicMethodName, MethodAttributes.Public); Assert.True(builder.Equals(builder)); }
public void TestWithNull() { TypeBuilder typeBuilder = GetTestTypeBuilder(); MethodBuilder builder = typeBuilder.DefineMethod(NegTestDynamicMethodName, MethodAttributes.Public); Assert.False(builder.Equals(null)); }
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)); }
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)); }
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)); }
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)); }
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)); }
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)); }
public void Equals(MethodBuilder builder, object obj, bool expected) { Assert.Equal(expected, builder.Equals(obj)); }