Skip to content

Commit

Permalink
chore: Made test for sql serve schema issue sql-server specific. I su…
Browse files Browse the repository at this point in the history
…spect the failing tests indicate the bug is still present on other DBMS's, but I don't know enough to go chasing that right now.
  • Loading branch information
wokket committed Jun 7, 2023
1 parent 53b3eb5 commit f0f34c0
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 30 deletions.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using System.Collections.Generic;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Dapper;
Expand Down Expand Up @@ -101,32 +101,4 @@ public async Task Creates_A_New_Version_In_Progress()
version.status.Should().Be(MigrationStatus.InProgress);
}

[Test]
public async Task Bug230_Uses_Server_Casing_Rules_For_Schema()
{
//for bug #230 - when targeting an existing schema use the servers casing rules, not .Net's
var db = TestConfig.RandomDatabase();
var parent = CreateRandomTempDirectory();
var knownFolders = FoldersConfiguration.Default(null);

CreateDummySql(parent, knownFolders[Sprocs]); // make sure there's something that could be logged...

await using (var migrator = Context.GetMigrator(db, parent, knownFolders))
{
await migrator.Migrate();
Assert.True(await migrator.DbMigrator.Database.VersionTableExists()); // we migrated into the `grate` schema.
}

// Now we'll run again with the same name but different cased schema
var grateConfig = Context.GetConfiguration(db, parent, knownFolders) with
{
SchemaName = "GRATE"
};

await using (var migrator = Context.GetMigrator(grateConfig))
{
await migrator.Migrate(); // should either reuse the existing schema if a case-insensitive server, or create a new second schema for use if case-sensitive.
Assert.True(await migrator.DbMigrator.Database.VersionTableExists()); // we migrated into the `GRATE` schema, which may be the same as 'grate' depending on server settings.
}
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
using System.Threading.Tasks;
using grate.Configuration;
using grate.unittests.TestInfrastructure;
using NUnit.Framework;

using static grate.Configuration.KnownFolderKeys;

namespace grate.unittests.SqlServer.Running_MigrationScripts;

[TestFixture]
Expand All @@ -9,4 +13,34 @@ namespace grate.unittests.SqlServer.Running_MigrationScripts;
public class Versioning_The_Database: Generic.Running_MigrationScripts.Versioning_The_Database
{
protected override IGrateTestContext Context => GrateTestContext.SqlServer;


[Test]
public async Task Bug230_Uses_Server_Casing_Rules_For_Schema()
{
//for bug #230 - when targeting an existing schema use the servers casing rules, not .Net's
var db = TestConfig.RandomDatabase();
var parent = CreateRandomTempDirectory();
var knownFolders = FoldersConfiguration.Default(null);

CreateDummySql(parent, knownFolders[Sprocs]); // make sure there's something that could be logged...

await using (var migrator = Context.GetMigrator(db, parent, knownFolders))
{
await migrator.Migrate();
Assert.True(await migrator.DbMigrator.Database.VersionTableExists()); // we migrated into the `grate` schema.
}

// Now we'll run again with the same name but different cased schema
var grateConfig = Context.GetConfiguration(db, parent, knownFolders) with
{
SchemaName = "GRATE"
};

await using (var migrator = Context.GetMigrator(grateConfig))
{
await migrator.Migrate(); // should either reuse the existing schema if a case-insensitive server, or create a new second schema for use if case-sensitive.
Assert.True(await migrator.DbMigrator.Database.VersionTableExists()); // we migrated into the `GRATE` schema, which may be the same as 'grate' depending on server settings.
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ namespace grate.unittests.SqlServerCaseSensitive.Running_MigrationScripts
[TestFixture]
[Category("SqlServerCaseSensitive")]
// ReSharper disable once InconsistentNaming
public class Versioning_The_Database : Generic.Running_MigrationScripts.Versioning_The_Database
public class Versioning_The_Database : grate.unittests.SqlServer.Running_MigrationScripts.Versioning_The_Database
{
protected override IGrateTestContext Context => GrateTestContext.SqlServerCaseSensitive;
}
Expand Down

0 comments on commit f0f34c0

Please sign in to comment.