Example #1
0
        /// <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}'");
                }
            });
        }