diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
index 2b1313f8..1699ee09 100644
--- a/.config/dotnet-tools.json
+++ b/.config/dotnet-tools.json
@@ -3,7 +3,7 @@
"isRoot": true,
"tools": {
"dotnet-sonarscanner": {
- "version": "11.0.0",
+ "version": "11.1.0",
"commands": [
"dotnet-sonarscanner"
]
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 4bbad09f..8a2682d6 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -3,7 +3,7 @@ updates:
- package-ecosystem: "github-actions"
directory: "/" # Location of package manifests
schedule:
- interval: "weekly"
+ interval: monthly
labels:
- "dependencies"
- "github-actions"
@@ -11,7 +11,11 @@ updates:
- package-ecosystem: "nuget"
directory: "/tests"
schedule:
- interval: "weekly"
+ interval: monthly
+ ignore:
+ - dependency-name: "*"
+ update-types:
+ - "version-update:semver-patch"
labels:
- "dependencies"
- "nuget"
diff --git a/src/Directory.Build.props b/src/Directory.Build.props
index 8b97c6a8..232ba1be 100644
--- a/src/Directory.Build.props
+++ b/src/Directory.Build.props
@@ -22,7 +22,10 @@
-
+
+ all
+ runtime; build; native; contentfiles; analyzers
+
diff --git a/src/OLT.Core.Attribute.Abstractions/Code/OltCodeAttributeExtensions.cs b/src/OLT.Core.Attribute.Abstractions/Code/OltCodeAttributeExtensions.cs
index c7b05353..a7e199db 100644
--- a/src/OLT.Core.Attribute.Abstractions/Code/OltCodeAttributeExtensions.cs
+++ b/src/OLT.Core.Attribute.Abstractions/Code/OltCodeAttributeExtensions.cs
@@ -23,7 +23,7 @@ public static class OltCodeAttributeExtensions
/// Returns Code value from attribute
///
///
- /// Code from or
+ /// Code from
///
public static string GetCodeEnumSafe(this Enum value)
{
diff --git a/src/OLT.Core.Attribute.Abstractions/Extensions/OltAttributeExtensions.cs b/src/OLT.Core.Attribute.Abstractions/Extensions/OltAttributeExtensions.cs
index 761f4bfc..6b8bfd75 100644
--- a/src/OLT.Core.Attribute.Abstractions/Extensions/OltAttributeExtensions.cs
+++ b/src/OLT.Core.Attribute.Abstractions/Extensions/OltAttributeExtensions.cs
@@ -70,14 +70,13 @@ public static class OltAttributeExtensions
/// Gets
///
///
- /// or ToString() or
- public static string? GetDescription(this Enum value)
+ /// or ToString()
+ public static string GetDescription(this Enum value)
{
var attribute = GetAttributeInstance(value);
- return attribute?.Description ?? value?.ToString();
+ return attribute?.Description ?? value.ToString();
}
-
///
/// Searches for or Name matching string
///
diff --git a/src/OLT.Core.CommandBus.Abstractions/Interfaces/IOltCommandBus.cs b/src/OLT.Core.CommandBus.Abstractions/Interfaces/IOltCommandBus.cs
index 77f08148..a8d330af 100644
--- a/src/OLT.Core.CommandBus.Abstractions/Interfaces/IOltCommandBus.cs
+++ b/src/OLT.Core.CommandBus.Abstractions/Interfaces/IOltCommandBus.cs
@@ -1,4 +1,5 @@
using System;
+using System.Threading;
using System.Threading.Tasks;
namespace OLT.Core
@@ -10,19 +11,22 @@ public interface IOltCommandBus : IOltInjectableScoped
/// Runs Command Validation
///
///
+ /// Optional cancellation token.
///
///
///
- Task ValidateAsync(IOltCommand command);
+ Task ValidateAsync(IOltCommand command, CancellationToken cancellationToken = default);
///
/// Processes Command using for
///
///
+ /// Optional cancellation token.
///
///
///
- Task ProcessAsync(IOltCommand command);
+ [Obsolete("Removing in 10.x, ProcessAsync is deprecated, use IOltCommand")]
+ Task ProcessAsync(IOltCommand command, CancellationToken cancellationToken = default);
///
@@ -40,11 +44,13 @@ public interface IOltCommandBus : IOltInjectableScoped
/// Processes Command using for
///
///
+ /// Optional cancellation token.
/// Returned Result
///
///
/// Thrown is command result is null
+ /// Thrown is command result doesn't match handler type
///
- Task ProcessAsync(IOltCommand command) where TResult : notnull;
+ Task ProcessAsync(IOltCommand command, CancellationToken cancellationToken = default) where TResult : notnull;
}
}
\ No newline at end of file
diff --git a/src/OLT.Core.CommandBus.Abstractions/Records/OltCommandResult.cs b/src/OLT.Core.CommandBus.Abstractions/Records/OltCommandResult.cs
index 35808eeb..7096ce80 100644
--- a/src/OLT.Core.CommandBus.Abstractions/Records/OltCommandResult.cs
+++ b/src/OLT.Core.CommandBus.Abstractions/Records/OltCommandResult.cs
@@ -2,7 +2,7 @@
namespace OLT.Core
{
- [Obsolete("Removing in 10.x, Complete is deprecated, use IOltCommand with OltCommandHandler")]
+
public record OltCommandResult(object? Result = null) : IOltCommandResult
{
public static OltCommandResult Complete()
@@ -10,7 +10,7 @@ public static OltCommandResult Complete()
return new OltCommandResult();
}
-
+ [Obsolete("Removing in 10.x, Complete is deprecated, use IOltCommand with OltCommandHandler")]
public static OltCommandResult Complete(T result) //Issue #149
{
return new OltCommandResult(result);
diff --git a/src/OLT.Core.CommandBus/OltCommandBus.cs b/src/OLT.Core.CommandBus/OltCommandBus.cs
index 0679bde8..8386abc6 100644
--- a/src/OLT.Core.CommandBus/OltCommandBus.cs
+++ b/src/OLT.Core.CommandBus/OltCommandBus.cs
@@ -3,6 +3,7 @@
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
+using System.Threading;
using System.Threading.Tasks;
namespace OLT.Core
@@ -23,6 +24,8 @@ protected OltCommandBus(
protected virtual TContext Context { get; }
protected virtual List Handlers { get; }
+ public CancellationToken CancellationToken { get; private set; } = CancellationToken.None;
+
///
/// Attempts to locate for
///
@@ -53,8 +56,8 @@ protected virtual IOltCommandHandler GetHandler(IOltCommand command)
///
///
///
- protected virtual Task ValidateAsync(IOltCommandHandler handler, IOltCommand command)
- {
+ protected virtual Task ValidateAsync_Internal(IOltCommandHandler handler, IOltCommand command)
+ {
return handler.ValidateAsync(this, command);
}
@@ -62,12 +65,14 @@ protected virtual Task ValidateAsync(IOltCommandHan
/// Validates Command and CommandHandler can Execute
///
///
+ /// Optional cancellation token.
///
///
- ///
- public virtual Task ValidateAsync(IOltCommand command)
+ ///
+ public virtual Task ValidateAsync(IOltCommand command, CancellationToken cancellationToken = default)
{
- return this.ValidateAsync(GetHandler(command), command);
+ this.CancellationToken = cancellationToken;
+ return this.ValidateAsync_Internal(GetHandler(command), command);
}
///
@@ -76,9 +81,10 @@ public virtual Task ValidateAsync(IOltCommand comma
///
///
///
+ [Obsolete("Removing in 10.x, ProcessAsync is deprecated, use IOltCommand")]
protected virtual async Task ExecuteAsync(IOltCommandHandler handler, IOltCommand command)
{
- var validationResult = await ValidateAsync(handler, command);
+ var validationResult = await ValidateAsync_Internal(handler, command);
if (!validationResult.Valid)
{
throw validationResult.ToException();
@@ -95,16 +101,6 @@ protected virtual async Task ExecuteAsync(IOltCommandHandl
}
- ///////
- /////// Executes Command
- ///////
- ///////
- ///////
- ////protected virtual Task ExecuteAsync(IOltCommand command)
- ////{
- //// return ExecuteAsync(GetHandler(command), command);
- ////}
-
///
/// Runs in order (or Queues if in Transaction) the
///
@@ -115,7 +111,6 @@ protected virtual async Task ExecuteAsync(IOltCommandHandl
protected virtual async Task PostExecuteAsync(IOltCommandHandler currentHandler, IOltCommand command, TResult result)
where TResult: notnull
{
-
if (currentHandler is IOltPostCommandHandler typedPostHandler)
{
PostProcessItems.Enqueue(new OltAfterCommandQueueItem(typedPostHandler, command, result));
@@ -138,12 +133,15 @@ protected virtual async Task PostExecuteAsync(IOltCommandHandler curren
/// Processes Command using for
///
///
+ /// Optional cancellation token.
///
///
///
///
- public virtual Task ProcessAsync(IOltCommand command)
+ [Obsolete("Removing in 10.x, ProcessAsync is deprecated, use IOltCommand")]
+ public virtual Task ProcessAsync(IOltCommand command, CancellationToken cancellationToken = default)
{
+ this.CancellationToken = cancellationToken;
return ExecuteAsync(GetHandler(command), command);
}
@@ -165,20 +163,22 @@ public virtual async Task ProcessAsync(IOltCommand command)
}
-
-
///
/// Processes Command using for
///
///
+ /// Optional cancellation token.
/// Returned Result
///
///
/// Thrown is command result is null
///
+ ///
///
- public virtual async Task ProcessAsync(IOltCommand command) where TResult : notnull
+ public virtual async Task ProcessAsync(IOltCommand command, CancellationToken cancellationToken = default) where TResult : notnull
{
+ this.CancellationToken = cancellationToken;
+
var validationResult = await ValidateAsync(command);
if (!validationResult.Valid)
{
@@ -199,7 +199,7 @@ public virtual async Task ProcessAsync(IOltCommand co
return result;
}
- return await ProcessAsync((IOltCommand)command);
+ throw new InvalidCastException($"Unable to cast to {typeof(IOltCommandHandler)}");
}
}
}
\ No newline at end of file
diff --git a/src/OLT.Extensions.Configuration.Amazon.SystemManager/OLT.Extensions.Configuration.Amazon.SystemManager.csproj b/src/OLT.Extensions.Configuration.Amazon.SystemManager/OLT.Extensions.Configuration.Amazon.SystemManager.csproj
index 391fc84b..fae5189b 100644
--- a/src/OLT.Extensions.Configuration.Amazon.SystemManager/OLT.Extensions.Configuration.Amazon.SystemManager.csproj
+++ b/src/OLT.Extensions.Configuration.Amazon.SystemManager/OLT.Extensions.Configuration.Amazon.SystemManager.csproj
@@ -9,7 +9,7 @@
-
+
\ No newline at end of file
diff --git a/src/OLT.Extensions.Configuration.Azure.AppConfig/OLT.Extensions.Configuration.Azure.AppConfig.csproj b/src/OLT.Extensions.Configuration.Azure.AppConfig/OLT.Extensions.Configuration.Azure.AppConfig.csproj
index 6e07d0c5..015383fa 100644
--- a/src/OLT.Extensions.Configuration.Azure.AppConfig/OLT.Extensions.Configuration.Azure.AppConfig.csproj
+++ b/src/OLT.Extensions.Configuration.Azure.AppConfig/OLT.Extensions.Configuration.Azure.AppConfig.csproj
@@ -11,7 +11,7 @@
-
+
diff --git a/src/OLT.Extensions.General/OltRegExPatterns.cs b/src/OLT.Extensions.General/OltRegExPatterns.cs
index 37b57b57..ccee2ef1 100644
--- a/src/OLT.Extensions.General/OltRegExPatterns.cs
+++ b/src/OLT.Extensions.General/OltRegExPatterns.cs
@@ -4,10 +4,13 @@ namespace OLT.Constants
{
public static class OltRegExPatterns
{
- public static readonly Regex Spaces = new Regex(@"\s+"); //Looks for Spaces
- public static readonly Regex DigitsOnly = new Regex(@"[^\d]");
- public static readonly Regex DecimalDigitsOnly = new Regex(@"[^\d\.]");
- public static readonly Regex RemoveSpecialCharacters = new Regex("(?:[^a-z0-9 ]|(?<=['\"])s)", RegexOptions.IgnoreCase | RegexOptions.CultureInvariant | RegexOptions.Compiled);
- public static readonly Regex ZipRegex = new Regex("\\d{5}(-?\\d{4})?");
+ // Default match timeout to avoid catastrophic backtracking / long-running matches
+ private static readonly TimeSpan DefaultMatchTimeout = TimeSpan.FromMilliseconds(750);
+
+ public static readonly Regex Spaces = new Regex(@"\s+", RegexOptions.None, DefaultMatchTimeout); // Looks for Spaces
+ public static readonly Regex DigitsOnly = new Regex(@"[^\d]", RegexOptions.None, DefaultMatchTimeout);
+ public static readonly Regex DecimalDigitsOnly = new Regex(@"[^\d\.]", RegexOptions.None, DefaultMatchTimeout);
+ public static readonly Regex RemoveSpecialCharacters = new Regex("(?:[^a-z0-9 ]|(?<=['\"])s)", RegexOptions.IgnoreCase | RegexOptions.CultureInvariant | RegexOptions.Compiled, DefaultMatchTimeout);
+ public static readonly Regex ZipRegex = new Regex("\\d{5}(-?\\d{4})?", RegexOptions.None, DefaultMatchTimeout);
}
}
diff --git a/tests/Directory.Build.props b/tests/Directory.Build.props
index a3494fa5..6b0724b2 100644
--- a/tests/Directory.Build.props
+++ b/tests/Directory.Build.props
@@ -9,9 +9,9 @@
-
+
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/tests/OLT.AspNetCore.Tests/CorsExtensionsTests.cs b/tests/OLT.AspNetCore.Tests/CorsExtensionsTests.cs
deleted file mode 100644
index 271a2370..00000000
--- a/tests/OLT.AspNetCore.Tests/CorsExtensionsTests.cs
+++ /dev/null
@@ -1,88 +0,0 @@
-//#nullable disable
-//using Microsoft.AspNetCore.Builder;
-//using Microsoft.AspNetCore.Cors.Infrastructure;
-//using Microsoft.Extensions.DependencyInjection;
-//using Microsoft.Extensions.Logging;
-//using Microsoft.Extensions.Options;
-//using OLT.Constants;
-//using OLT.Core;
-//using System;
-//using System.Collections.Generic;
-//using System.Linq;
-//using System.Reflection;
-//using Xunit;
-
-//namespace OLT.AspNetCore.Tests
-//{
-// public class CorsExtensionsTests
-// {
-// [Fact]
-// public void UseCorsTests()
-// {
-// List baseAssemblies = new List { this.GetType().Assembly };
-
-// var services = new ServiceCollection();
-// services.AddLogging(config => config.AddConsole());
-
-// OltCorsExtensions.AddCors(services, baseAssemblies);
-
-// using (var scope = services.BuildServiceProvider().CreateScope())
-// {
-// var options = scope.ServiceProvider.GetService>();
-// var expectedPolicy = options.Value.GetPolicy(OltAspNetDefaults.CorsPolicies.Wildcard);
-// Assert.True(expectedPolicy.AllowAnyOrigin);
-// Assert.True(expectedPolicy.AllowAnyMethod);
-// Assert.True(expectedPolicy.AllowAnyHeader);
-// Assert.False(expectedPolicy.SupportsCredentials);
-// }
-
-// using (var scope = services.BuildServiceProvider().CreateScope())
-// {
-// var options = scope.ServiceProvider.GetService>();
-// var expectedPolicy = options.Value.GetPolicy(OltAspNetDefaults.CorsPolicies.Disabled);
-// Assert.False(expectedPolicy.AllowAnyOrigin);
-// Assert.False(expectedPolicy.AllowAnyMethod);
-// Assert.False(expectedPolicy.AllowAnyHeader);
-// Assert.False(expectedPolicy.SupportsCredentials);
-// }
-
-// var hostingOptions = new OltAspNetHostingOptions
-// {
-// CorsPolicyName = string.Empty
-// };
-
-// var result = OltCorsExtensions.UseCors(new ApplicationBuilder(services.BuildServiceProvider()), hostingOptions);
-// Assert.NotNull(result);
-
-// result = OltCorsExtensions.UseCors(new ApplicationBuilder(services.BuildServiceProvider()), new OltAspNetHostingOptions { CorsPolicyName = OltAspNetDefaults.CorsPolicies.Wildcard });
-// Assert.NotNull(result);
-
-// result = OltCorsExtensions.UseCors(new ApplicationBuilder(services.BuildServiceProvider()), new OltAspNetHostingOptions { CorsPolicyName = OltAspNetDefaults.CorsPolicies.Disabled });
-// Assert.NotNull(result);
-
-// }
-
-// [Fact]
-// public void ArgumentExceptions()
-// {
-// var services = new ServiceCollection();
-// IOltAspNetCoreCorsPolicy nullPolicy = null;
-// List nullAssemblies = null;
-// List baseAssemblies = new List { this.GetType().Assembly };
-
-// Assert.Throws("services", () => OltCorsExtensions.AddCors(null!, baseAssemblies));
-// Assert.Throws("assembliesToScan", () => OltCorsExtensions.AddCors(services, nullAssemblies!));
-
-// Assert.Throws("services", () => OltCorsExtensions.AddCors(null!, nullPolicy!));
-// Assert.Throws("policy", () => OltCorsExtensions.AddCors(services, nullPolicy!));
-
-// var app = new ApplicationBuilder(services.BuildServiceProvider());
-// OltAspNetHostingOptions nullOptions = null;
-
-
-// Assert.Throws("app", () => OltCorsExtensions.UseCors(null!, nullOptions));
-// Assert.Throws("options", () => OltCorsExtensions.UseCors(app, nullOptions));
-
-// }
-// }
-//}
\ No newline at end of file
diff --git a/tests/OLT.Core.CommandBus.Tests/Assets/Handlers/DuplicateHandlerCommandHandler.cs b/tests/OLT.Core.CommandBus.Tests/Assets/Handlers/DuplicateHandlerCommandHandler.cs
index 958b5491..7d9422c3 100644
--- a/tests/OLT.Core.CommandBus.Tests/Assets/Handlers/DuplicateHandlerCommandHandler.cs
+++ b/tests/OLT.Core.CommandBus.Tests/Assets/Handlers/DuplicateHandlerCommandHandler.cs
@@ -1,5 +1,4 @@
using FluentValidation.Results;
-using System.Threading.Tasks;
namespace OLT.Core.CommandBus.Tests.Assets.Handlers
{
diff --git a/tests/OLT.Core.CommandBus.Tests/CommandHandlerUnitTest.cs b/tests/OLT.Core.CommandBus.Tests/CommandHandlerUnitTest.cs
index 81953b2e..b3f4e9c5 100644
--- a/tests/OLT.Core.CommandBus.Tests/CommandHandlerUnitTest.cs
+++ b/tests/OLT.Core.CommandBus.Tests/CommandHandlerUnitTest.cs
@@ -1,12 +1,10 @@
-using OLT.Core.CommandBus.Tests.Assets;
-using System;
-using Xunit;
-using System.Threading.Tasks;
+using AwesomeAssertions;
using Microsoft.Extensions.DependencyInjection;
-using OLT.Core.CommandBus.Tests.Assets.Handlers;
+using OLT.Core.CommandBus.Tests.Assets;
using OLT.Core.CommandBus.Tests.Assets.EfCore.Entites;
+using OLT.Core.CommandBus.Tests.Assets.Handlers;
using OLT.Core.CommandBus.Tests.Assets.Models;
-using AwesomeAssertions;
+using static Microsoft.EntityFrameworkCore.DbLoggerCategory.Database;
namespace OLT.Core.CommandBus.Tests
{
@@ -19,28 +17,28 @@ public async Task ExceptionTests()
{
using (var provider = BuildProvider())
{
- var commandBus = provider.GetService();
+ var commandBus = provider.GetRequiredService();
var command = new DuplicateHandlerCommand();
await Assert.ThrowsAsync(() => commandBus.ProcessAsync(command));
}
using (var provider = BuildProvider())
{
- var commandBus = provider.GetService();
+ var commandBus = provider.GetRequiredService();
var command = new NoHandlerCommand();
await Assert.ThrowsAsync(() => commandBus.ProcessAsync(command));
}
using (var provider = BuildProvider())
{
- var commandBus = provider.GetService();
+ var commandBus = provider.GetRequiredService();
var command = new SimpleCommand();
await Assert.ThrowsAsync(() => commandBus.ProcessAsync(command));
}
using (var provider = BuildProvider())
{
- var commandBus = provider.GetService();
+ var commandBus = provider.GetRequiredService();
var command = new UserEntityCommand();
await Assert.ThrowsAsync(() => commandBus.ProcessAsync(command));
}
@@ -53,32 +51,35 @@ public async Task ResultCastTest()
using (var provider = BuildProvider())
{
- var commandBus = provider.GetService();
+ var commandBus = provider.GetRequiredService();
var command = new UserEntityCommandWithResult();
- var handler = new UserEntityCommandWithResultHandler();
- var result = await commandBus.ProcessAsync(command);
+ var handler = new UserEntityCommandWithResultHandler();
Assert.Equal(command.ActionName, handler.ActionName);
+ var result = await commandBus.ProcessAsync(command);
Assert.Equal(typeof(UserEntity), result.GetType());
}
+
+
using (var provider = BuildProvider())
{
- var commandBus = provider.GetService();
+ var commandBus = provider.GetRequiredService();
var command = new UserEntityCommand();
var handler = new UserEntityCommandHandler();
- var result = await commandBus.ProcessAsync(command);
Assert.Equal(command.ActionName, handler.ActionName);
+ var result = await commandBus.ProcessAsync(command);
Assert.Equal(typeof(UserEntity), result.GetType());
}
using (var provider = BuildProvider())
{
- var commandBus = provider.GetService();
+ var commandBus = provider.GetRequiredService();
var command = new TypedWithUnTypeHandlerCommand();
var handler = new UnTypedCommandHandler();
- var result = await commandBus.ProcessAsync(command);
+ //var result = await commandBus.ProcessAsync(command);
Assert.Equal(command.ActionName, handler.ActionName);
- Assert.Equal(typeof(UserEntity), result.GetType());
+ await Assert.ThrowsAsync(() => commandBus.ProcessAsync(command));
+ //Assert.Equal(typeof(UserEntity), result.GetType());
}
}
@@ -88,7 +89,7 @@ public async Task ValidatorTest()
{
using (var provider = BuildProvider())
{
- var commandBus = provider.GetService();
+ var commandBus = provider.GetRequiredService();
var command = new TestPersonCommand(new TestPersonDto());
//Command Validation
@@ -106,7 +107,7 @@ public async Task ValidatorTest()
using (var provider = BuildProvider())
{
- var commandBus = provider.GetService();
+ var commandBus = provider.GetRequiredService();
var command = new TestPersonCommandWithResult(new TestPersonDto());
//Command Validation
@@ -125,7 +126,7 @@ public async Task ValidatorTest()
using (var provider = BuildProvider())
{
var dto = TestPersonDto.FakerDto();
- var commandBus = provider.GetService();
+ var commandBus = provider.GetRequiredService();
var command = new TestPersonCommand(dto);
//Command Validation
@@ -145,7 +146,7 @@ public async Task ValidatorTest()
using (var provider = BuildProvider())
{
var dto = TestPersonDto.FakerDto();
- var commandBus = provider.GetService();
+ var commandBus = provider.GetRequiredService();
var command = new TestPersonCommandWithResult(dto);
//Command Validation
@@ -171,7 +172,7 @@ public async Task PostCommandHandler()
using (var provider = BuildProvider())
{
var dto = TestPersonDto.FakerDto();
- var commandBus = provider.GetService();
+ var commandBus = provider.GetRequiredService();
var command = new TestPersonCommandWithResult(dto);
try
{
@@ -186,7 +187,7 @@ public async Task PostCommandHandler()
using (var provider = BuildProvider())
{
- var commandBus = provider.GetService();
+ var commandBus = provider.GetRequiredService();
var dto = TestPersonDto.FakerDto();
var command = new TestPersonCommandWithResult(dto);
var handler = new TestPersonCommandWithResultHandler();
@@ -198,7 +199,7 @@ public async Task PostCommandHandler()
using (var provider = BuildProvider())
{
var dto = TestPersonDto.FakerDto();
- var commandBus = provider.GetService();
+ var commandBus = provider.GetRequiredService();
var command = new TestPersonCommand(dto);
try
{
@@ -214,7 +215,7 @@ public async Task PostCommandHandler()
using (var provider = BuildProvider())
{
- var commandBus = provider.GetService();
+ var commandBus = provider.GetRequiredService();
var dto = TestPersonDto.FakerDto();
var command = new TestPersonCommand(dto);
var handler = new TestPersonCommandHandler();
diff --git a/tests/OLT.Core.EntityFrameworkCore.Abstractions.Tests/OLT.Core.EntityFrameworkCore.Abstractions.Tests.csproj b/tests/OLT.Core.EntityFrameworkCore.Abstractions.Tests/OLT.Core.EntityFrameworkCore.Abstractions.Tests.csproj
index 2207f820..3a5b2de9 100644
--- a/tests/OLT.Core.EntityFrameworkCore.Abstractions.Tests/OLT.Core.EntityFrameworkCore.Abstractions.Tests.csproj
+++ b/tests/OLT.Core.EntityFrameworkCore.Abstractions.Tests/OLT.Core.EntityFrameworkCore.Abstractions.Tests.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/tests/OLT.Core.EntityFrameworkCore.SqlServer.Abstractions.Tests/OLT.Core.EntityFrameworkCore.SqlServer.Abstractions.Tests.csproj b/tests/OLT.Core.EntityFrameworkCore.SqlServer.Abstractions.Tests/OLT.Core.EntityFrameworkCore.SqlServer.Abstractions.Tests.csproj
index d9ae0de7..2c86b52e 100644
--- a/tests/OLT.Core.EntityFrameworkCore.SqlServer.Abstractions.Tests/OLT.Core.EntityFrameworkCore.SqlServer.Abstractions.Tests.csproj
+++ b/tests/OLT.Core.EntityFrameworkCore.SqlServer.Abstractions.Tests/OLT.Core.EntityFrameworkCore.SqlServer.Abstractions.Tests.csproj
@@ -16,7 +16,7 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
diff --git a/tests/OLT.EF.Core.Services.Tests.Automapper/OLT.EF.Core.Services.Tests.Automapper.csproj b/tests/OLT.EF.Core.Services.Tests.Automapper/OLT.EF.Core.Services.Tests.Automapper.csproj
index d624649c..93e51b87 100644
--- a/tests/OLT.EF.Core.Services.Tests.Automapper/OLT.EF.Core.Services.Tests.Automapper.csproj
+++ b/tests/OLT.EF.Core.Services.Tests.Automapper/OLT.EF.Core.Services.Tests.Automapper.csproj
@@ -11,7 +11,7 @@
-
+
diff --git a/tests/OLT.EF.Core.Services.Tests.Lib/OLT.EF.Core.Services.Tests.Lib.csproj b/tests/OLT.EF.Core.Services.Tests.Lib/OLT.EF.Core.Services.Tests.Lib.csproj
index 0f3ecef2..14bb82d2 100644
--- a/tests/OLT.EF.Core.Services.Tests.Lib/OLT.EF.Core.Services.Tests.Lib.csproj
+++ b/tests/OLT.EF.Core.Services.Tests.Lib/OLT.EF.Core.Services.Tests.Lib.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/tests/OLT.Extensions.Configuration.Tests/OLT.Extensions.Configuration.Tests.csproj b/tests/OLT.Extensions.Configuration.Tests/OLT.Extensions.Configuration.Tests.csproj
index 40a4c9a8..c8b95ed4 100644
--- a/tests/OLT.Extensions.Configuration.Tests/OLT.Extensions.Configuration.Tests.csproj
+++ b/tests/OLT.Extensions.Configuration.Tests/OLT.Extensions.Configuration.Tests.csproj
@@ -8,7 +8,7 @@
-
+