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()); }