diff --git a/Directory.Packages.props b/Directory.Packages.props
index 34c67cd8..c33147f9 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -10,14 +10,14 @@
8.4.3
-
+
-
+
@@ -31,10 +31,11 @@
-
+
+
-
+
diff --git a/tests/CommunityToolkit.Datasync.Server.Automapper.Test/CommunityToolkit.Datasync.Server.Automapper.Test.csproj b/tests/CommunityToolkit.Datasync.Server.Automapper.Test/CommunityToolkit.Datasync.Server.Automapper.Test.csproj
index f9d81cd2..823acacb 100644
--- a/tests/CommunityToolkit.Datasync.Server.Automapper.Test/CommunityToolkit.Datasync.Server.Automapper.Test.csproj
+++ b/tests/CommunityToolkit.Datasync.Server.Automapper.Test/CommunityToolkit.Datasync.Server.Automapper.Test.csproj
@@ -17,5 +17,6 @@
runtime; build; native; contentfiles; analyzers; buildtransitive
all
+
diff --git a/tests/CommunityToolkit.Datasync.Server.Automapper.Test/MappedTableRepository_Tests.cs b/tests/CommunityToolkit.Datasync.Server.Automapper.Test/MappedTableRepository_Tests.cs
index 1199fe2d..2aa456f5 100644
--- a/tests/CommunityToolkit.Datasync.Server.Automapper.Test/MappedTableRepository_Tests.cs
+++ b/tests/CommunityToolkit.Datasync.Server.Automapper.Test/MappedTableRepository_Tests.cs
@@ -8,20 +8,33 @@
using CommunityToolkit.Datasync.TestCommon;
using CommunityToolkit.Datasync.TestCommon.Databases;
using Microsoft.EntityFrameworkCore;
+using Microsoft.Extensions.Logging;
+using Microsoft.Extensions.Logging.Xunit;
using Xunit.Abstractions;
namespace CommunityToolkit.Datasync.Server.Automapper.Test;
[ExcludeFromCodeCoverage]
-public class MappedTableRepository_Tests(ITestOutputHelper output) : RepositoryTests()
+public class MappedTableRepository_Tests : RepositoryTests, IDisposable
{
#region Setup
+ private readonly ITestOutputHelper output;
private readonly Random random = new();
private SqliteDbContext context;
private EntityTableRepository innerRepository;
- private readonly IMapper mapper = new MapperConfiguration(c => c.AddProfile(new MapperProfile())).CreateMapper();
+ private readonly ILoggerFactory loggerFactory;
+ private readonly IMapper mapper;
private MappedTableRepository repository;
private List movies;
+ private bool _disposedValue;
+
+ public MappedTableRepository_Tests(ITestOutputHelper output)
+ {
+ this.output = output;
+ this.loggerFactory = new LoggerFactory([ new XunitLoggerProvider(this.output) ]);
+ MapperConfiguration config = new(c => c.AddProfile(new MapperProfile()), this.loggerFactory);
+ this.mapper = config.CreateMapper();
+ }
protected override Task GetEntityAsync(string id)
=> Task.FromResult(this.mapper.Map(this.context.Movies.AsNoTracking().SingleOrDefault(m => m.Id == id)));
@@ -31,7 +44,7 @@ protected override Task GetEntityCountAsync()
protected override Task> GetPopulatedRepositoryAsync()
{
- this.context = SqliteDbContext.CreateContext(output);
+ this.context = SqliteDbContext.CreateContext(this.output);
this.innerRepository = new EntityTableRepository(this.context);
this.repository = new MappedTableRepository(this.mapper, this.innerRepository);
this.movies = this.context.Movies.AsNoTracking().ToList().ConvertAll(m => this.mapper.Map(m));
@@ -40,5 +53,26 @@ protected override Task> GetPopulatedRepositoryAsync()
protected override Task GetRandomEntityIdAsync(bool exists)
=> Task.FromResult(exists ? this.movies[this.random.Next(this.movies.Count)].Id : Guid.NewGuid().ToString());
+
+ protected virtual void Dispose(bool disposing)
+ {
+ if (!this._disposedValue)
+ {
+ if (disposing)
+ {
+ this.context.Dispose();
+ this.loggerFactory.Dispose();
+ }
+
+ this._disposedValue = true;
+ }
+ }
+
+ public void Dispose()
+ {
+ // Do not change this code. Put cleanup code in 'Dispose(bool disposing)' method
+ Dispose(disposing: true);
+ GC.SuppressFinalize(this);
+ }
#endregion
}