private void AssertParameterOfTypeIsSupported <T>()
        {
            Type type;
            Type nullableArg;
            bool isNullable = false;

            if (typeof(T).GetTypeInfo().IsNullable(out nullableArg))
            {
                type       = nullableArg;
                isNullable = true;
            }
            else
            {
                type = typeof(T);
            }

            string actionName = "Action_" + type.Name + (isNullable ? "_Nullable" : "");

            var discoverer = new Fakes.FakeLimitedControllerDiscoverer(typeof(Controllers.RouteSupportedParametersController));
            var ctrl       = discoverer.GetControllers(null).Single();
            var action     = ctrl.Actions.Single(x => x.Name == actionName.ToLower());

            var errors = new ParametersValidator().GetParametersErrors(action);

            Assert.Equal(isNullable, errors.Any());
        }