Skip to content

Commit

Permalink
Upgraded packages and introduced Testcontainers for the integration t…
Browse files Browse the repository at this point in the history
…ests. (#64)

* Updated packages.

* Added .vs folder to .gitignore

* Introduced Testcontainers to execute the integration tests.
  • Loading branch information
mgernand authored Apr 29, 2024
1 parent 6855136 commit a6d3cb6
Show file tree
Hide file tree
Showing 25 changed files with 546 additions and 241 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,5 @@ _ReSharper*/
.DS_Store

packages/

.vs/
78 changes: 74 additions & 4 deletions AppAny.Quartz.EntityFrameworkCore.Migrations.sln
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,29 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{F87C6291
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AppAny.Quartz.EntityFrameworkCore.Migrations.Tests", "tests\AppAny.Quartz.EntityFrameworkCore.Migrations.Tests\AppAny.Quartz.EntityFrameworkCore.Migrations.Tests.csproj", "{47E591EA-37FC-438D-96E0-EBC609BFDFA9}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AppAny.Quartz.EntityFrameworkCore.Migrations.MySql", "src\AppAny.Quartz.EntityFrameworkCore.Migrations.MySql\AppAny.Quartz.EntityFrameworkCore.Migrations.MySql.csproj", "{C6D9078D-F57B-43A9-84A3-60882741022D}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AppAny.Quartz.EntityFrameworkCore.Migrations.MySql", "src\AppAny.Quartz.EntityFrameworkCore.Migrations.MySql\AppAny.Quartz.EntityFrameworkCore.Migrations.MySql.csproj", "{C6D9078D-F57B-43A9-84A3-60882741022D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AppAny.Quartz.EntityFrameworkCore.Migrations.SqlServer", "src\AppAny.Quartz.EntityFrameworkCore.Migrations.SqlServer\AppAny.Quartz.EntityFrameworkCore.Migrations.SqlServer.csproj", "{81D33747-2D69-4E32-B2F3-1A0C7960FB9D}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AppAny.Quartz.EntityFrameworkCore.Migrations.SqlServer", "src\AppAny.Quartz.EntityFrameworkCore.Migrations.SqlServer\AppAny.Quartz.EntityFrameworkCore.Migrations.SqlServer.csproj", "{81D33747-2D69-4E32-B2F3-1A0C7960FB9D}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AppAny.Quartz.EntityFrameworkCore.Migrations.SQLite", "src\AppAny.Quartz.EntityFrameworkCore.Migrations.SQLite\AppAny.Quartz.EntityFrameworkCore.Migrations.SQLite.csproj", "{B43D24EE-F42A-4A0A-BE81-9431ED219BBF}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AppAny.Quartz.EntityFrameworkCore.Migrations.SQLite", "src\AppAny.Quartz.EntityFrameworkCore.Migrations.SQLite\AppAny.Quartz.EntityFrameworkCore.Migrations.SQLite.csproj", "{B43D24EE-F42A-4A0A-BE81-9431ED219BBF}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".items", ".items", "{3B77CB85-2093-4F9D-A4BF-242059E9E151}"
ProjectSection(SolutionItems) = preProject
.editorconfig = .editorconfig
.gitignore = .gitignore
AppAny.Quartz.EntityFrameworkCore.Migrations.sln.DotSettings = AppAny.Quartz.EntityFrameworkCore.Migrations.sln.DotSettings
CODE_OF_CONDUCT.md = CODE_OF_CONDUCT.md
LICENSE = LICENSE
README.md = README.md
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AppAny.Quartz.EntityFrameworkCore.Migrations.SQLite.Tests", "tests\AppAny.Quartz.EntityFrameworkCore.Migrations.SQLite.Tests\AppAny.Quartz.EntityFrameworkCore.Migrations.SQLite.Tests.csproj", "{9EDEB05A-9F04-493A-8CE8-E1A385A6BE27}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AppAny.Quartz.EntityFrameworkCore.Migrations.SqlServer.Tests", "tests\AppAny.Quartz.EntityFrameworkCore.Migrations.SqlServer.Tests\AppAny.Quartz.EntityFrameworkCore.Migrations.SqlServer.Tests.csproj", "{07E616D5-7464-4205-829C-B158DDA17CAC}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AppAny.Quartz.EntityFrameworkCore.Migrations.PostgreSQL.Tests", "tests\AppAny.Quartz.EntityFrameworkCore.Migrations.PostgreSQL.Tests\AppAny.Quartz.EntityFrameworkCore.Migrations.PostgreSQL.Tests.csproj", "{BCF7FEA4-4843-4AF6-B450-4CE1532BE69C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AppAny.Quartz.EntityFrameworkCore.Migrations.MySql.Tests", "tests\AppAny.Quartz.EntityFrameworkCore.Migrations.MySql.Tests\AppAny.Quartz.EntityFrameworkCore.Migrations.MySql.Tests.csproj", "{2412CA33-7CC7-46CC-880A-944AFF533F92}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Expand Down Expand Up @@ -101,6 +119,54 @@ Global
{B43D24EE-F42A-4A0A-BE81-9431ED219BBF}.Release|x64.Build.0 = Release|Any CPU
{B43D24EE-F42A-4A0A-BE81-9431ED219BBF}.Release|x86.ActiveCfg = Release|Any CPU
{B43D24EE-F42A-4A0A-BE81-9431ED219BBF}.Release|x86.Build.0 = Release|Any CPU
{9EDEB05A-9F04-493A-8CE8-E1A385A6BE27}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9EDEB05A-9F04-493A-8CE8-E1A385A6BE27}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9EDEB05A-9F04-493A-8CE8-E1A385A6BE27}.Debug|x64.ActiveCfg = Debug|Any CPU
{9EDEB05A-9F04-493A-8CE8-E1A385A6BE27}.Debug|x64.Build.0 = Debug|Any CPU
{9EDEB05A-9F04-493A-8CE8-E1A385A6BE27}.Debug|x86.ActiveCfg = Debug|Any CPU
{9EDEB05A-9F04-493A-8CE8-E1A385A6BE27}.Debug|x86.Build.0 = Debug|Any CPU
{9EDEB05A-9F04-493A-8CE8-E1A385A6BE27}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9EDEB05A-9F04-493A-8CE8-E1A385A6BE27}.Release|Any CPU.Build.0 = Release|Any CPU
{9EDEB05A-9F04-493A-8CE8-E1A385A6BE27}.Release|x64.ActiveCfg = Release|Any CPU
{9EDEB05A-9F04-493A-8CE8-E1A385A6BE27}.Release|x64.Build.0 = Release|Any CPU
{9EDEB05A-9F04-493A-8CE8-E1A385A6BE27}.Release|x86.ActiveCfg = Release|Any CPU
{9EDEB05A-9F04-493A-8CE8-E1A385A6BE27}.Release|x86.Build.0 = Release|Any CPU
{07E616D5-7464-4205-829C-B158DDA17CAC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{07E616D5-7464-4205-829C-B158DDA17CAC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{07E616D5-7464-4205-829C-B158DDA17CAC}.Debug|x64.ActiveCfg = Debug|Any CPU
{07E616D5-7464-4205-829C-B158DDA17CAC}.Debug|x64.Build.0 = Debug|Any CPU
{07E616D5-7464-4205-829C-B158DDA17CAC}.Debug|x86.ActiveCfg = Debug|Any CPU
{07E616D5-7464-4205-829C-B158DDA17CAC}.Debug|x86.Build.0 = Debug|Any CPU
{07E616D5-7464-4205-829C-B158DDA17CAC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{07E616D5-7464-4205-829C-B158DDA17CAC}.Release|Any CPU.Build.0 = Release|Any CPU
{07E616D5-7464-4205-829C-B158DDA17CAC}.Release|x64.ActiveCfg = Release|Any CPU
{07E616D5-7464-4205-829C-B158DDA17CAC}.Release|x64.Build.0 = Release|Any CPU
{07E616D5-7464-4205-829C-B158DDA17CAC}.Release|x86.ActiveCfg = Release|Any CPU
{07E616D5-7464-4205-829C-B158DDA17CAC}.Release|x86.Build.0 = Release|Any CPU
{BCF7FEA4-4843-4AF6-B450-4CE1532BE69C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BCF7FEA4-4843-4AF6-B450-4CE1532BE69C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BCF7FEA4-4843-4AF6-B450-4CE1532BE69C}.Debug|x64.ActiveCfg = Debug|Any CPU
{BCF7FEA4-4843-4AF6-B450-4CE1532BE69C}.Debug|x64.Build.0 = Debug|Any CPU
{BCF7FEA4-4843-4AF6-B450-4CE1532BE69C}.Debug|x86.ActiveCfg = Debug|Any CPU
{BCF7FEA4-4843-4AF6-B450-4CE1532BE69C}.Debug|x86.Build.0 = Debug|Any CPU
{BCF7FEA4-4843-4AF6-B450-4CE1532BE69C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BCF7FEA4-4843-4AF6-B450-4CE1532BE69C}.Release|Any CPU.Build.0 = Release|Any CPU
{BCF7FEA4-4843-4AF6-B450-4CE1532BE69C}.Release|x64.ActiveCfg = Release|Any CPU
{BCF7FEA4-4843-4AF6-B450-4CE1532BE69C}.Release|x64.Build.0 = Release|Any CPU
{BCF7FEA4-4843-4AF6-B450-4CE1532BE69C}.Release|x86.ActiveCfg = Release|Any CPU
{BCF7FEA4-4843-4AF6-B450-4CE1532BE69C}.Release|x86.Build.0 = Release|Any CPU
{2412CA33-7CC7-46CC-880A-944AFF533F92}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2412CA33-7CC7-46CC-880A-944AFF533F92}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2412CA33-7CC7-46CC-880A-944AFF533F92}.Debug|x64.ActiveCfg = Debug|Any CPU
{2412CA33-7CC7-46CC-880A-944AFF533F92}.Debug|x64.Build.0 = Debug|Any CPU
{2412CA33-7CC7-46CC-880A-944AFF533F92}.Debug|x86.ActiveCfg = Debug|Any CPU
{2412CA33-7CC7-46CC-880A-944AFF533F92}.Debug|x86.Build.0 = Debug|Any CPU
{2412CA33-7CC7-46CC-880A-944AFF533F92}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2412CA33-7CC7-46CC-880A-944AFF533F92}.Release|Any CPU.Build.0 = Release|Any CPU
{2412CA33-7CC7-46CC-880A-944AFF533F92}.Release|x64.ActiveCfg = Release|Any CPU
{2412CA33-7CC7-46CC-880A-944AFF533F92}.Release|x64.Build.0 = Release|Any CPU
{2412CA33-7CC7-46CC-880A-944AFF533F92}.Release|x86.ActiveCfg = Release|Any CPU
{2412CA33-7CC7-46CC-880A-944AFF533F92}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand All @@ -110,8 +176,12 @@ Global
{B93044E6-2EA1-4D10-932D-7D232DB02C76} = {6AAE677C-A38E-4AD0-951B-4E64D91EE928}
{47E591EA-37FC-438D-96E0-EBC609BFDFA9} = {F87C6291-1953-4FD8-AE97-530A9B63B6B0}
{C6D9078D-F57B-43A9-84A3-60882741022D} = {6AAE677C-A38E-4AD0-951B-4E64D91EE928}
{B43D24EE-F42A-4A0A-BE81-9431ED219BBF} = {6AAE677C-A38E-4AD0-951B-4E64D91EE928}
{81D33747-2D69-4E32-B2F3-1A0C7960FB9D} = {6AAE677C-A38E-4AD0-951B-4E64D91EE928}
{B43D24EE-F42A-4A0A-BE81-9431ED219BBF} = {6AAE677C-A38E-4AD0-951B-4E64D91EE928}
{9EDEB05A-9F04-493A-8CE8-E1A385A6BE27} = {F87C6291-1953-4FD8-AE97-530A9B63B6B0}
{07E616D5-7464-4205-829C-B158DDA17CAC} = {F87C6291-1953-4FD8-AE97-530A9B63B6B0}
{BCF7FEA4-4843-4AF6-B450-4CE1532BE69C} = {F87C6291-1953-4FD8-AE97-530A9B63B6B0}
{2412CA33-7CC7-46CC-880A-944AFF533F92} = {F87C6291-1953-4FD8-AE97-530A9B63B6B0}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {E3C4EEBB-EB37-4D19-9722-29741BCD589C}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
<PackageProjectUrl>https://github.com/appany/AppAny.Quartz.EntityFrameworkCore.Migrations</PackageProjectUrl>
<PackageIcon>logo.png</PackageIcon>
<PackageLicenseFile>LICENSE</PackageLicenseFile>
<Copyright>Copyright ©2022 AppAny</Copyright>
<Copyright>Copyright © 2023-2024 AppAny</Copyright>
<Authors>marbblekirby</Authors>
<Description>EntityFrameworkCore MySql migrations for Quartz.NET</Description>
<PackageTags>.NET Core;ASP.NET Core;EntityFrameworkCore;Quartz.NET;MySql</PackageTags>
Expand All @@ -30,7 +30,7 @@
</ItemGroup>

<ItemGroup Condition="'$(TargetFramework)' == 'net8.0'" Label="Packages">
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="8.0.0-beta.2" />
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="8.0.1" />
</ItemGroup>

<ItemGroup Label="Assets">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
</ItemGroup>

<ItemGroup Condition="'$(TargetFramework)' == 'net8.0'" Label="Packages">
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="8.0.0" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="8.0.2" />
</ItemGroup>

<ItemGroup Label="Assets">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
<PackageProjectUrl>https://github.com/appany/AppAny.Quartz.EntityFrameworkCore.Migrations</PackageProjectUrl>
<PackageIcon>logo.png</PackageIcon>
<PackageLicenseFile>LICENSE</PackageLicenseFile>
<Copyright>Copyright ©2022 AppAny</Copyright>
<Copyright>Copyright © 2023-2024 AppAny</Copyright>
<Authors>JasonLandbridge</Authors>
<Description>EntityFrameworkCore SQLite migrations for Quartz.NET</Description>
<PackageTags>.NET Core;ASP.NET Core;EntityFrameworkCore;Quartz.NET;SQLite</PackageTags>
Expand All @@ -27,11 +27,11 @@
</ItemGroup>

<ItemGroup Condition="'$(TargetFramework)' == 'net6.0' or '$(TargetFramework)' == 'net7.0'" Label="Packages">
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="7.0.14"/>
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="7.0.16"/>
</ItemGroup>

<ItemGroup Condition="'$(TargetFramework)' == 'net8.0'" Label="Packages">
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="8.0.0"/>
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="8.0.2"/>
</ItemGroup>

<ItemGroup Label="Assets">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
<PackageProjectUrl>https://github.com/appany/AppAny.Quartz.EntityFrameworkCore.Migrations</PackageProjectUrl>
<PackageIcon>logo.png</PackageIcon>
<PackageLicenseFile>LICENSE</PackageLicenseFile>
<Copyright>Copyright ©2023 AppAny</Copyright>
<Copyright>Copyright © 2023-2024 AppAny</Copyright>
<Authors>sergeyshaykhullin</Authors>
<Description>EntityFrameworkCore SQL migrations for Quartz.NET</Description>
<PackageTags>.NET Core;ASP.NET Core;EntityFrameworkCore;Quartz.NET;SqlServer</PackageTags>
Expand All @@ -27,11 +27,11 @@
</ItemGroup>

<ItemGroup Condition="'$(TargetFramework)' == 'net6.0' or '$(TargetFramework)' == 'net7.0'" Label="Packages">
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="7.0.14"/>
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="7.0.16"/>
</ItemGroup>

<ItemGroup Condition="'$(TargetFramework)' == 'net8.0'" Label="Packages">
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.0"/>
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.2"/>
</ItemGroup>

<ItemGroup Label="Assets">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,18 +15,18 @@
<PackageProjectUrl>https://github.com/appany/AppAny.Quartz.EntityFrameworkCore.Migrations</PackageProjectUrl>
<PackageIcon>logo.png</PackageIcon>
<PackageLicenseFile>LICENSE</PackageLicenseFile>
<Copyright>Copyright ©2023 AppAny</Copyright>
<Copyright>Copyright © 2023-2024 AppAny</Copyright>
<Authors>sergeyshaykhullin,ZaoralJ</Authors>
<Description>EntityFrameworkCore migrations for Quartz.NET</Description>
<PackageTags>.NET Core;ASP.NET Core;EntityFrameworkCore;Quartz.NET</PackageTags>
</PropertyGroup>

<ItemGroup Condition="'$(TargetFramework)' == 'net6.0' or '$(TargetFramework)' == 'net7.0'" Label="Packages">
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.14"/>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.16"/>
</ItemGroup>

<ItemGroup Condition="'$(TargetFramework)' == 'net8.0'" Label="Packages">
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.0"/>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.2"/>
</ItemGroup>

<ItemGroup Label="Assets">
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>net6.0;net7.0;net8.0</TargetFrameworks>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="coverlet.collector" Version="6.0.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.9.0" />
<PackageReference Include="MySql.Data" Version="8.3.0" />
<PackageReference Include="Quartz" Version="3.8.1" />
<PackageReference Include="Quartz.Serialization.Json" Version="3.8.1" />
<PackageReference Include="Testcontainers" Version="3.7.0" />
<PackageReference Include="Testcontainers.MySql" Version="3.7.0" />
<PackageReference Include="xunit" Version="2.7.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.5.7">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>

<ItemGroup Condition="'$(TargetFramework)' == 'net6.0' or '$(TargetFramework)' == 'net7.0'" Label="Packages">
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="7.0.16">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>

<ItemGroup Condition="'$(TargetFramework)' == 'net8.0'" Label="Packages">
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\src\AppAny.Quartz.EntityFrameworkCore.Migrations.MySql\AppAny.Quartz.EntityFrameworkCore.Migrations.MySql.csproj" />
</ItemGroup>

<ItemGroup>
<Using Include="Xunit" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
namespace AppAny.Quartz.EntityFrameworkCore.Migrations.MySql.Tests
{
using System;
using System.Threading.Tasks;
using Testcontainers.MySql;

public class DatabaseFixture : IAsyncLifetime
{
private readonly MySqlContainer container;

public DatabaseFixture()
{
int port = Random.Shared.Next(3400, 3499);

this.container ??= new MySqlBuilder()
.WithPortBinding(port, MySqlBuilder.MySqlPort)
.Build();
}

public string ConnectionString => this.container.GetConnectionString();

public string ContainerId => $"{this.container.Id}";

public static string Database => MySqlBuilder.DefaultDatabase;

/// <inheritdoc />
public Task InitializeAsync()
{
return this.container.StartAsync();
}

/// <inheritdoc />
public Task DisposeAsync()
{
return this.container.DisposeAsync().AsTask();
}
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
using AppAny.Quartz.EntityFrameworkCore.Migrations.MySql;
using Microsoft.EntityFrameworkCore;

namespace AppAny.Quartz.EntityFrameworkCore.Migrations.Tests.MySQL
namespace AppAny.Quartz.EntityFrameworkCore.Migrations.MySql.Tests
{
using AppAny.Quartz.EntityFrameworkCore.Migrations.MySql;
using Microsoft.EntityFrameworkCore;

public class MySqlIntegrationDbContext : DbContext
{
public MySqlIntegrationDbContext(DbContextOptions<MySqlIntegrationDbContext> options)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
namespace AppAny.Quartz.EntityFrameworkCore.Migrations.MySql.Tests
{
using System;
using System.Threading.Tasks;
using global::Quartz;
using Microsoft.EntityFrameworkCore;
using Xunit;

public class MySqlIntegrationDbContextIntegrationTests : IClassFixture<DatabaseFixture>, IDisposable
{
private readonly MySqlIntegrationDbContext _dbContext;
private readonly string _connectionString;

public MySqlIntegrationDbContextIntegrationTests(DatabaseFixture fixture)
{
this._connectionString = fixture.ConnectionString;

var options = new DbContextOptionsBuilder<MySqlIntegrationDbContext>()
.UseMySql(
this._connectionString,
ServerVersion.AutoDetect(fixture.ConnectionString))
.Options;

this._dbContext = new MySqlIntegrationDbContext(options);
}

[Fact]
public async Task ShouldBuildScheduler()
{
// Arrange
await this._dbContext.Database.EnsureCreatedAsync();
await this._dbContext.Database.MigrateAsync();

// Act
var scheduler = await SchedulerBuilder.Create()
.UseDefaultThreadPool(x => x.MaxConcurrency = 5)
.UsePersistentStore(
x =>
{
x.PerformSchemaValidation = true;
x.UseMySql(this._connectionString);
x.UseNewtonsoftJsonSerializer();
})
.BuildScheduler();

var exception = await Record.ExceptionAsync(async () => await scheduler.Start());

// Assert
Assert.Null(exception);
Assert.True(scheduler.IsStarted);

await scheduler.Shutdown();
Assert.True(scheduler.IsShutdown);
}

public void Dispose()
{
//this._dbContext.Database.EnsureDeleted();
this._dbContext.Dispose();
}
}
}
Loading

0 comments on commit a6d3cb6

Please sign in to comment.