diff --git a/Oqtane.Database.MySQL/MySQLDatabase.cs b/Oqtane.Database.MySQL/MySQLDatabase.cs index 609f3645..19d4de39 100644 --- a/Oqtane.Database.MySQL/MySQLDatabase.cs +++ b/Oqtane.Database.MySQL/MySQLDatabase.cs @@ -14,11 +14,20 @@ namespace Oqtane.Database.MySQL private static string _name => "MySQL"; + private readonly static string _typeName; + + static MySQLDatabase() + { + var typeQualifiedName = typeof(MySQLDatabase).AssemblyQualifiedName; + + _typeName = typeQualifiedName.Substring(0, typeQualifiedName.IndexOf(", Version")); + } + public MySQLDatabase() :base(_name, _friendlyName) { } public override string Provider => "MySql.EntityFrameworkCore"; - public override string TypeName => "Oqtane.Database.MySQL.MySQLDatabase, Oqtane.Database.MySQL"; + public override string TypeName => _typeName; public override OperationBuilder AddAutoIncrementColumn(ColumnsBuilder table, string name) { diff --git a/Oqtane.Database.PostgreSQL/PostgreSQLDatabase.cs b/Oqtane.Database.PostgreSQL/PostgreSQLDatabase.cs index bc44bea2..dbd1c953 100644 --- a/Oqtane.Database.PostgreSQL/PostgreSQLDatabase.cs +++ b/Oqtane.Database.PostgreSQL/PostgreSQLDatabase.cs @@ -17,8 +17,17 @@ namespace Oqtane.Database.PostgreSQL private static string _name => "PostgreSQL"; + private readonly static string _typeName; + private readonly INameRewriter _rewriter; + static PostgreSQLDatabase() + { + var typeQualifiedName = typeof(PostgreSQLDatabase).AssemblyQualifiedName; + + _typeName = typeQualifiedName.Substring(0, typeQualifiedName.IndexOf(", Version")); + } + public PostgreSQLDatabase() : base(_name, _friendlyName) { _rewriter = new SnakeCaseNameRewriter(CultureInfo.InvariantCulture); @@ -26,7 +35,7 @@ namespace Oqtane.Database.PostgreSQL public override string Provider => "Npgsql.EntityFrameworkCore.PostgreSQL"; - public override string TypeName => "Oqtane.Database.PostgreSQL.PostgreSQLDatabase, Oqtane.Database.PostgreSQL"; + public override string TypeName => _typeName; public override OperationBuilder AddAutoIncrementColumn(ColumnsBuilder table, string name) { diff --git a/Oqtane.Database.SqlServer/LocalDbDatabase.cs b/Oqtane.Database.SqlServer/LocalDbDatabase.cs index 8945f4ff..be9ed7ce 100644 --- a/Oqtane.Database.SqlServer/LocalDbDatabase.cs +++ b/Oqtane.Database.SqlServer/LocalDbDatabase.cs @@ -5,8 +5,17 @@ namespace Oqtane.Database.SqlServer private static string _friendlyName => "Local Database"; private static string _name => "LocalDB"; + private readonly static string _typeName; + + static LocalDbDatabase() + { + var typeQualifiedName = typeof(LocalDbDatabase).AssemblyQualifiedName; + + _typeName = typeQualifiedName.Substring(0, typeQualifiedName.IndexOf(", Version")); + } + public LocalDbDatabase() :base(_name, _friendlyName) { } - public override string TypeName => "Oqtane.Database.SqlServer.LocalDbDatabase, Oqtane.Database.SqlServer"; + public override string TypeName => _typeName; } } diff --git a/Oqtane.Database.SqlServer/SqlServerDatabase.cs b/Oqtane.Database.SqlServer/SqlServerDatabase.cs index 6a142fff..85dd54de 100644 --- a/Oqtane.Database.SqlServer/SqlServerDatabase.cs +++ b/Oqtane.Database.SqlServer/SqlServerDatabase.cs @@ -6,8 +6,17 @@ namespace Oqtane.Database.SqlServer private static string _name => "SqlServer"; + private readonly static string _typeName; + + static SqlServerDatabase() + { + var typeQualifiedName = typeof(SqlServerDatabase).AssemblyQualifiedName; + + _typeName = typeQualifiedName.Substring(0, typeQualifiedName.IndexOf(", Version")); + } + public SqlServerDatabase() : base(_name, _friendlyName) { } - public override string TypeName => "Oqtane.Database.SqlServer.SqlServerDatabase, Oqtane.Database.SqlServer"; + public override string TypeName => _typeName; } } diff --git a/Oqtane.Database.Sqlite/SqliteDatabase.cs b/Oqtane.Database.Sqlite/SqliteDatabase.cs index f092ef6e..7f01db74 100644 --- a/Oqtane.Database.Sqlite/SqliteDatabase.cs +++ b/Oqtane.Database.Sqlite/SqliteDatabase.cs @@ -14,11 +14,20 @@ namespace Oqtane.Database.Sqlite private static string _name => "Sqlite"; + private readonly static string _typeName; + + static SqliteDatabase() + { + var typeQualifiedName = typeof(SqliteDatabase).AssemblyQualifiedName; + + _typeName = typeQualifiedName.Substring(0, typeQualifiedName.IndexOf(", Version")); + } + public SqliteDatabase() :base(_name, _friendlyName) { } public override string Provider => "Microsoft.EntityFrameworkCore.Sqlite"; - public override string TypeName => "Oqtane.Database.Sqlite.SqliteDatabase, Oqtane.Database.Sqlite"; + public override string TypeName => _typeName; public override OperationBuilder AddAutoIncrementColumn(ColumnsBuilder table, string name) { diff --git a/Oqtane.Test/Oqtane.Database.MySQL/MySqlDatabaseTests.cs b/Oqtane.Test/Oqtane.Database.MySQL/MySqlDatabaseTests.cs new file mode 100644 index 00000000..a85f9181 --- /dev/null +++ b/Oqtane.Test/Oqtane.Database.MySQL/MySqlDatabaseTests.cs @@ -0,0 +1,17 @@ +using Xunit; + +namespace Oqtane.Database.MySQL.Tests +{ + public class PostgreSQLDatabaseTests + { + [Fact()] + public void VerifyDatabaseTypeName() + { + // Arrange & Act + var database = new MySQLDatabase(); + + // Assert + Assert.Equal("Oqtane.Database.MySQL.MySQLDatabase, Oqtane.Database.MySQL", database.TypeName); + } + } +} diff --git a/Oqtane.Test/Oqtane.Database.PostgreSQL/PostgreSQLDatabaseTests.cs b/Oqtane.Test/Oqtane.Database.PostgreSQL/PostgreSQLDatabaseTests.cs new file mode 100644 index 00000000..f8fac122 --- /dev/null +++ b/Oqtane.Test/Oqtane.Database.PostgreSQL/PostgreSQLDatabaseTests.cs @@ -0,0 +1,17 @@ +using Xunit; + +namespace Oqtane.Database.PostgreSQL.Tests +{ + public class PostgreSQLDatabaseTests + { + [Fact()] + public void VerifyDatabaseTypeName() + { + // Arrange & Act + var database = new PostgreSQLDatabase(); + + // Assert + Assert.Equal("Oqtane.Database.PostgreSQL.PostgreSQLDatabase, Oqtane.Database.PostgreSQL", database.TypeName); + } + } +} diff --git a/Oqtane.Test/Oqtane.Database.SqlServer/LocalDbDatabaseTests.cs b/Oqtane.Test/Oqtane.Database.SqlServer/LocalDbDatabaseTests.cs new file mode 100644 index 00000000..74856bd8 --- /dev/null +++ b/Oqtane.Test/Oqtane.Database.SqlServer/LocalDbDatabaseTests.cs @@ -0,0 +1,17 @@ +using Xunit; + +namespace Oqtane.Database.SqlServer.Tests +{ + public class LocalDbDatabaseTests + { + [Fact()] + public void VerifyDatabaseTypeName() + { + // Arrange & Act + var database = new LocalDbDatabase(); + + // Assert + Assert.Equal("Oqtane.Database.SqlServer.LocalDbDatabase, Oqtane.Database.SqlServer", database.TypeName); + } + } +} diff --git a/Oqtane.Test/Oqtane.Database.SqlServer/SqlServerDatabaseTests.cs b/Oqtane.Test/Oqtane.Database.SqlServer/SqlServerDatabaseTests.cs new file mode 100644 index 00000000..a6375e08 --- /dev/null +++ b/Oqtane.Test/Oqtane.Database.SqlServer/SqlServerDatabaseTests.cs @@ -0,0 +1,17 @@ +using Xunit; + +namespace Oqtane.Database.SqlServer.Tests +{ + public class SqlServerDatabaseTests + { + [Fact()] + public void VerifyDatabaseTypeName() + { + // Arrange & Act + var database = new SqlServerDatabase(); + + // Assert + Assert.Equal("Oqtane.Database.SqlServer.SqlServerDatabase, Oqtane.Database.SqlServer", database.TypeName); + } + } +} diff --git a/Oqtane.Test/Oqtane.Database.Sqlite/SqliteDatabaseTests.cs b/Oqtane.Test/Oqtane.Database.Sqlite/SqliteDatabaseTests.cs new file mode 100644 index 00000000..49fa5613 --- /dev/null +++ b/Oqtane.Test/Oqtane.Database.Sqlite/SqliteDatabaseTests.cs @@ -0,0 +1,17 @@ +using Xunit; + +namespace Oqtane.Database.Sqlite.Tests +{ + public class SqliteDatabaseTests + { + [Fact()] + public void VerifyDatabaseTypeName() + { + // Arrange & Act + var database = new SqliteDatabase(); + + // Assert + Assert.Equal("Oqtane.Database.Sqlite.SqliteDatabase, Oqtane.Database.Sqlite", database.TypeName); + } + } +} diff --git a/Oqtane.Test/Oqtane.Test.csproj b/Oqtane.Test/Oqtane.Test.csproj index b64a1433..2e49636e 100644 --- a/Oqtane.Test/Oqtane.Test.csproj +++ b/Oqtane.Test/Oqtane.Test.csproj @@ -29,6 +29,10 @@ + + + +