Skip to content

Commit

Permalink
Merge pull request #19125 from abpframework/AbpUnitTestSqliteConnection
Browse files Browse the repository at this point in the history
Add `AbpUnitTestSqliteConnection` for unit test.
  • Loading branch information
EngincanV committed Feb 26, 2024
2 parents 5a9f0e6 + c4cf58f commit 10a08a9
Show file tree
Hide file tree
Showing 19 changed files with 73 additions and 18 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
using System.Threading;
using Microsoft.Data.Sqlite;
using Volo.Abp.Threading;

namespace Volo.Abp.EntityFrameworkCore.Sqlite;

/// <summary>
/// This class is for unit testing purposes.
/// It prevents exceptions in concurrent testing because Sqlite is not thread-safe.
/// </summary>
public class AbpUnitTestSqliteConnection : SqliteConnection
{
public AbpUnitTestSqliteConnection(string connectionString)
: base(connectionString)
{
}

public override SqliteCommand CreateCommand()
{
return new AbpSqliteCommand
{
Connection = this,
CommandTimeout = DefaultTimeout,
Transaction = Transaction
};
}
}

internal class AbpSqliteCommand : SqliteCommand
{
private readonly static SemaphoreSlim Semaphore = new SemaphoreSlim(1, 1);

public override SqliteConnection? Connection
{
get => base.Connection;
set
{
using (Semaphore.Lock())
{
base.Connection = value;
}
}
}

protected override void Dispose(bool disposing)
{
using (Semaphore.Lock())
{
base.Dispose(disposing);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ public override void ConfigureServices(ServiceConfigurationContext context)

private static SqliteConnection CreateDatabaseAndGetConnection()
{
var connection = new SqliteConnection("Data Source=:memory:");
var connection = new AbpUnitTestSqliteConnection("Data Source=:memory:");
connection.Open();

using (var context = new AbpAuditingTestDbContext(new DbContextOptionsBuilder<AbpAuditingTestDbContext>()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ public override void OnPreApplicationInitialization(ApplicationInitializationCon

private static SqliteConnection CreateDatabaseAndGetConnection()
{
var connection = new SqliteConnection("Data Source=:memory:");
var connection = new AbpUnitTestSqliteConnection("Data Source=:memory:");
connection.Open();

using (var context = new TestMigrationsDbContext(new DbContextOptionsBuilder<TestMigrationsDbContext>().UseSqlite(connection).Options))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public override void ConfigureServices(ServiceConfigurationContext context)
}
private static SqliteConnection CreateDatabaseAndGetConnection()
{
var connection = new SqliteConnection("Data Source=:memory:");
var connection = new AbpUnitTestSqliteConnection("Data Source=:memory:");
connection.Open();

new IdentityDbContext(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public override void ConfigureServices(ServiceConfigurationContext context)

private static SqliteConnection CreateDatabaseAndGetConnection()
{
var connection = new SqliteConnection("Data Source=:memory:");
var connection = new AbpUnitTestSqliteConnection("Data Source=:memory:");
connection.Open();

new AbpAuditLoggingDbContext(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public override void ConfigureServices(ServiceConfigurationContext context)

private static SqliteConnection CreateDatabaseAndGetConnection()
{
var connection = new SqliteConnection("Data Source=:memory:");
var connection = new AbpUnitTestSqliteConnection("Data Source=:memory:");
connection.Open();

new BackgroundJobsDbContext(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,16 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage;
using Volo.Abp.EntityFrameworkCore.Sqlite;
using Volo.Abp.EntityFrameworkCore;
using Volo.Abp.Modularity;

namespace Volo.Abp.BlobStoring.Database.EntityFrameworkCore;

[DependsOn(
typeof(BlobStoringDatabaseTestBaseModule),
typeof(BlobStoringDatabaseEntityFrameworkCoreModule)
typeof(BlobStoringDatabaseEntityFrameworkCoreModule),
typeof(AbpEntityFrameworkCoreSqliteModule)
)]
public class BlobStoringDatabaseEntityFrameworkCoreTestModule : AbpModule
{
Expand All @@ -28,7 +30,7 @@ public override void ConfigureServices(ServiceConfigurationContext context)

private static SqliteConnection CreateDatabaseAndGetConnection()
{
var connection = new SqliteConnection("Data Source=:memory:");
var connection = new AbpUnitTestSqliteConnection("Data Source=:memory:");
connection.Open();

new BlobStoringDbContext(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Proxies" />
<ProjectReference Include="..\..\src\Volo.Abp.BlobStoring.Database.EntityFrameworkCore\Volo.Abp.BlobStoring.Database.EntityFrameworkCore.csproj" />
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.EntityFrameworkCore.Sqlite\Volo.Abp.EntityFrameworkCore.Sqlite.csproj" />
<ProjectReference Include="..\Volo.Abp.BlobStoring.Database.TestBase\Volo.Abp.BlobStoring.Database.TestBase.csproj" />
</ItemGroup>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ public override void ConfigureServices(ServiceConfigurationContext context)

private static SqliteConnection CreateDatabaseAndGetConnection()
{
var connection = new SqliteConnection("Data Source=:memory:");
var connection = new AbpUnitTestSqliteConnection("Data Source=:memory:");
connection.Open();

var options = new DbContextOptionsBuilder<BloggingDbContext>().UseSqlite(connection).Options;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ public override void ConfigureServices(ServiceConfigurationContext context)

private static SqliteConnection CreateDatabaseAndGetConnection()
{
var connection = new SqliteConnection("Data Source=:memory:");
var connection = new AbpUnitTestSqliteConnection("Data Source=:memory:");
connection.Open();

new CmsKitDbContext(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ public override void ConfigureServices(ServiceConfigurationContext context)

private static SqliteConnection CreateDatabaseAndGetConnection()
{
var connection = new SqliteConnection("Data Source=:memory:");
var connection = new AbpUnitTestSqliteConnection("Data Source=:memory:");
connection.Open();

new DocsDbContext(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public override void ConfigureServices(ServiceConfigurationContext context)

private static SqliteConnection CreateDatabaseAndGetConnection()
{
var connection = new SqliteConnection("Data Source=:memory:");
var connection = new AbpUnitTestSqliteConnection("Data Source=:memory:");
connection.Open();

new FeatureManagementDbContext(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public override void ConfigureServices(ServiceConfigurationContext context)

private static SqliteConnection CreateDatabaseAndGetConnection()
{
var connection = new SqliteConnection("Data Source=:memory:");
var connection = new AbpUnitTestSqliteConnection("Data Source=:memory:");
connection.Open();

new IdentityDbContext(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ public override void ConfigureServices(ServiceConfigurationContext context)

private static SqliteConnection CreateDatabaseAndGetConnection()
{
var connection = new SqliteConnection("Data Source=:memory:");
var connection = new AbpUnitTestSqliteConnection("Data Source=:memory:");
connection.Open();

new IdentityDbContext(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public override void ConfigureServices(ServiceConfigurationContext context)

private static SqliteConnection CreateDatabaseAndGetConnection()
{
var connection = new SqliteConnection("Data Source=:memory:");
var connection = new AbpUnitTestSqliteConnection("Data Source=:memory:");
connection.Open();

new IdentityDbContext(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ public override void ConfigureServices(ServiceConfigurationContext context)

private static SqliteConnection CreateDatabaseAndGetConnection()
{
var connection = new SqliteConnection("Data Source=:memory:");
var connection = new AbpUnitTestSqliteConnection("Data Source=:memory:");
connection.Open();

new SettingManagementDbContext(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public override void ConfigureServices(ServiceConfigurationContext context)

private static SqliteConnection CreateDatabaseAndGetConnection()
{
var connection = new SqliteConnection("Data Source=:memory:");
var connection = new AbpUnitTestSqliteConnection("Data Source=:memory:");
connection.Open();

new TenantManagementDbContext(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ public override void OnApplicationShutdown(ApplicationShutdownContext context)

private static SqliteConnection CreateDatabaseAndGetConnection()
{
var connection = new SqliteConnection("Data Source=:memory:");
var connection = new AbpUnitTestSqliteConnection("Data Source=:memory:");
connection.Open();

var options = new DbContextOptionsBuilder<MyProjectNameDbContext>()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ public override void ConfigureServices(ServiceConfigurationContext context)

private static SqliteConnection CreateDatabaseAndGetConnection()
{
var connection = new SqliteConnection("Data Source=:memory:");
var connection = new AbpUnitTestSqliteConnection("Data Source=:memory:");
connection.Open();

new MyProjectNameDbContext(
Expand Down

0 comments on commit 10a08a9

Please sign in to comment.