Files
octokit.net/Octokit.Tests.Conventions/Exception/ParameterMismatchException.cs
Mickaël Derriey 13d5dab516 Port to .NET Core (#1503)
Port to .NET Core
2017-01-21 14:42:02 +10:00

29 lines
1.2 KiB
C#

using System;
using System.Reflection;
namespace Octokit.Tests.Conventions
{
public class ParameterMismatchException : Exception
{
public ParameterMismatchException(MethodInfo method, int position, ParameterInfo expected, ParameterInfo actual)
: base(CreateMessage(method, position, expected, actual))
{ }
public ParameterMismatchException(MethodInfo method, int position, ParameterInfo expected, ParameterInfo actual, Exception innerException)
: base(CreateMessage(method, position, expected, actual), innerException)
{ }
static string CreateParameterSignature(ParameterInfo parameter)
{
return string.Format("{0} {1}", parameter.ParameterType.Name, parameter.Name);
}
static string CreateMessage(MethodInfo method, int position, ParameterInfo expected, ParameterInfo actual)
{
var expectedMethodSignature = CreateParameterSignature(expected);
var actualMethodSignature = CreateParameterSignature(actual);
return string.Format("Parameter {0} for method {1}.{2} must be \"{3}\" but is \"{4}\"", position, method.DeclaringType.Name, method.Name, expectedMethodSignature, actualMethodSignature);
}
}
}