Esempio n. 1
0
        public void EqualsAndGetHashCode()
        {
            var method0 = typeof(Proxied).GetPublicInstanceMethods("OverrideMe", typeof(string)).Last();
            var method1 = typeof(ProxiedChild).GetPublicInstanceMethods("OverrideMe", typeof(string)).Last();
            var method2 = typeof(ProxiedChild).GetPublicInstanceMethods("PrependName", typeof(string)).Last();

            Assert.That(method0.MetadataToken, Is.Not.EqualTo(method1.MetadataToken));
            Assert.That(method0.MetadataToken, Is.Not.EqualTo(method2.MetadataToken));

            var stableMetadateToken0 = new StableMethodMetadataToken(method0);
            var stableMetadateToken1 = new StableMethodMetadataToken(method1);
            var stableMetadateToken2 = new StableMethodMetadataToken(method2);

            Assert.That(stableMetadateToken0, Is.EqualTo(stableMetadateToken0));
            Assert.That(stableMetadateToken0, Is.EqualTo(stableMetadateToken1));
            Assert.That(stableMetadateToken1, Is.EqualTo(stableMetadateToken1));

            Assert.That(stableMetadateToken2, Is.EqualTo(stableMetadateToken2));
            Assert.That(stableMetadateToken0, Is.Not.EqualTo(stableMetadateToken2));
            Assert.That(stableMetadateToken1, Is.Not.EqualTo(stableMetadateToken2));

            Assert.That(stableMetadateToken0.GetHashCode(), Is.EqualTo(stableMetadateToken0.GetHashCode()));
            Assert.That(stableMetadateToken0.GetHashCode(), Is.EqualTo(stableMetadateToken1.GetHashCode()));
            Assert.That(stableMetadateToken1.GetHashCode(), Is.EqualTo(stableMetadateToken1.GetHashCode()));

            Assert.That(stableMetadateToken2.GetHashCode(), Is.EqualTo(stableMetadateToken2.GetHashCode()));
            Assert.That(stableMetadateToken0.GetHashCode(), Is.Not.EqualTo(stableMetadateToken2.GetHashCode()));
            Assert.That(stableMetadateToken1.GetHashCode(), Is.Not.EqualTo(stableMetadateToken2.GetHashCode()));
        }
Esempio n. 2
0
        public void Equals_Null()
        {
            var method0 = typeof(Proxied).GetPublicInstanceMethods("OverrideMe", typeof(string)).Last();
            var stableMetadateToken0 = new StableMethodMetadataToken(method0);

            Assert.That(stableMetadateToken0.Equals(null), Is.False);
        }
        private MethodInfo GetCorrespondingMethod(Dictionary <StableMethodMetadataToken, MethodInfo> dictionary, MethodInfo method)
        {
            var        stableMetadataToken = new StableMethodMetadataToken(method);
            MethodInfo correspondingMethod;

            dictionary.TryGetValue(stableMetadataToken, out correspondingMethod);
            return(correspondingMethod);
        }
        public void GetMethod()
        {
            var type    = typeof(Proxied);
            var method0 = type.GetPublicInstanceMethods("OverrideMe", typeof(string)).Last();
            var method1 = type.GetPublicInstanceMethods("PrependName", typeof(string)).Last();
            var stableMetadateToken0 = new StableMethodMetadataToken(method0);
            var stableMetadateToken1 = new StableMethodMetadataToken(method1);

            var map = new StableMetadataTokenToMethodInfoMap(type);

            Assert.That(map.GetMethod(stableMetadateToken0), Is.EqualTo(method0));
            Assert.That(map.GetMethod(stableMetadateToken1), Is.EqualTo(method1));
        }