/// <summary>
        /// Tests whether the authentication <see cref="Microsoft.AspNetCore.Mvc.ActionResult"/> has
        /// the given <see cref="AuthenticationProperties"/> provided as builder.
        /// </summary>
        /// <param name="baseTestBuilderWithAuthenticationResult">
        /// Instance of <see cref="IBaseTestBuilderWithAuthenticationResult{TAuthenticationResultTestBuilder}"/> type.
        /// </param>
        /// <param name="authenticationPropertiesBuilder">Expected <see cref="AuthenticationProperties"/> builder.</param>
        /// <returns>The same authentication <see cref="Microsoft.AspNetCore.Mvc.ActionResult"/> test builder.</returns>
        public static TAuthenticationResultTestBuilder WithAuthenticationProperties <TAuthenticationResultTestBuilder>(
            this IBaseTestBuilderWithAuthenticationResult <TAuthenticationResultTestBuilder> baseTestBuilderWithAuthenticationResult,
            Action <IAuthenticationPropertiesTestBuilder> authenticationPropertiesBuilder)
            where TAuthenticationResultTestBuilder : IBaseTestBuilderWithActionResult
        {
            var actualBuilder = GetActualBuilder(baseTestBuilderWithAuthenticationResult);

            AuthenticationValidator.ValidateAuthenticationProperties(
                authenticationPropertiesBuilder,
                actualBuilder.TestContext);

            return(actualBuilder.ResultTestBuilder);
        }
        /// <summary>
        /// Tests whether the <see cref="Microsoft.AspNetCore.Mvc.ActionResult"/>
        /// has the provided <see cref="AuthenticationProperties"/>.
        /// </summary>
        /// <param name="baseTestBuilderWithAuthenticationResult">
        /// Instance of <see cref="IBaseTestBuilderWithAuthenticationResult{TAuthenticationResultTestBuilder}"/> type.
        /// </param>
        /// <param name="properties">Expected <see cref="AuthenticationProperties"/>.</param>
        /// <returns>The same authentication <see cref="Microsoft.AspNetCore.Mvc.ActionResult"/> test builder.</returns>
        public static TAuthenticationResultTestBuilder WithAuthenticationProperties <TAuthenticationResultTestBuilder>(
            this IBaseTestBuilderWithAuthenticationResult <TAuthenticationResultTestBuilder> baseTestBuilderWithAuthenticationResult,
            AuthenticationProperties properties)
            where TAuthenticationResultTestBuilder : IBaseTestBuilderWithActionResult
        {
            var actualBuilder = GetActualBuilder(baseTestBuilderWithAuthenticationResult);

            AuthenticationValidator.ValidateAuthenticationProperties(
                actualBuilder.TestContext.MethodResult,
                properties,
                actualBuilder.ThrowNewFailedValidationException);

            return(actualBuilder.ResultTestBuilder);
        }
 GetActualBuilder <TAuthenticationResultTestBuilder>(
     IBaseTestBuilderWithAuthenticationResult <TAuthenticationResultTestBuilder> baseTestBuilderWithAuthenticationResult)
     where TAuthenticationResultTestBuilder : IBaseTestBuilderWithActionResult
 => (IBaseTestBuilderWithAuthenticationResultInternal <TAuthenticationResultTestBuilder>)baseTestBuilderWithAuthenticationResult;