/// <summary> /// Validates URI by using UriTestBuilder. /// </summary> /// <param name="actionResult">Dynamic representation of action 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 actionResult, Action<MockedUriTestBuilder> uriTestBuilder, Action<string, string, string> failedValidationAction) { RuntimeBinderValidator.ValidateBinding(() => { var actualUri = actionResult.Location as Uri; var newUriTestBuilder = new MockedUriTestBuilder(); uriTestBuilder(newUriTestBuilder); var expectedUri = newUriTestBuilder.GetMockedUri(); var validations = newUriTestBuilder.GetMockedUriValidations(); if (validations.Any(v => !v(expectedUri, actualUri))) { failedValidationAction( "URI", "to equal the provided one", "was in fact different"); } }); }
/// <summary> /// Validates URI by using UriTestBuilder. /// </summary> /// <param name="actionResult">Dynamic representation of action 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 actionResult, Action <MockedUriTestBuilder> uriTestBuilder, Action <string, string, string> failedValidationAction) { RuntimeBinderValidator.ValidateBinding(() => { var actualUri = actionResult.Location as Uri; var newUriTestBuilder = new MockedUriTestBuilder(); uriTestBuilder(newUriTestBuilder); var expectedUri = newUriTestBuilder.GetMockedUri(); var validations = newUriTestBuilder.GetMockedUriValidations(); if (validations.Any(v => !v(expectedUri, actualUri))) { failedValidationAction( "URI", "to equal the provided one", "was in fact different"); } }); }
/// <summary> /// Validates URI by using UriTestBuilder. /// </summary> /// <param name="actionResult">Dynamic representation of action 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 actionResult, Action <MockedUriTestBuilder> uriTestBuilder, Action <string, string, string> failedValidationAction) { RuntimeBinderValidator.ValidateBinding(() => { var actualUri = (string)GetUrlFromDynamic(actionResult); var newUriTestBuilder = new MockedUriTestBuilder(); uriTestBuilder(newUriTestBuilder); var expectedUri = newUriTestBuilder.GetMockedUri(); var validations = newUriTestBuilder.GetMockedUriValidations(); var actualUriWithUnknownKind = new Uri(actualUri, UriKind.RelativeOrAbsolute); if (validations.Any(v => !v(expectedUri, actualUriWithUnknownKind))) { failedValidationAction( "URI", $"to be '{expectedUri}'", $"was in fact '{actualUriWithUnknownKind.OriginalString}'"); } }); }