diff --git a/src/test/Mandatory/Database.cs b/src/test/Mandatory/Database.cs index c05a55d2..7d76ef6d 100644 --- a/src/test/Mandatory/Database.cs +++ b/src/test/Mandatory/Database.cs @@ -1,3 +1,4 @@ +using System; using Xunit; using Xunit.Abstractions; @@ -6,7 +7,7 @@ namespace test.Mandatory [Collection("Database")] [Trait("regres", "no")] [Trait("dev", "wip")] - public class Database: IClassFixture + public class Database: IClassFixture, IDisposable { ServerSideFixture _serverFixture; ITestOutputHelper output; @@ -14,6 +15,8 @@ namespace test.Mandatory { this.output = output; _serverFixture = serverFixture; + if (_serverFixture.DbCreated) + _serverFixture.DropTestDb(); output.WriteLine($"Startup.DbSettings.Testing is {Startup.DbSettings.Testing}"); } @@ -25,11 +28,15 @@ namespace test.Mandatory [Fact] public void InstallFromScratchUsingPoweredNpgsqlUser() { - if (_serverFixture.DbCreated) - _serverFixture.DropTestDb(); - _serverFixture.CreateTestDb(); _serverFixture.UpgradeDb(); } + + public void Dispose() + { + if (_serverFixture.DbCreated) + _serverFixture.DropTestDb(); + + } } } diff --git a/src/test/Mandatory/ServerSideFixture.cs b/src/test/Mandatory/ServerSideFixture.cs index 0ca3417a..a47d7d8b 100644 --- a/src/test/Mandatory/ServerSideFixture.cs +++ b/src/test/Mandatory/ServerSideFixture.cs @@ -82,9 +82,9 @@ namespace test _logger = value; } } - public bool DbCreated { get; private set; } + // public ServerSideFixture() { @@ -141,8 +141,6 @@ namespace test cx.Close(); } } - /* Needs a connection string parsing */ - public void CreateTestDb() { if (!DbCreated) @@ -157,6 +155,7 @@ namespace test _logger.LogInformation($"database created."); cx.Close(); } + DbCreated=true; } public void DropTestDb() { @@ -171,7 +170,9 @@ namespace test _logger.LogInformation($"database dropped"); cx.Close(); } + DbCreated=false; } + public void Dispose() { Logger.LogInformation("Disposing"); diff --git a/src/test/Mandatory/YavscMandatory.cs b/src/test/Mandatory/YavscMandatory.cs index 18bf5ad1..647a988c 100755 --- a/src/test/Mandatory/YavscMandatory.cs +++ b/src/test/Mandatory/YavscMandatory.cs @@ -29,14 +29,18 @@ namespace test [Collection("Yavsc mandatory success story")] [Trait("regres", "no")] - public class YavscMandatory: BaseTestContext, IClassFixture + public class YavscMandatory: BaseTestContext, IClassFixture, IDisposable { ApplicationDbContext _dbContext; + ServerSideFixture _fixture; public YavscMandatory(ITestOutputHelper output, ServerSideFixture fixture) : base (output, fixture) { _dbContext = fixture.DbContext; + _fixture = fixture; + if (!_fixture.DbCreated) + _fixture.CreateTestDb(); } [Fact] @@ -47,9 +51,12 @@ namespace test var di = new DirectoryInfo(_serverFixture.SiteSetup.GitRepository); if (!di.Exists) di.Create(); + var clone = new GitClone(_serverFixture.SiteSetup.GitRepository); clone.Launch(firstProject); + gitRepo = di.FullName; } + string gitRepo=null; [Fact] void AnsiToHtml() @@ -67,7 +74,6 @@ namespace test } } - [Fact] public void MvcRazorHostAndParser() { @@ -80,6 +86,7 @@ namespace test void HaveHost() { beforeCompileContext = CreateYavscCompilationContext(); + } [Fact] @@ -186,5 +193,16 @@ namespace test IOptions localOptions = ActivatorUtilities.GetServiceOrCreateInstance>(provider); ; } + + public void Dispose() + { + if (gitRepo!=null) + { + Directory.Delete(Path.Combine(gitRepo,"yavsc"), true); + } + if (_fixture.DbCreated) + _fixture.DropTestDb(); + + } } }