Exemple #1
0
        public void GenericParametersFromTwoTypesAreNotEqual()
        {
            var listDefinition  = TypeDefinitionUtils.TypeDefinitionFor(typeof(List <>), _mscorlib);
            var stackDefinition = TypeDefinitionUtils.TypeDefinitionFor(typeof(Comparer <>), _mscorlib);

            Assert.That(TypeReferenceEqualityComparer.AreEqual(listDefinition.GenericParameters[0], stackDefinition.GenericParameters[0]), Is.False);
        }
Exemple #2
0
        public void TypeReferenceEqualsTypeDefinition()
        {
            var typeDefinition = TypeDefinitionUtils.TypeDefinitionFor(typeof(Int32), _mscorlib);
            var typeReference  = new TypeReference(typeDefinition.Namespace, typeDefinition.Name, typeDefinition.Module, typeDefinition.Scope);

            Assert.That(TypeReferenceEqualityComparer.AreEqual(typeDefinition, typeReference), Is.True);
        }
Exemple #3
0
        public void MethodReferenceEqualsMethodDefinition()
        {
            var typeDefinition  = TypeDefinitionUtils.TypeDefinitionFor(typeof(Int32), _mscorlib);
            var method          = typeDefinition.Methods.Single(m => m.Name == "GetHashCode");
            var methodReference = new MethodReference(method.Name, method.ReturnType, method.DeclaringType);

            methodReference.HasThis = method.HasThis;

            Assert.That(MethodReferenceComparer.AreEqual(method, methodReference), Is.True);
        }
Exemple #4
0
        public void GenericInstanceTypeForSameTypeIsEqual()
        {
            var int32Definition     = TypeDefinitionUtils.TypeDefinitionFor(typeof(Int32), _mscorlib);
            var listDefinition      = TypeDefinitionUtils.TypeDefinitionFor(typeof(List <>), _mscorlib);
            var listGenericInstance = new GenericInstanceType(listDefinition);

            listGenericInstance.GenericArguments.Add(int32Definition);
            var listGenericInstance2 = new GenericInstanceType(listDefinition);

            listGenericInstance2.GenericArguments.Add(int32Definition);

            Assert.That(TypeReferenceEqualityComparer.AreEqual(listGenericInstance, listGenericInstance2), Is.True);
        }
Exemple #5
0
        public void GenericInstanceTypeFromTwoTypesAreNotEqual()
        {
            var int32Definition     = TypeDefinitionUtils.TypeDefinitionFor(typeof(Int32), _mscorlib);
            var listDefinition      = TypeDefinitionUtils.TypeDefinitionFor(typeof(List <>), _mscorlib);
            var listGenericInstance = new GenericInstanceType(listDefinition);

            listGenericInstance.GenericArguments.Add(int32Definition);
            var stackDefinition      = TypeDefinitionUtils.TypeDefinitionFor(typeof(Comparer <>), _mscorlib);
            var stackGenericInstance = new GenericInstanceType(stackDefinition);

            stackGenericInstance.GenericArguments.Add(int32Definition);

            Assert.That(TypeReferenceEqualityComparer.AreEqual(listGenericInstance, stackGenericInstance), Is.False);
        }
Exemple #6
0
        public void ArrayTypesWithDifferentRanksToNotMatch()
        {
            var elementType = TypeDefinitionUtils.TypeDefinitionFor(typeof(Int32), _mscorlib);

            Assert.That(TypeReferenceEqualityComparer.AreEqual((TypeSpecification) new ArrayType(elementType, 1), (TypeSpecification) new ArrayType(elementType, 2)), Is.False, "Two type specifications that are array types with different ranks match, which is not expected.");
        }
Exemple #7
0
 public void ArrayTypesDoNotMatchIfElementTypeIsDifferent()
 {
     Assert.That(TypeReferenceEqualityComparer.AreEqual(new ArrayType(TypeDefinitionUtils.TypeDefinitionFor(typeof(Int32), _mscorlib), 1), new ArrayType(TypeDefinitionUtils.TypeDefinitionFor(typeof(Int64), _mscorlib), 1)), Is.False, "Two array types with different element types match, which is not expected.");
 }
Exemple #8
0
 public void SetUp()
 {
     SetupAssemblyDefinitions(typeof(MethodReferenceComparerTests).Assembly);
     _class1 = TypeDefinitionUtils.TypeDefinitionFor(typeof(Class1), _assembly);
     _class2 = TypeDefinitionUtils.TypeDefinitionFor(typeof(Class2), _assembly);
 }