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 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<AddColumnOperation> AddAutoIncrementColumn(ColumnsBuilder table, string name)
{

View File

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

View File

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

View File

@ -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<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>
<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" />
</ItemGroup>