From 136cb32301b3ccc194833cb63a2c6cfcb579ff32 Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Sun, 6 Jun 2021 22:27:13 +0100 Subject: [PATCH] ensure web --- test/yavscTests/Mandatory/RegisterApi.cs | 1 + .../yavscTests/Mandatory/ServerSideFixture.cs | 28 +++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/test/yavscTests/Mandatory/RegisterApi.cs b/test/yavscTests/Mandatory/RegisterApi.cs index 3ded4a56..91d703b9 100644 --- a/test/yavscTests/Mandatory/RegisterApi.cs +++ b/test/yavscTests/Mandatory/RegisterApi.cs @@ -35,6 +35,7 @@ namespace yavscTests [Fact] public void EnsureWeb() { + _serverFixture.EnsureWeb(); } } diff --git a/test/yavscTests/Mandatory/ServerSideFixture.cs b/test/yavscTests/Mandatory/ServerSideFixture.cs index 9e710fbd..3a66affc 100644 --- a/test/yavscTests/Mandatory/ServerSideFixture.cs +++ b/test/yavscTests/Mandatory/ServerSideFixture.cs @@ -13,6 +13,8 @@ using Npgsql; using Microsoft.Data.Entity; using Microsoft.Data.Entity.Metadata.Conventions; using yavscTests.Settings; +using System.Threading.Tasks; +using System.IO; namespace yavscTests { @@ -217,9 +219,29 @@ namespace yavscTests DbContext.Database.EnsureDeleted(); dbCreated = false; } + public bool EnsureWeb() + { + if (WebApp!=null) return true; + + Task.Run(() => { + var di = new DirectoryInfo(Startup.TestingSetup.YavscWebPath); + Assert.True(di.Exists); + Environment.CurrentDirectory = di.FullName; + WebHostBuilder = new WebHostBuilder(); + webhostengnine = WebHostBuilder + .UseEnvironment("Development") + .UseServer("Yavsc") + .UseStartup() + .Build(); + WebApp = webhostengnine.Start(); + }).Wait(); + return true; + } public void Dispose() { + WebApp.Dispose(); + Logger.LogInformation("Disposing"); } @@ -234,6 +256,12 @@ namespace yavscTests _logger.LogError(ex.StackTrace); } return dbCreated; } } + + public WebHostBuilder WebHostBuilder { get; private set; } + + private IHostingEngine webhostengnine; + + public IApplication WebApp { get; private set; } } }