As well as providing a unit test which matches other persistence provider tests (round-tripping a workflow instance), two other tests are included here: * When using the default DI registration extension method, this sets up pooling of DB contexts and so a resolved context will come from the pool. * When using the non-pooled DI registration extension method, this sets up EF without pooling, which is more useful in a multi-tenanted environment. There are also some other changes in this commit corresponding to improving the tests. Mainly de-duplicating logic & improving names.
19 lines
683 B
C#
19 lines
683 B
C#
using System;
|
|
using AutoFixture.Kernel;
|
|
using Elsa.Persistence.EntityFramework.Core;
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
namespace Elsa.Testing.Shared.AutoFixture.SpecimenBuilders
|
|
{
|
|
public class StubElsaContextSpecimenBuilder : ISpecimenBuilder
|
|
{
|
|
public object Create(object request, ISpecimenContext context)
|
|
=> request.IsAnAutofixtureRequestForType<ElsaContext>()? GetContext(context) : new NoSpecimen();
|
|
|
|
static object GetContext(ISpecimenContext context)
|
|
{
|
|
var options = (DbContextOptions<ElsaContext>) context.Resolve(typeof(DbContextOptions<ElsaContext>));
|
|
return new ElsaContext(options);
|
|
}
|
|
}
|
|
} |