public void Setup()
        {
            TestHostBuilder.ConfigureServices(services =>
            {
                services.AddScoped <FakeService>();

                services.AddMvcCore(setup => setup.EnableEndpointRouting = false)
                .AddApplicationPart(typeof(HomeController).Assembly);
            });

            TestHostBuilder.Configure(builder =>
            {
                builder.UseMvcWithDefaultRoute();
                builder.UseResponseCaching();

                // adds a middleware that will return a custom response from a designated request path
                builder.Use(async(context, next) =>
                {
                    await next.Invoke();

                    if (context.Request.Path.Value.StartsWith("/dummy"))
                    {
                        context.Response.Clear();
                        await context.Response.WriteAsync("Hello from the dummy middleware!");
                    }
                });
            });

            TestSetup();
        }
Example #2
0
        /// <summary>
        ///
        /// </summary>
        /// <typeparam name="TMessageHandler"></typeparam>
        /// <param name="configSectionName"></param>
        /// <param name="httpHandlerMode"></param>
        public void AssemblySetup <TMessageHandler>(string configSectionName, HttpHandlerMode httpHandlerMode)
            where TMessageHandler : DelegatingHandler
        {
            TestHostBuilder.AddBlazorEssentials <TConfiguration, TAppState, TMessageHandler>(configSectionName, httpHandlerMode);

            TestHostBuilder.ConfigureServices((builder, services) => {
                services.AddSingleton <NavigationManager, TestableNavigationManager>();
            });

            base.AssemblySetup();
        }
        /// <summary>
        ///
        /// </summary>
        /// <typeparam name="TMessageHandler"></typeparam>
        /// <param name="configSectionName"></param>
        /// <param name="httpHandlerMode"></param>
        public void AssemblySetup <TMessageHandler>(string configSectionName, HttpHandlerMode httpHandlerMode)
            where TMessageHandler : DelegatingHandler
        {
            TestHostBuilder.ConfigureServices((builder, services) => {
                var config = services.AddConfigurationBase <TConfiguration>(builder.Configuration, configSectionName);
                services.AddAppStateBase <TAppState>();
                services.AddHttpClients <TMessageHandler>(config, httpHandlerMode);
                services.AddSingleton <NavigationManager, TestableNavigationManager>();
            });

            base.AssemblySetup();
        }
        public void BlazorBreakdanceTestBase_GetServices_ReturnsServiceOnlyInTestContext()
        {
            //RWM: We're not *quite* setting this up properly, because we want to test the state both before and after calling TestSetup();
            TestHost.Should().BeNull();
            BUnitTestContext.Should().BeNull();
            RegisterServices.Should().BeNull();

            TestHostBuilder.ConfigureServices((context, services) => services.AddSingleton <DummyService>());
            TestSetup();

            TestHost.Should().NotBeNull();
            BUnitTestContext.Should().NotBeNull();
            RegisterServices.Should().BeNull();
            BUnitTestContext.Services.Should().HaveCount(13);
            BUnitTestContext.Services.GetService <DummyService>().Should().BeNull();
#if NET6_0_OR_GREATER
            TestHost.Services.GetAllServiceDescriptors().Should().HaveCount(34);
#endif
#if NET5_0
            TestHost.Services.GetAllServiceDescriptors().Should().HaveCount(33);
#endif
            TestHost.Services.GetService <DummyService>().Should().NotBeNull();
            GetService <DummyService>().Should().NotBeNull();
        }