Beispiel #1
0
        public void DecodeFromNetFullSignature()
        {
            var helper    = new TypeSignatureHelper();
            var signature = "SelectMany<3>@{System.Linq.Enumerable, System.Core}({System.Collections.Generic.IEnumerable`1<{!!0}>, mscorlib},{System.Func`2<{!!0},{System.Collections.Generic.IEnumerable`1<{!!1}>, mscorlib}>, mscorlib},{System.Func`3<{!!0},{!!1},{!!2}>, mscorlib})";

            Assert.DoesNotThrow(() => helper.GetMethodInfoFromSignature(signature));
        }
Beispiel #2
0
        public void AreTypesEqual_MismatchedParameterPositionFail()
        {
            var helper = new TypeSignatureHelper();

            var mi         = typeof(TestHelper).GetMethod("TwoGenericMethod");
            var parameters = mi.GetParameters();

            Assert.IsFalse(helper.AreTypesEqual(parameters[0].ParameterType, parameters[1].ParameterType));
        }
Beispiel #3
0
        public void EncodeAndDecodeStringType()
        {
            var helper       = new TypeSignatureHelper();
            var expectedType = typeof(string);

            var signature  = helper.GetSignatureFromType(expectedType);
            var actualType = helper.GetTypeFromSignature(signature);

            Assert.IsNotNull(actualType);
            Assert.AreEqual(expectedType, actualType);
        }
Beispiel #4
0
        public void EncodeAndDecodeMultipleTypes()
        {
            var helper        = new TypeSignatureHelper();
            var expectedTypes = new[] { typeof(string), typeof(int) };

            var signature   = helper.GetSignatureFromTypes(expectedTypes);
            var actualTypes = helper.GetTypesFromSignature(signature);

            Assert.IsNotNull(actualTypes);
            Assert.AreEqual(expectedTypes.Length, actualTypes.Length);
            Assert.AreEqual(expectedTypes[0], actualTypes[0]);
            Assert.AreEqual(expectedTypes[1], actualTypes[1]);
        }
Beispiel #5
0
        public void EncodeAndDecodeAllEnumerableMethods()
        {
            var type = typeof(Enumerable);

            foreach (var expectedMethodInfo in type.GetMethods(BindingFlags.Static | BindingFlags.Public))
            {
                var        helper           = new TypeSignatureHelper();
                var        signature        = helper.GetSignatureFromMethodInfo(expectedMethodInfo);
                MethodInfo actualMethodInfo = null;

                Assert.DoesNotThrow(() =>
                {
                    actualMethodInfo = helper.GetMethodInfoFromSignature(signature);
                }, signature);

                Assert.NotNull(actualMethodInfo, signature);
                Assert.AreEqual(expectedMethodInfo.ToString(), actualMethodInfo.ToString(), signature);
            }
        }
Beispiel #6
0
        public void AreTypesEqual_MismatchedGenericArgumentCountFail()
        {
            var helper = new TypeSignatureHelper();

            Assert.IsFalse(helper.AreTypesEqual(typeof(TestHelpOneGeneric <string>), typeof(TestHelperTwoGenerics <string, string>)));
        }
Beispiel #7
0
        public void GetTypeFromSignature_MissingClosingGenericFails()
        {
            var helper = new TypeSignatureHelper();

            Assert.Throws <SignatureInvalidException>(() => helper.GetTypeFromSignature("{System.Type<{System.Type, mscorlib}"));
        }
Beispiel #8
0
        public void GetTypeFromSignature_PartialStringFails()
        {
            var helper = new TypeSignatureHelper();

            Assert.Throws <SignatureInvalidException>(() => helper.GetTypeFromSignature("{System.Type"));
        }
Beispiel #9
0
        public void GetTypeFromSignature_EmptyStringFails()
        {
            var helper = new TypeSignatureHelper();

            Assert.Throws <SignatureInvalidException>(() => helper.GetTypeFromSignature(""));
        }
Beispiel #10
0
        public void GetTypeFromSignature_MissingTypeFails()
        {
            var helper = new TypeSignatureHelper();

            Assert.Throws <TypeNotFoundException>(() => helper.GetTypeFromSignature("{Some.Bogus.Type, mscorlib}"));
        }
Beispiel #11
0
        public void GetTypeFromNameAndAssemblyEmptyAssembly()
        {
            var helper = new TypeSignatureHelper();

            Assert.IsNotNull(helper.GetTypeFromNameAndAssembly(typeof(string).FullName, null));
        }
Beispiel #12
0
        public void GetTypeFromNameAndAssemblyEmptyNameReturnsNull()
        {
            var helper = new TypeSignatureHelper();

            Assert.IsNull(helper.GetTypeFromNameAndAssembly(string.Empty, null));
        }
Beispiel #13
0
        public void GetMethodInfoFromSignature_MissingOpeningParenthesisFails()
        {
            var helper = new TypeSignatureHelper();

            Assert.Throws <SignatureInvalidException>(() => helper.GetMethodInfoFromSignature("ToString@{System.Object, mscorlib}X"));
        }
Beispiel #14
0
        public void GetMethodInfoFromSignature_MissingClosingGenericFails()
        {
            var helper = new TypeSignatureHelper();

            Assert.Throws <SignatureInvalidException>(() => helper.GetMethodInfoFromSignature("ToString<1"));
        }