/// <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}'"); } }); }
/// <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}'"); } }); }