public void GetMemberSignature_MethodWithParams() { var methodInfo = typeof(MemberSignatureTestClass).GetMethod("MethodWithParams"); var output = _memberSignatureUtility.GetMemberSignature(methodInfo); var expectedOutput = _outputFormatter.CreateMethodMarkup(methodInfo.Name, methodInfo.ReturnType, methodInfo.GetParameters()); Assert.That(output.ToString(), Is.EqualTo(expectedOutput.ToString())); }
public void GenerateXml_InterfaceWithMembers() { var reportGenerator = CreateMemberReportGenerator(typeof(IDisposable), null); var output = reportGenerator.GenerateXml(); var expectedOutput = new XElement( "Members", new XElement( "Member", new XAttribute("id", "0"), new XAttribute("type", MemberTypes.Method), new XAttribute("name", "Dispose"), new XAttribute("is-declared-by-this-class", true), _outputFormatter.CreateModifierMarkup("", "public abstract"), _outputFormatter.CreateMethodMarkup("Dispose", typeof(void), new ParameterInfo[0]) ) ); XElementComparisonHelper.Compare(output, expectedOutput); }
public XElement GetMemberSignature(MemberInfo memberInfo) { ArgumentUtility.CheckNotNull("memberInfo", memberInfo); switch (memberInfo.MemberType) { case MemberTypes.Method: var methodInfo = (MethodInfo)memberInfo; return(_outputFormatter.CreateMethodMarkup(methodInfo.Name, methodInfo.ReturnType, methodInfo.GetParameters(), methodInfo.GetGenericArguments())); case MemberTypes.Constructor: var constructorInfo = (ConstructorInfo)memberInfo; return(_outputFormatter.CreateConstructorMarkup(_outputFormatter.GetConstructorName(memberInfo.DeclaringType), constructorInfo.GetParameters())); case MemberTypes.Event: var eventInfo = (EventInfo)memberInfo; return(_outputFormatter.CreateEventMarkup(eventInfo.Name, eventInfo.EventHandlerType)); case MemberTypes.Field: var fieldInfo = (FieldInfo)memberInfo; return(_outputFormatter.CreateFieldMarkup(fieldInfo.Name, fieldInfo.FieldType)); case MemberTypes.Property: var propertyInfo = (PropertyInfo)memberInfo; return(_outputFormatter.CreatePropertyMarkup(propertyInfo.Name, propertyInfo.PropertyType)); case MemberTypes.NestedType: var nestedType = (Type)memberInfo; return(_outputFormatter.CreateNestedTypeMarkup(nestedType)); case MemberTypes.Custom: case MemberTypes.TypeInfo: return(null); default: throw new Exception("unknown member type"); } }