private static AuthenticationProperties TryGetAuthenticationProperties(dynamic actionResult) { AuthenticationProperties authenticationProperties = null; RuntimeBinderValidator.ValidateBinding(() => { authenticationProperties = (AuthenticationProperties)actionResult.Properties; }); return(authenticationProperties); }
private static IEnumerable <string> TryGetContentTypesCollection(dynamic actionResult) { MediaTypeCollection contentTypes = null; RuntimeBinderValidator.ValidateBinding(() => { contentTypes = (MediaTypeCollection)actionResult.ContentTypes; }); return(contentTypes); }
private static IList <string> TryGetAuthenticationSchemes(dynamic actionResult) { IList <string> authenticationSchemes = new List <string>(); RuntimeBinderValidator.ValidateBinding(() => { authenticationSchemes = (IList <string>)actionResult.AuthenticationSchemes; }); return(authenticationSchemes); }
/// <summary> /// Validates whether StatusCode is the same as the provided one from action result containing such property. /// </summary> /// <param name="result">Component result with StatusCode.</param> /// <param name="expectedHttpStatusCode">Expected HTTP status code.</param> /// <param name="failedValidationAction">Action to call in case of failed validation.</param> public static void ValidateHttpStatusCode( dynamic result, HttpStatusCode expectedHttpStatusCode, Action <string, string, string> failedValidationAction) { RuntimeBinderValidator.ValidateBinding(() => { ValidateHttpStatusCode( expectedHttpStatusCode, (int?)result.StatusCode, failedValidationAction); }); }
/// <summary> /// Validates whether ContentType is the same as the provided one from action result containing such property. /// </summary> /// <param name="result">Component result with ContentType.</param> /// <param name="expectedContentType">Expected content type.</param> /// <param name="failedValidationAction">Action to call in case of failed validation.</param> public static void ValidateContentType( dynamic result, string expectedContentType, Action <string, string, string> failedValidationAction) { RuntimeBinderValidator.ValidateBinding(() => { ValidateContentType( expectedContentType, (string)result.ContentType, failedValidationAction); }); }
public static void ValidateRouteValueOfType <TRouteValue>( dynamic actionResult, Action <string, string, string> failedValidationAction) { RuntimeBinderValidator.ValidateBinding(() => { var routeValues = (IDictionary <string, object>)actionResult.RouteValues; DictionaryValidator.ValidateValueOfType <TRouteValue>( RouteValuesName, routeValues, failedValidationAction); }); }
/// <summary> /// Validates whether UrlHelper contains the same value as the provided one from action result containing such property. /// </summary> /// <param name="actionResult">Action result with UrlHelper.</param> /// <param name="urlHelper">Expected URL helper.</param> /// <param name="failedValidationAction">Action to call in case of failed validation.</param> public static void ValidateUrlHelper( dynamic actionResult, IUrlHelper urlHelper, Action <string, string, string> failedValidationAction) { RuntimeBinderValidator.ValidateBinding(() => { if (urlHelper != (IUrlHelper)actionResult.UrlHelper) { failedValidationAction( "UrlHelper", "to be the same as the provided one", "instead received different result"); } }); }
/// <summary> /// Validates whether ControllerName is the same as the provided one from action result containing such property. /// </summary> /// <param name="actionResult">Action result with ControllerName.</param> /// <param name="controllerName">Expected controller name.</param> /// <param name="failedValidationAction">Action to call in case of failed validation.</param> public static void ValidateControllerName( dynamic actionResult, string controllerName, Action <string, string, string> failedValidationAction) { RuntimeBinderValidator.ValidateBinding(() => { var actualControllerName = (string)actionResult.ControllerName; if (controllerName != actualControllerName) { failedValidationAction( "to have", $"'{controllerName}' controller name", $"instead received {actualControllerName.GetErrorMessageName()}"); } }); }
/// <summary> /// Validates the Uri from action result containing one. /// </summary> /// <param name="result">Component result with Uri.</param> /// <param name="location">Expected Uri.</param> /// <param name="failedValidationAction">Action to call in case of failed validation.</param> public static void ValidateUri( dynamic result, string location, Action <string, string, string> failedValidationAction) { RuntimeBinderValidator.ValidateBinding(() => { var actualLocation = (string)GetUrlFromDynamic(result); if (location != actualLocation) { failedValidationAction( "location", $"to be '{location}'", $"instead received '{actualLocation}'"); } }); }
/// <summary> /// Validates whether RouteName is the same as the provided one from action result containing such property. /// </summary> /// <param name="actionResult">Action result with RouteName.</param> /// <param name="routeName">Expected route name.</param> /// <param name="failedValidationAction">Action to call in case of failed validation.</param> public static void ValidateRouteName( dynamic actionResult, string routeName, Action <string, string, string> failedValidationAction) { RuntimeBinderValidator.ValidateBinding(() => { var actualRouteName = (string)actionResult.RouteName; if (routeName != actualRouteName) { failedValidationAction( "to have", $"'{routeName}' route name", $"instead received {actualRouteName.GetErrorMessageName()}"); } }); }
/// <summary> /// Validates whether UrlHelper contains the same type as the provided one from action result containing such property. /// </summary> /// <typeparam name="TUrlHelper">Type of IUrlHelper.</typeparam> /// <param name="actionResult">Action result with UrlHelper.</param> /// <param name="failedValidationAction">Action to call in case of failed validation.</param> public static void ValidateUrlHelperOfType <TUrlHelper>( dynamic actionResult, Action <string, string, string> failedValidationAction) where TUrlHelper : IUrlHelper { RuntimeBinderValidator.ValidateBinding(() => { var actualUrlHelper = (IUrlHelper)actionResult.UrlHelper; if (actualUrlHelper == null || Reflection.AreDifferentTypes(typeof(TUrlHelper), actualUrlHelper.GetType())) { failedValidationAction( "UrlHelper", $"to be of {typeof(TUrlHelper).Name} type", $"instead received {actualUrlHelper.GetName()}"); } }); }
/// <summary> /// Validates whether RouteValues contains the same route entries as the provided ones from action result containing such property. /// </summary> /// <param name="actionResult">Action result with RouteValues.</param> /// <param name="routeValues">Expected route value dictionary.</param> /// <param name="includeCountCheck">Specifies whether the total number of route values should be validated.</param> /// <param name="failedValidationAction">Action to call in case of failed validation.</param> public static void ValidateRouteValues( dynamic actionResult, IDictionary <string, object> routeValues, bool includeCountCheck, Action <string, string, string> failedValidationAction) { RuntimeBinderValidator.ValidateBinding(() => { var actualRouteValues = (IDictionary <string, object>)actionResult.RouteValues; DictionaryValidator.ValidateValues( RouteValuesName, actualRouteValues, routeValues, failedValidationAction, includeCountCheck); }); }
/// <summary> /// Validates whether RouteValues contains route entries with key and value as the provided ones from action result containing such property. /// </summary> /// <param name="actionResult">Action result with RouteValues.</param> /// <param name="key">Expected route entry key.</param> /// <param name="value">Expected route entry value.</param> /// <param name="failedValidationAction">Action to call in case of failed validation.</param> public static void ValidateRouteValue( dynamic actionResult, string key, object value, Action <string, string, string> failedValidationAction) { RuntimeBinderValidator.ValidateBinding(() => { var routeValues = (IDictionary <string, object>)actionResult.RouteValues; DictionaryValidator.ValidateStringKeyAndValue( RouteValuesName, routeValues, key, value, failedValidationAction); }); }
/// <summary> /// Validates URI by using UriTestBuilder. /// </summary> /// <param name="result">Dynamic representation of component result.</param> /// <param name="uriTestBuilder">UriTestBuilder for validation.</param> /// <param name="failedValidationAction">Action to execute, if the validation fails.</param> public static void ValidateLocation( dynamic result, Action <UriMockTestBuilder> uriTestBuilder, Action <string, string, string> failedValidationAction) { RuntimeBinderValidator.ValidateBinding(() => { var actualUri = (string)GetUrlFromDynamic(result); var newUriTestBuilder = new UriMockTestBuilder(); uriTestBuilder(newUriTestBuilder); var expectedUri = newUriTestBuilder.GetUriMock(); var validations = newUriTestBuilder.GetUriMockValidations(); var actualUriWithUnknownKind = new Uri(actualUri, UriKind.RelativeOrAbsolute); if (validations.Any(v => !v(expectedUri, actualUriWithUnknownKind))) { failedValidationAction( "URI", $"to be '{expectedUri}'", $"was in fact '{actualUriWithUnknownKind.OriginalString}'"); } }); }