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)); }
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)); }
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); }
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]); }
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); } }
public void AreTypesEqual_MismatchedGenericArgumentCountFail() { var helper = new TypeSignatureHelper(); Assert.IsFalse(helper.AreTypesEqual(typeof(TestHelpOneGeneric <string>), typeof(TestHelperTwoGenerics <string, string>))); }
public void GetTypeFromSignature_MissingClosingGenericFails() { var helper = new TypeSignatureHelper(); Assert.Throws <SignatureInvalidException>(() => helper.GetTypeFromSignature("{System.Type<{System.Type, mscorlib}")); }
public void GetTypeFromSignature_PartialStringFails() { var helper = new TypeSignatureHelper(); Assert.Throws <SignatureInvalidException>(() => helper.GetTypeFromSignature("{System.Type")); }
public void GetTypeFromSignature_EmptyStringFails() { var helper = new TypeSignatureHelper(); Assert.Throws <SignatureInvalidException>(() => helper.GetTypeFromSignature("")); }
public void GetTypeFromSignature_MissingTypeFails() { var helper = new TypeSignatureHelper(); Assert.Throws <TypeNotFoundException>(() => helper.GetTypeFromSignature("{Some.Bogus.Type, mscorlib}")); }
public void GetTypeFromNameAndAssemblyEmptyAssembly() { var helper = new TypeSignatureHelper(); Assert.IsNotNull(helper.GetTypeFromNameAndAssembly(typeof(string).FullName, null)); }
public void GetTypeFromNameAndAssemblyEmptyNameReturnsNull() { var helper = new TypeSignatureHelper(); Assert.IsNull(helper.GetTypeFromNameAndAssembly(string.Empty, null)); }
public void GetMethodInfoFromSignature_MissingOpeningParenthesisFails() { var helper = new TypeSignatureHelper(); Assert.Throws <SignatureInvalidException>(() => helper.GetMethodInfoFromSignature("ToString@{System.Object, mscorlib}X")); }
public void GetMethodInfoFromSignature_MissingClosingGenericFails() { var helper = new TypeSignatureHelper(); Assert.Throws <SignatureInvalidException>(() => helper.GetMethodInfoFromSignature("ToString<1")); }