Merge pull request #1357 from hishamco/database-type

Database type name should use type AssemblyQualifiedName instead of magic string
This commit is contained in:
Shaun Walker 2021-05-19 08:44:12 -04:00 committed by GitHub
commit bb195e4796
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 139 additions and 5 deletions

View File

@ -14,11 +14,20 @@ namespace Oqtane.Database.MySQL
private static string _name => "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 MySQLDatabase() :base(_name, _friendlyName) { }
public override string Provider => "MySql.EntityFrameworkCore"; 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<AddColumnOperation> AddAutoIncrementColumn(ColumnsBuilder table, string name) public override OperationBuilder<AddColumnOperation> AddAutoIncrementColumn(ColumnsBuilder table, string name)
{ {

View File

@ -17,8 +17,17 @@ namespace Oqtane.Database.PostgreSQL
private static string _name => "PostgreSQL"; private static string _name => "PostgreSQL";
private readonly static string _typeName;
private readonly INameRewriter _rewriter; private readonly INameRewriter _rewriter;
static PostgreSQLDatabase()
{
var typeQualifiedName = typeof(PostgreSQLDatabase).AssemblyQualifiedName;
_typeName = typeQualifiedName.Substring(0, typeQualifiedName.IndexOf(", Version"));
}
public PostgreSQLDatabase() : base(_name, _friendlyName) public PostgreSQLDatabase() : base(_name, _friendlyName)
{ {
_rewriter = new SnakeCaseNameRewriter(CultureInfo.InvariantCulture); _rewriter = new SnakeCaseNameRewriter(CultureInfo.InvariantCulture);
@ -26,7 +35,7 @@ namespace Oqtane.Database.PostgreSQL
public override string Provider => "Npgsql.EntityFrameworkCore.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<AddColumnOperation> AddAutoIncrementColumn(ColumnsBuilder table, string name) public override OperationBuilder<AddColumnOperation> AddAutoIncrementColumn(ColumnsBuilder table, string name)
{ {

View File

@ -5,8 +5,17 @@ namespace Oqtane.Database.SqlServer
private static string _friendlyName => "Local Database"; private static string _friendlyName => "Local Database";
private static string _name => "LocalDB"; 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 LocalDbDatabase() :base(_name, _friendlyName) { }
public override string TypeName => "Oqtane.Database.SqlServer.LocalDbDatabase, Oqtane.Database.SqlServer"; public override string TypeName => _typeName;
} }
} }

View File

@ -6,8 +6,17 @@ namespace Oqtane.Database.SqlServer
private static string _name => "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 SqlServerDatabase() : base(_name, _friendlyName) { }
public override string TypeName => "Oqtane.Database.SqlServer.SqlServerDatabase, Oqtane.Database.SqlServer"; public override string TypeName => _typeName;
} }
} }

View File

@ -14,11 +14,20 @@ namespace Oqtane.Database.Sqlite
private static string _name => "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 SqliteDatabase() :base(_name, _friendlyName) { }
public override string Provider => "Microsoft.EntityFrameworkCore.Sqlite"; 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<AddColumnOperation> AddAutoIncrementColumn(ColumnsBuilder table, string name) public override OperationBuilder<AddColumnOperation> AddAutoIncrementColumn(ColumnsBuilder table, string name)
{ {

View File

@ -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);
}
}
}

View File

@ -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);
}
}
}

View File

@ -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);
}
}
}

View File

@ -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);
}
}
}

View File

@ -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);
}
}
}

View File

@ -29,6 +29,10 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\Oqtane.Database.MySQL\Oqtane.Database.MySQL.csproj" />
<ProjectReference Include="..\Oqtane.Database.PostgreSQL\Oqtane.Database.PostgreSQL.csproj" />
<ProjectReference Include="..\Oqtane.Database.Sqlite\Oqtane.Database.Sqlite.csproj" />
<ProjectReference Include="..\Oqtane.Database.SqlServer\Oqtane.Database.SqlServer.csproj" />
<ProjectReference Include="..\Oqtane.Shared\Oqtane.Shared.csproj" /> <ProjectReference Include="..\Oqtane.Shared\Oqtane.Shared.csproj" />
</ItemGroup> </ItemGroup>