Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add .NET 7 support #305

Merged
merged 8 commits into from
Jun 30, 2023
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Clean test code
lecaillon committed Jun 30, 2023

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
commit 90cd1f61c94b8346ae25a1cac8fac54bd42f2d5b
2 changes: 1 addition & 1 deletion test/Evolve.Tests/Connection/WrappedConnectionTest.cs
Original file line number Diff line number Diff line change
@@ -7,7 +7,7 @@

namespace EvolveDb.Tests.Connection
{
public class WrappedConnectionTest : DbContainerFixture<PostgreSqlContainer>
public record WrappedConnectionTest : DbContainerFixture<PostgreSqlContainer>
{
[Fact]
[Category(Test.Connection)]
Original file line number Diff line number Diff line change
@@ -7,7 +7,7 @@

namespace EvolveDb.Tests.Infrastructure
{
public abstract class DbContainerFixture<T> : IAsyncLifetime where T : IDbContainer, new()
public abstract record DbContainerFixture<T> : IAsyncLifetime where T : IDbContainer, new()
{
private static readonly SemaphoreSlim Semaphore = new(1);

4 changes: 3 additions & 1 deletion test/Evolve.Tests/Integration/Cassandra/DialectTest.cs
Original file line number Diff line number Diff line change
@@ -6,7 +6,7 @@

namespace EvolveDb.Tests.Integration.Cassandra
{
public class DialectTest : DbContainerFixture<CassandraContainer>
public record DialectTest : DbContainerFixture<CassandraContainer>
{
/// <summary>
/// Second part of the integration test.
@@ -16,6 +16,8 @@ public class DialectTest : DbContainerFixture<CassandraContainer>
/// in the same test context, we merge the integration tests to only use one container.
/// My guess, a possible Cassandra driver issue.
/// </remarks>
[FactSkippedOnAppVeyor]
[Category(Test.Cassandra)]
public void Run_all_Cassandra_integration_tests_work()
{
// Arrange
19 changes: 3 additions & 16 deletions test/Evolve.Tests/Integration/Cassandra/MigrationTest.cs
Original file line number Diff line number Diff line change
@@ -5,32 +5,24 @@

namespace EvolveDb.Tests.Integration.Cassandra
{
public class MigrationTest : DbContainerFixture<CassandraContainer>
public record MigrationTest(ITestOutputHelper Output) : DbContainerFixture<CassandraContainer>
{
private readonly ITestOutputHelper _output;

public MigrationTest(ITestOutputHelper output)
{
_output = output;
}

public override bool FromScratch => Local;

[FactSkippedOnAppVeyor]
[Category(Test.Cassandra)]
public void Run_all_Cassandra_integration_tests_work()
{
// Arrange
string metadataKeyspaceName = "my_keyspace_1"; // this name must also be declared in _evolve.cassandra.json
var cnn = CreateDbConnection();
var evolve = new Evolve(cnn, msg => _output.WriteLine(msg))
var evolve = new Evolve(cnn, msg => Output.WriteLine(msg))
{
CommandTimeout = 25,
MetadataTableSchema = metadataKeyspaceName,
MetadataTableName = "evolve_change_log",
Placeholders = new Dictionary<string, string> { ["${keyspace}"] = metadataKeyspaceName },
SqlMigrationSuffix = ".cql"
};
evolve.Erase();

// Assert
evolve.AssertInfoIsSuccessful(cnn)
@@ -53,11 +45,6 @@ public void Run_all_Cassandra_integration_tests_work()
evolve.ChangeLocations(CassandraDb.MigrationFolder)
.AssertMigrateIsSuccessful(cnn)
.AssertInfoIsSuccessful(cnn);

evolve.AssertEraseIsSuccessful(cnn, e => e.IsEraseDisabled = false);

// Call the second part of the Cassandra integration tests
new DialectTest().Run_all_Cassandra_integration_tests_work();
}
}
}
4 changes: 1 addition & 3 deletions test/Evolve.Tests/Integration/CockroachDB/DialectTest.cs
Original file line number Diff line number Diff line change
@@ -5,10 +5,8 @@

namespace EvolveDb.Tests.Integration.CockroachDb
{
public class DialectTest : DbContainerFixture<CockroachDBContainer>
public record DialectTest : DbContainerFixture<CockroachDBContainer>
{
public override bool FromScratch => TestContext.Local;

[FactSkippedOnAppVeyor]
[Category(Test.CockroachDB)]
public void Run_all_CockroachDB_integration_tests_work()
14 changes: 3 additions & 11 deletions test/Evolve.Tests/Integration/CockroachDB/MigrationTest.cs
Original file line number Diff line number Diff line change
@@ -4,27 +4,19 @@

namespace EvolveDb.Tests.Integration.CockroachDb
{
public class MigrationTests : DbContainerFixture<CockroachDBContainer>
public record MigrationTests(ITestOutputHelper Output) : DbContainerFixture<CockroachDBContainer>
{
private readonly ITestOutputHelper _output;

public MigrationTests(ITestOutputHelper output)
{
_output = output;
}

public override bool FromScratch => Local;

[FactSkippedOnAppVeyor]
[Category(Test.CockroachDB)]
public void Run_all_CockroachDB_migrations_work()
{
// Arrange
var cnn = CreateDbConnection();
var evolve = new Evolve(cnn, msg => _output.WriteLine(msg))
var evolve = new Evolve(cnn, msg => Output.WriteLine(msg))
{
Schemas = new[] { "evolve", "defaultdb" }, // MetadataTableSchema = evolve | migrations = defaultdb
};
evolve.Erase();

// Assert
evolve.AssertInfoIsSuccessful(cnn)
3 changes: 2 additions & 1 deletion test/Evolve.Tests/Integration/MySQL/DialectTest.cs
Original file line number Diff line number Diff line change
@@ -6,7 +6,7 @@

namespace EvolveDb.Tests.Integration.MySql
{
public class DialectTest : DbContainerFixture<MySQLContainer>
public record DialectTest : DbContainerFixture<MySQLContainer>
{
[Fact]
[Category(Test.MySQL)]
@@ -20,6 +20,7 @@ public void Run_all_MySQL_integration_tests_work()
var schema = new MySQLSchema(schemaName, wcnn);

// Assert
schema.Drop();
schema.AssertIsNotExists();
schema.AssertCreation();
schema.AssertExists();
11 changes: 2 additions & 9 deletions test/Evolve.Tests/Integration/MySQL/MigrationTest.cs
Original file line number Diff line number Diff line change
@@ -5,22 +5,15 @@

namespace EvolveDb.Tests.Integration.MySql
{
public class MigrationTest : DbContainerFixture<MySQLContainer>
public record MigrationTest(ITestOutputHelper Output) : DbContainerFixture<MySQLContainer>
{
private readonly ITestOutputHelper _output;

public MigrationTest(ITestOutputHelper output)
{
_output = output;
}

[Fact]
[Category(Test.MySQL)]
public void Run_all_MySQL_migrations_work()
{
// Arrange
var cnn = CreateDbConnection();
var evolve = new Evolve(cnn, msg => _output.WriteLine(msg))
var evolve = new Evolve(cnn, msg => Output.WriteLine(msg))
{
EmbeddedResourceAssemblies = new[] { typeof(TestContext).Assembly },
EmbeddedResourceFilters = new[] { MySQL.MigrationFolderFilter },
3 changes: 2 additions & 1 deletion test/Evolve.Tests/Integration/PostgreSQL/DialectTest.cs
Original file line number Diff line number Diff line change
@@ -6,7 +6,7 @@

namespace EvolveDb.Tests.Integration.PostgregSql
{
public class DialectTest : DbContainerFixture<PostgreSqlContainer>
public record DialectTest : DbContainerFixture<PostgreSqlContainer>
{
[Fact]
[Category(Test.PostgreSQL)]
@@ -18,6 +18,7 @@ public void Run_all_PostgreSQL_integration_tests_work()
var db = DatabaseHelperFactory.GetDatabaseHelper(DBMS.PostgreSQL, wcnn);
string schemaName = "My metadata schema";
var schema = new PostgreSQLSchema(schemaName, wcnn);
schema.Drop();

// Assert
schema.AssertIsNotExists();
14 changes: 3 additions & 11 deletions test/Evolve.Tests/Integration/PostgreSQL/MigrationTest.cs
Original file line number Diff line number Diff line change
@@ -7,28 +7,22 @@

namespace EvolveDb.Tests.Integration.PostgregSql
{
public class MigrationTests : DbContainerFixture<PostgreSqlContainer>
public record MigrationTests(ITestOutputHelper Output) : DbContainerFixture<PostgreSqlContainer>
{
private readonly ITestOutputHelper _output;

public MigrationTests(ITestOutputHelper output)
{
_output = output;
}

[Fact]
[Category(Test.PostgreSQL)]
public void Run_all_PostgreSQL_migrations_work()
{
// Arrange
string[] locations = AppVeyor ? new[] { PostgreSQL.MigrationFolder } : new[] { PostgreSQL.MigrationFolder, PostgreSQL.Migration11Folder }; // Add specific PostgreSQL 11 scripts
var cnn = CreateDbConnection();
var evolve = new Evolve(cnn, msg => _output.WriteLine(msg), DBMS.PostgreSQL)
var evolve = new Evolve(cnn, msg => Output.WriteLine(msg), DBMS.PostgreSQL)
{
Schemas = new[] { "public", "unittest" },
MetadataTableSchema = "unittest",
Placeholders = new Dictionary<string, string> { ["${schema1}"] = "unittest" }
};
evolve.Erase();

// Assert
evolve.AssertInfoIsSuccessful(cnn)
@@ -67,8 +61,6 @@ public void Run_all_PostgreSQL_migrations_work()
evolve.ChangeLocations(PostgreSQL.RepeatableFolder)
.AssertRepairIsSuccessful(cnn, expectedNbReparation: 0)
.AssertMigrateIsSuccessful(cnn);

evolve.AssertEraseIsSuccessful(cnn);
}
}
}
6 changes: 1 addition & 5 deletions test/Evolve.Tests/Integration/PostgreSQL/Scenario001.cs
Original file line number Diff line number Diff line change
@@ -4,12 +4,8 @@

namespace EvolveDb.Tests.Integration.PostgreSql
{
public class Scenario001 : Scenario<PostgreSqlContainer>
public record Scenario001(ITestOutputHelper Output) : Scenario<PostgreSqlContainer>(Output)
{
public Scenario001(ITestOutputHelper output) : base(output)
{
}

[Fact]
[Category(Test.PostgreSQL, Test.Sceanario)]
public void Scenario_retry_repeatable_migrations_until_no_error()
6 changes: 1 addition & 5 deletions test/Evolve.Tests/Integration/PostgreSQL/Scenario002.cs
Original file line number Diff line number Diff line change
@@ -4,12 +4,8 @@

namespace EvolveDb.Tests.Integration.PostgreSql
{
public class Scenario002 : Scenario<PostgreSqlContainer>
public record Scenario002(ITestOutputHelper Output) : Scenario<PostgreSqlContainer>(Output)
{
public Scenario002(ITestOutputHelper output) : base(output)
{
}

[Fact]
[Category(Test.PostgreSQL, Test.Sceanario)]
public void Scenario_retry_repeatable_migrations_until_no_progression()
4 changes: 1 addition & 3 deletions test/Evolve.Tests/Integration/PostgreSQL/Scenario003.cs
Original file line number Diff line number Diff line change
@@ -6,10 +6,8 @@

namespace EvolveDb.Tests.Integration.PostgreSql
{
public class Scenario003 : Scenario<PostgreSqlContainer>
public record Scenario003(ITestOutputHelper Output) : Scenario<PostgreSqlContainer>(Output)
{
public Scenario003(ITestOutputHelper output) : base(output) {}

[Fact]
[Category(Test.PostgreSQL, Test.Sceanario)]
public void Scenario_postresql_tx_commit_all_only_when_every_scripts_succeed()
4 changes: 1 addition & 3 deletions test/Evolve.Tests/Integration/PostgreSQL/Scenario004.cs
Original file line number Diff line number Diff line change
@@ -6,10 +6,8 @@

namespace EvolveDb.Tests.Integration.PostgreSql
{
public class Scenario004 : Scenario<PostgreSqlContainer>
public record Scenario004(ITestOutputHelper Output) : Scenario<PostgreSqlContainer>(Output)
{
public Scenario004(ITestOutputHelper output) : base(output) {}

[Fact]
[Category(Test.PostgreSQL, Test.Sceanario)]
public void Scenario_postresql_tx_rollback_all_either_when_migration_succeeds_or_fails()
4 changes: 1 addition & 3 deletions test/Evolve.Tests/Integration/PostgreSQL/Scenario005.cs
Original file line number Diff line number Diff line change
@@ -4,10 +4,8 @@

namespace EvolveDb.Tests.Integration.PostgreSql
{
public class Scenario005 : Scenario<PostgreSqlContainer>
public record Scenario005(ITestOutputHelper Output) : Scenario<PostgreSqlContainer>(Output)
{
public Scenario005(ITestOutputHelper output) : base(output) {}

[Fact]
[Category(Test.PostgreSQL, Test.Sceanario)]
public void Scenario_skip_migration_until_target_version_is_reached()
4 changes: 1 addition & 3 deletions test/Evolve.Tests/Integration/PostgreSQL/Scenario006.cs
Original file line number Diff line number Diff line change
@@ -5,10 +5,8 @@

namespace EvolveDb.Tests.Integration.PostgreSql
{
public class Scenario006 : Scenario<PostgreSqlContainer>
public record Scenario006(ITestOutputHelper Output) : Scenario<PostgreSqlContainer>(Output)
{
public Scenario006(ITestOutputHelper output) : base(output) {}

[Fact]
[Category(Test.PostgreSQL, Test.Sceanario)]
public void Scenario_repeatable_migration_executed_everytime()
4 changes: 1 addition & 3 deletions test/Evolve.Tests/Integration/PostgreSQL/Scenario007.cs
Original file line number Diff line number Diff line change
@@ -8,10 +8,8 @@

namespace EvolveDb.Tests.Integration.PostgreSql
{
public class Scenario007 : Scenario<PostgreSqlContainer>
public record Scenario007(ITestOutputHelper Output) : Scenario<PostgreSqlContainer>(Output)
{
public Scenario007(ITestOutputHelper output) : base(output) {}

[Fact]
[Category(Test.PostgreSQL, Test.Sceanario)]
public void Scenario_use_a_custom_migration_loader_only_when_is_set()
4 changes: 1 addition & 3 deletions test/Evolve.Tests/Integration/PostgreSQL/Scenario008.cs
Original file line number Diff line number Diff line change
@@ -5,10 +5,8 @@

namespace EvolveDb.Tests.Integration.PostgreSql
{
public class Scenario008 : Scenario<PostgreSqlContainer>
public record Scenario008(ITestOutputHelper Output) : Scenario<PostgreSqlContainer>(Output)
{
public Scenario008(ITestOutputHelper output) : base(output) {}

[Fact]
[Category(Test.PostgreSQL, Test.Sceanario)]
public void Scenario_check_validation()
4 changes: 1 addition & 3 deletions test/Evolve.Tests/Integration/PostgreSQL/Scenario009.cs
Original file line number Diff line number Diff line change
@@ -4,10 +4,8 @@

namespace EvolveDb.Tests.Integration.PostgreSql
{
public class Scenario009 : Scenario<PostgreSqlContainer>
public record Scenario009(ITestOutputHelper Output) : Scenario<PostgreSqlContainer>(Output)
{
public Scenario009(ITestOutputHelper output) : base(output) {}

[Fact]
[Category(Test.PostgreSQL, Test.Sceanario)]
public void Scenario_drop_extension_should_work()
7 changes: 2 additions & 5 deletions test/Evolve.Tests/Integration/SQLServer/DialectTest.cs
Original file line number Diff line number Diff line change
@@ -3,18 +3,14 @@
using EvolveDb.Dialect.SQLServer;
using EvolveDb.Tests.Infrastructure;
using System.Data.SqlClient;
using System.Xml.Linq;
using Xunit;
using static EvolveDb.Tests.TestContext;

namespace EvolveDb.Tests.Integration.SQLServer
{
public class DialectTest : DbContainerFixture<SQLServerContainer>
public record DialectTest : DbContainerFixture<SQLServerContainer>
{
public const string DbName = "my_database_1";

public override bool FromScratch => Local;

[Fact]
[Category(Test.SQLServer)]
public void Run_all_SQLServer_integration_tests_work()
@@ -26,6 +22,7 @@ public void Run_all_SQLServer_integration_tests_work()
var db = DatabaseHelperFactory.GetDatabaseHelper(DBMS.SQLServer, wcnn);
string schemaName = "dbo";
var schema = new SQLServerSchema(schemaName, wcnn);
schema.Erase();

// Assert
db.AssertDefaultSchemaName(schemaName)
13 changes: 3 additions & 10 deletions test/Evolve.Tests/Integration/SQLServer/MigrationTest.cs
Original file line number Diff line number Diff line change
@@ -8,17 +8,9 @@

namespace EvolveDb.Tests.Integration.SQLServer
{
public class MigrationTest : DbContainerFixture<SQLServerContainer>
public record MigrationTest(ITestOutputHelper Output) : DbContainerFixture<SQLServerContainer>
{
public const string DbName = "my_database_2";
private readonly ITestOutputHelper _output;

public MigrationTest(ITestOutputHelper output)
{
_output = output;
}

public override bool FromScratch => Local;

[Fact]
[Category(Test.SQLServer)]
@@ -27,11 +19,12 @@ public void Run_all_SQLServer_migrations_work()
// Arrange
TestUtil.CreateSqlServerDatabase(DbName, CnxStr);
var cnn = new SqlConnection(CnxStr.Replace("master", DbName));
var evolve = new Evolve(cnn, msg => _output.WriteLine(msg))
var evolve = new Evolve(cnn, msg => Output.WriteLine(msg))
{
Placeholders = new Dictionary<string, string> { ["${db}"] = DbName, ["${schema2}"] = "dbo" },
TargetVersion = new MigrationVersion("8_9"),
};
evolve.Erase();

// Assert
evolve.AssertInfoIsSuccessful(cnn)
2 changes: 1 addition & 1 deletion test/Evolve.Tests/Integration/SQLServer/Scenario101.cs
Original file line number Diff line number Diff line change
@@ -6,7 +6,7 @@

namespace EvolveDb.Tests.Integration.SQLServer
{
public class Scenario101 : Scenario<SQLServerContainer>
public record Scenario101 : Scenario<SQLServerContainer>
{
public Scenario101(ITestOutputHelper output) : base(output) { }

2 changes: 1 addition & 1 deletion test/Evolve.Tests/Integration/SQLServer/Scenario102.cs
Original file line number Diff line number Diff line change
@@ -6,7 +6,7 @@

namespace EvolveDb.Tests.Integration.SQLServer
{
public class Scenario102 : Scenario<SQLServerContainer>
public record Scenario102 : Scenario<SQLServerContainer>
{
public Scenario102(ITestOutputHelper output) : base(output) { }

10 changes: 2 additions & 8 deletions test/Evolve.Tests/Integration/ScenarioBase.cs
Original file line number Diff line number Diff line change
@@ -11,15 +11,9 @@

namespace EvolveDb.Tests.Integration
{
public abstract class Scenario<T> : DbContainerFixture<T> where T : IDbContainer, new()
public abstract record Scenario<T>(ITestOutputHelper Output) : DbContainerFixture<T> where T : IDbContainer, new()
{
protected readonly T _dbContainer = new();
protected readonly ITestOutputHelper _output;

public Scenario(ITestOutputHelper output)
{
_output = output;
}

public DbConnection Cnn { get; private set; }
internal WrappedConnection WrappedConnection { get; private set; }
@@ -70,7 +64,7 @@ private void Init()
}

WrappedConnection = new WrappedConnection(Cnn);
Evolve = new Evolve(Cnn, msg => _output.WriteLine(msg), Dbms)
Evolve = new Evolve(Cnn, msg => Output.WriteLine(msg), Dbms)
{
Schemas = new[] { SchemaName },
MetadataTableSchema = SchemaName,