/// <inheritdoc />
        public IAndViewTestBuilder WithViewEngine(IViewEngine viewEngine)
        {
            var actualViewEngine = this.viewResult.ViewEngine;

            if (viewEngine != actualViewEngine)
            {
                throw ViewViewComponentResultAssertionException
                      .ForViewEngineEquality(this.TestContext.ExceptionMessagePrefix);
            }

            return(this);
        }
Esempio n. 2
0
        /// <summary>
        /// Tests whether <see cref="Microsoft.AspNetCore.Mvc.ViewComponents.ViewViewComponentResult"/>
        /// has the same <see cref="IViewEngine"/> as the provided one.
        /// </summary>
        /// <param name="viewTestBuilder">
        /// Instance of <see cref="IViewTestBuilder"/> type.
        /// </param>
        /// <param name="viewEngine">View engine of type <see cref="IViewEngine"/>.</param>
        /// <returns>The same <see cref="IAndViewTestBuilder"/>.</returns>
        public static IAndViewTestBuilder WithViewEngine(
            this IViewTestBuilder viewTestBuilder,
            IViewEngine viewEngine)
        {
            var actualBuilder = GetActualBuilder(viewTestBuilder);

            var actualViewEngine = actualBuilder.ViewResult.ViewEngine;

            if (viewEngine != actualViewEngine)
            {
                throw ViewViewComponentResultAssertionException
                      .ForViewEngineEquality(actualBuilder.TestContext.ExceptionMessagePrefix);
            }

            return(actualBuilder);
        }
        /// <inheritdoc />
        public IAndViewTestBuilder View(string viewName)
        {
            var viewResult = InvocationResultValidator
                             .GetInvocationResult <ViewViewComponentResult>(this.TestContext);

            var actualViewName = viewResult.ViewName;

            if (viewName != actualViewName)
            {
                throw ViewViewComponentResultAssertionException.ForNameEquality(
                          this.TestContext.ExceptionMessagePrefix,
                          viewName,
                          actualViewName);
            }

            return(new ViewTestBuilder(this.TestContext));
        }
        /// <inheritdoc />
        public IAndViewTestBuilder WithViewEngineOfType <TViewEngine>()
            where TViewEngine : IViewEngine
        {
            var actualViewEngineType   = this.viewResult?.ViewEngine?.GetType();
            var expectedViewEngineType = typeof(TViewEngine);

            if (actualViewEngineType == null ||
                Reflection.AreDifferentTypes(expectedViewEngineType, actualViewEngineType))
            {
                throw ViewViewComponentResultAssertionException.ForViewEngineType(
                          this.TestContext.ExceptionMessagePrefix,
                          expectedViewEngineType.ToFriendlyTypeName(),
                          actualViewEngineType.ToFriendlyTypeName());
            }

            return(this);
        }
Esempio n. 5
0
        /// <summary>
        /// Tests whether <see cref="Microsoft.AspNetCore.Mvc.ViewComponents.ViewViewComponentResult"/>
        /// has the same view name as the provided one.
        /// </summary>
        /// <param name="viewTestBuilder">
        /// Instance of <see cref="IViewTestBuilder"/> type.
        /// </param>
        /// <param name="viewName">Expected view name.</param>
        /// <returns>The same <see cref="IAndViewTestBuilder"/>.</returns>
        public static IAndViewTestBuilder WithName(
            this IViewTestBuilder viewTestBuilder,
            string viewName)
        {
            var actualBuilder = GetActualBuilder(viewTestBuilder);

            var actualViewName = actualBuilder.ViewResult.ViewName;

            if (viewName != actualViewName)
            {
                throw ViewViewComponentResultAssertionException.ForNameEquality(
                          actualBuilder.TestContext.ExceptionMessagePrefix,
                          viewName,
                          actualViewName);
            }

            return(actualBuilder);
        }
Esempio n. 6
0
        /// <summary>
        /// Tests whether <see cref="Microsoft.AspNetCore.Mvc.ViewComponents.ViewViewComponentResult"/>
        /// has the same <see cref="IViewEngine"/> type as the provided one.
        /// </summary>
        /// <param name="viewTestBuilder">
        /// Instance of <see cref="IViewTestBuilder"/> type.
        /// </param>
        /// <param name="viewEngineType"></param>
        /// <returns>The same <see cref="IAndViewTestBuilder"/>.</returns>
        public static IAndViewTestBuilder WithViewEngineOfType(
            this IViewTestBuilder viewTestBuilder,
            Type viewEngineType)
        {
            var actualBuilder = GetActualBuilder(viewTestBuilder);

            var actualViewEngineType = actualBuilder.ViewResult?.ViewEngine?.GetType();

            if (actualViewEngineType == null ||
                Reflection.AreDifferentTypes(viewEngineType, actualViewEngineType))
            {
                var(expectedViewEngineTypeName, actualViewEngineTypeName) =
                    (viewEngineType, actualViewEngineType).GetTypeComparisonNames();

                throw ViewViewComponentResultAssertionException.ForViewEngineType(
                          actualBuilder.TestContext.ExceptionMessagePrefix,
                          expectedViewEngineTypeName,
                          actualViewEngineTypeName);
            }

            return(actualBuilder);
        }