Files
Umbraco-CMS/tests/Umbraco.Tests.Integration/Umbraco.Persistence.EFCore/DbContext/CustomDbContextUmbracoProviderTests.cs
Dirk Seefeld 4bf2fbf1ba Bugfix/19601 can not add ef core migrations (#19846)
* fix EFCore add migration issue

* update test

* Resolved breaking changes and code review comments.

* Removed extra line break.

---------

Co-authored-by: Andy Butland <abutland73@gmail.com>
2025-08-04 10:56:25 +00:00

71 lines
2.2 KiB
C#

using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using NUnit.Framework;
using Umbraco.Cms.Tests.Common.Testing;
using Umbraco.Cms.Tests.Integration.Testing;
namespace Umbraco.Cms.Tests.Integration.Umbraco.Persistence.EFCore.DbContext;
[TestFixture]
[UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerTest, Logger = UmbracoTestOptions.Logger.Console)]
internal sealed class CustomDbContextUmbracoProviderTests : UmbracoIntegrationTest
{
[Test]
public void Can_Register_Custom_DbContext_And_Resolve()
{
var dbContext = Services.GetRequiredService<CustomDbContext>();
Assert.IsNotNull(dbContext);
Assert.IsNotEmpty(dbContext.Database.GetConnectionString());
}
protected override void CustomTestSetup(IUmbracoBuilder builder)
{
builder.Services.AddUmbracoDbContext<CustomDbContext>((serviceProvider, options, connectionString, providerName) =>
{
options.UseUmbracoDatabaseProvider(serviceProvider);
});
}
internal class CustomDbContext : Microsoft.EntityFrameworkCore.DbContext
{
public CustomDbContext(DbContextOptions<CustomDbContext> options)
: base(options)
{
}
}
}
[TestFixture]
[UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerTest, Logger = UmbracoTestOptions.Logger.Console)]
public class CustomDbContextCustomSqliteProviderTests : UmbracoIntegrationTest
{
[Test]
public void Can_Register_Custom_DbContext_And_Resolve()
{
var dbContext = Services.GetRequiredService<CustomDbContext>();
Assert.IsNotNull(dbContext);
Assert.IsNotEmpty(dbContext.Database.GetConnectionString());
}
protected override void CustomTestSetup(IUmbracoBuilder builder)
{
builder.Services.AddUmbracoDbContext<CustomDbContext>((serviceProvider, options, connectionString, providerName) =>
{
options.UseSqlite("Data Source=:memory:;Version=3;New=True;");
});
}
internal class CustomDbContext : Microsoft.EntityFrameworkCore.DbContext
{
public CustomDbContext(DbContextOptions<CustomDbContext> options)
: base(options)
{
}
}
}