public void ConfigureApplicationMiddleware_Test() { // Given var config = new ConfigurationBuilder().Build(); var option = new BlazorWasmPrerenderingOptions { MiddlewarePackages = new[] { new MiddlewarePackageReference { PackageIdentity = "Toolbelt.Blazor.HeadElement.ServerPrerendering", Assembly = "", Version = "1.5.1" } } }; var services = new ServiceCollection() .AddSingleton(config as IConfiguration) .AddSingleton(option) .AddSingleton(new CustomAssemblyLoader()) .AddSingleton(new Uri("http://127.0.0.1:5000")) .AddSingleton(new HostEnvironment("http://127.0.0.1:5000", "Prerendering") as IWebAssemblyHostEnvironment) .AddSingleton <Startup>() .BuildServiceProvider(); var startUp = services.GetRequiredService <Startup>(); Expression <Func <IApplicationBuilder, IApplicationBuilder> > useMethod = app => app.Use(It.IsAny <Func <RequestDelegate, RequestDelegate> >()); var appBuilderMock = new Mock <IApplicationBuilder>(); appBuilderMock.Setup(useMethod).Returns(appBuilderMock.Object); appBuilderMock.SetupProperty(app => app.ApplicationServices, services); // When startUp.ConfigureApplicationMiddleware(appBuilderMock.Object); // Then appBuilderMock.Verify(useMethod, Times.Once); }
public Startup(IConfiguration configuration, Uri baseAddress, IWebAssemblyHostEnvironment hostEnvironment, BlazorWasmPrerenderingOptions prerenderingOptions) { this.Configuration = configuration; this.BaseAddress = baseAddress; this.HostEnvironment = hostEnvironment; this.PrerenderingOptions = prerenderingOptions; }
public static async Task <IWebHost> StartWebHostAsync(CustomAssemblyLoader assemblyLoader, string?environment, BlazorWasmPrerenderingOptions prerenderingOptions) { const string baseAddress = "http://127.0.0.1:5050"; var hostEnvironment = new HostEnvironment(baseAddress, environment ?? "Prerendering"); var appsettingsPath = Path.Combine(prerenderingOptions.WebRootPath, "appsettings.json"); var appsettingsEnvironmentPath = Path.Combine(prerenderingOptions.WebRootPath, $"appsettings.{hostEnvironment.Environment}.json"); var configuration = new ConfigurationBuilder() .AddJsonFile(appsettingsPath, optional: true) .AddJsonFile(appsettingsEnvironmentPath, optional: true) .Build(); var hostBuilder = new WebHostBuilder() .UseConfiguration(configuration) .UseKestrel() .UseUrls(baseAddress) .UseWebRoot(prerenderingOptions.WebRootPath) .ConfigureServices(services => services .AddSingleton(assemblyLoader) .AddSingleton(hostEnvironment as IWebAssemblyHostEnvironment)) .UseStartup(context => new Startup(context.Configuration, new Uri(baseAddress), hostEnvironment, prerenderingOptions)); var webHost = hostBuilder.Build(); await webHost.StartAsync(); return(webHost); }