diff --git a/STX.SPAL.Core.Tests.Unit/STX.SPAL.Core.Tests.Unit.csproj b/STX.SPAL.Core.Tests.Unit/STX.SPAL.Core.Tests.Unit.csproj index fa5c44f..529d3b7 100644 --- a/STX.SPAL.Core.Tests.Unit/STX.SPAL.Core.Tests.Unit.csproj +++ b/STX.SPAL.Core.Tests.Unit/STX.SPAL.Core.Tests.Unit.csproj @@ -6,6 +6,7 @@ disable false true + CS1998 diff --git a/STX.SPAL.Core.Tests.Unit/Services/Foundations/Assemblies/AssemblyServiceTests.Exceptions.GetAssembly.cs b/STX.SPAL.Core.Tests.Unit/Services/Foundations/Assemblies/AssemblyServiceTests.Exceptions.GetAssembly.cs index 7115dac..f41000d 100644 --- a/STX.SPAL.Core.Tests.Unit/Services/Foundations/Assemblies/AssemblyServiceTests.Exceptions.GetAssembly.cs +++ b/STX.SPAL.Core.Tests.Unit/Services/Foundations/Assemblies/AssemblyServiceTests.Exceptions.GetAssembly.cs @@ -4,6 +4,7 @@ using System; using System.Reflection; +using System.Threading.Tasks; using FluentAssertions; using Moq; using STX.SPAL.Core.Models.Services.Foundations.Assemblies.Exceptions; @@ -14,7 +15,7 @@ public partial class AssemblyServiceTests { [Theory] [MemberData(nameof(AssemblyLoadDependencyExceptions))] - private void ShouldThrowDependencyExceptionOnLoadAssemblyIfExternalExceptionOccurs( + private async Task ShouldThrowDependencyExceptionOnLoadAssemblyIfExternalExceptionOccursAsync( Exception externalException) { // given @@ -32,17 +33,19 @@ private void ShouldThrowDependencyExceptionOnLoadAssemblyIfExternalExceptionOccu this.assemblyBroker .Setup(broker => - broker.GetAssembly( + broker.GetAssemblyAsync( It.Is(actualAssemblyPath => actualAssemblyPath == someAssemblyPath))) - .Throws(externalException); + .ThrowsAsync(externalException); // when - Func getAssemblyFunction = () => - this.assemblyService.GetAssembly(someAssemblyPath); + Func> getAssemblyFunction = + () => + this.assemblyService.GetAssemblyAsync(someAssemblyPath) + .AsTask(); AssemblyDependencyException actualAssemblyDependencyException = - Assert.Throws( + await Assert.ThrowsAsync( getAssemblyFunction); // then @@ -51,7 +54,7 @@ private void ShouldThrowDependencyExceptionOnLoadAssemblyIfExternalExceptionOccu this.assemblyBroker .Verify(broker => - broker.GetAssembly(It.IsAny()), + broker.GetAssemblyAsync(It.IsAny()), Times.Once); this.assemblyBroker.VerifyNoOtherCalls(); @@ -59,7 +62,7 @@ private void ShouldThrowDependencyExceptionOnLoadAssemblyIfExternalExceptionOccu [Theory] [MemberData(nameof(AssemblyLoadValidationDependencyExceptions))] - private void ShouldThrowValidationDependencyExceptionOnLoadAssemblyIfExternalExceptionOccurs( + private async Task ShouldThrowValidationDependencyExceptionOnLoadAssemblyIfExternalExceptionOccursAsync( Exception externalException) { // given @@ -77,17 +80,18 @@ private void ShouldThrowValidationDependencyExceptionOnLoadAssemblyIfExternalExc this.assemblyBroker .Setup(broker => - broker.GetAssembly( + broker.GetAssemblyAsync( It.Is(actualAssemblyPath => actualAssemblyPath == someAssemblyPath))) .Throws(externalException); // when - Func getAssemblyFunction = () => - this.assemblyService.GetAssembly(someAssemblyPath); + Func> getAssemblyFunction = () => + this.assemblyService.GetAssemblyAsync(someAssemblyPath) + .AsTask(); AssemblyValidationDependencyException actualAssemblyValidationDependencyException = - Assert.Throws( + await Assert.ThrowsAsync( getAssemblyFunction); // then @@ -96,7 +100,7 @@ private void ShouldThrowValidationDependencyExceptionOnLoadAssemblyIfExternalExc this.assemblyBroker .Verify(broker => - broker.GetAssembly(It.IsAny()), + broker.GetAssemblyAsync(It.IsAny()), Times.Once); this.assemblyBroker.VerifyNoOtherCalls(); @@ -104,7 +108,7 @@ private void ShouldThrowValidationDependencyExceptionOnLoadAssemblyIfExternalExc [Theory] [MemberData(nameof(AssemblyLoadServiceExceptions))] - private void ShouldThrowServiceExceptionOnLoadAssemblyIfExceptionOccurs( + private async Task ShouldThrowServiceExceptionOnLoadAssemblyIfExceptionOccursAsync( Exception externalException) { // given @@ -122,17 +126,19 @@ private void ShouldThrowServiceExceptionOnLoadAssemblyIfExceptionOccurs( this.assemblyBroker .Setup(broker => - broker.GetAssembly( + broker.GetAssemblyAsync( It.Is(actualAssemblyPath => actualAssemblyPath == someAssemblyPath))) .Throws(externalException); // when - Func getAssemblyFunction = () => - this.assemblyService.GetAssembly(someAssemblyPath); + Func> getAssemblyFunction = + () => + this.assemblyService.GetAssemblyAsync(someAssemblyPath) + .AsTask(); AssemblyServiceException actualAssemblyServiceException = - Assert.Throws( + await Assert.ThrowsAsync( getAssemblyFunction); // then @@ -141,7 +147,7 @@ private void ShouldThrowServiceExceptionOnLoadAssemblyIfExceptionOccurs( this.assemblyBroker .Verify(broker => - broker.GetAssembly(It.IsAny()), + broker.GetAssemblyAsync(It.IsAny()), Times.Once); this.assemblyBroker.VerifyNoOtherCalls(); diff --git a/STX.SPAL.Core.Tests.Unit/Services/Foundations/Assemblies/AssemblyServiceTests.Logic.GetApplicationPathsAssemblies.cs b/STX.SPAL.Core.Tests.Unit/Services/Foundations/Assemblies/AssemblyServiceTests.Logic.GetApplicationPathsAssemblies.cs index 9ecabd1..f9afb61 100644 --- a/STX.SPAL.Core.Tests.Unit/Services/Foundations/Assemblies/AssemblyServiceTests.Logic.GetApplicationPathsAssemblies.cs +++ b/STX.SPAL.Core.Tests.Unit/Services/Foundations/Assemblies/AssemblyServiceTests.Logic.GetApplicationPathsAssemblies.cs @@ -2,6 +2,7 @@ // Copyright (c) The Standard Organization: A coalition of the Good-Hearted Engineers // ---------------------------------------------------------------------------------- +using System.Threading.Tasks; using FluentAssertions; using Moq; @@ -10,7 +11,7 @@ namespace STX.SPAL.Core.Tests.Unit.Services.Foundations.Assemblies public partial class AssemblyServiceTests { [Fact] - private void ShouldGetApplicationPathAssemblies() + private async Task ShouldGetApplicationPathAssembliesAsync() { // given string[] randomApplicationPathsAssemblies = @@ -23,12 +24,12 @@ private void ShouldGetApplicationPathAssemblies() randomApplicationPathsAssemblies; this.assemblyBroker - .Setup(broker => broker.GetApplicationPathsAssemblies()) - .Returns(returnedApplicationPathsAssemblies); + .Setup(broker => broker.GetApplicationPathsAssembliesAsync()) + .ReturnsAsync(returnedApplicationPathsAssemblies); // when string[] actualApplicationPathsAssemblies = - this.assemblyService.GetApplicationPathsAssemblies(); + await this.assemblyService.GetApplicationPathsAssembliesAsync(); // then actualApplicationPathsAssemblies.Should() @@ -36,7 +37,7 @@ private void ShouldGetApplicationPathAssemblies() this.assemblyBroker.Verify( broker => - broker.GetApplicationPathsAssemblies(), + broker.GetApplicationPathsAssembliesAsync(), Times.Once); this.assemblyBroker.VerifyNoOtherCalls(); diff --git a/STX.SPAL.Core.Tests.Unit/Services/Foundations/Assemblies/AssemblyServiceTests.Logic.GetAssembly.cs b/STX.SPAL.Core.Tests.Unit/Services/Foundations/Assemblies/AssemblyServiceTests.Logic.GetAssembly.cs index bb216ab..9e1c3f3 100644 --- a/STX.SPAL.Core.Tests.Unit/Services/Foundations/Assemblies/AssemblyServiceTests.Logic.GetAssembly.cs +++ b/STX.SPAL.Core.Tests.Unit/Services/Foundations/Assemblies/AssemblyServiceTests.Logic.GetAssembly.cs @@ -3,6 +3,7 @@ // ---------------------------------------------------------------------------------- using System.Reflection; +using System.Threading.Tasks; using FluentAssertions; using Moq; @@ -11,7 +12,7 @@ namespace STX.SPAL.Core.Tests.Unit.Services.Foundations.Assemblies public partial class AssemblyServiceTests { [Fact] - private void ShouldGetAssembly() + private async Task ShouldGetAssemblyAsync() { // given Assembly randomAssembly = CreateRandomAssembly(); @@ -22,21 +23,21 @@ private void ShouldGetAssembly() this.assemblyBroker .Setup(broker => - broker.GetAssembly( + broker.GetAssemblyAsync( It.Is(actualPathAssembly => actualPathAssembly == inputPathAssembly))) - .Returns(returnedAssembly); + .ReturnsAsync(returnedAssembly); // when Assembly actualAssembly = - this.assemblyService.GetAssembly(inputPathAssembly); + await this.assemblyService.GetAssemblyAsync(inputPathAssembly); // then actualAssembly.Should().BeSameAs(expectedAssembly); this.assemblyBroker.Verify( broker => - broker.GetAssembly( + broker.GetAssemblyAsync( It.Is(actualPathAssembly => actualPathAssembly == inputPathAssembly)), Times.Once); diff --git a/STX.SPAL.Core.Tests.Unit/Services/Foundations/Assemblies/AssemblyServiceTests.Validations.GetAssembly.cs b/STX.SPAL.Core.Tests.Unit/Services/Foundations/Assemblies/AssemblyServiceTests.Validations.GetAssembly.cs index fea66b6..ed28036 100644 --- a/STX.SPAL.Core.Tests.Unit/Services/Foundations/Assemblies/AssemblyServiceTests.Validations.GetAssembly.cs +++ b/STX.SPAL.Core.Tests.Unit/Services/Foundations/Assemblies/AssemblyServiceTests.Validations.GetAssembly.cs @@ -4,6 +4,7 @@ using System; using System.Reflection; +using System.Threading.Tasks; using FluentAssertions; using Moq; using STX.SPAL.Core.Models.Services.Foundations.Assemblies.Exceptions; @@ -17,7 +18,7 @@ public partial class AssemblyServiceTests [InlineData("", "Value is required")] [InlineData(" ", "Value is required")] [InlineData("file", "Value is not a valid assembly path")] - private void ShouldThrowValidationExceptionIfInvalidAssemblyPath( + private async Task ShouldThrowValidationExceptionIfInvalidAssemblyPathAsync( string assemblyPath, string exceptionMessage) { @@ -44,16 +45,18 @@ private void ShouldThrowValidationExceptionIfInvalidAssemblyPath( this.assemblyBroker .Setup(broker => - broker.GetAssembly( + broker.GetAssemblyAsync( It.Is(actualAssemblyPath => actualAssemblyPath == inputAssemblyPath))); // when - Func getAssemblyFunction = () => - this.assemblyService.GetAssembly(inputAssemblyPath); + Func> getAssemblyFunction = + () => + this.assemblyService.GetAssemblyAsync(inputAssemblyPath) + .AsTask(); AssemblyValidationException actualAssemblyValidationException = - Assert.Throws( + await Assert.ThrowsAsync( getAssemblyFunction); // then @@ -62,7 +65,7 @@ private void ShouldThrowValidationExceptionIfInvalidAssemblyPath( this.assemblyBroker .Verify(broker => - broker.GetAssembly(It.IsAny()), + broker.GetAssemblyAsync(It.IsAny()), Times.Never); this.assemblyBroker.VerifyNoOtherCalls(); diff --git a/STX.SPAL.Core.Tests.Unit/Services/Foundations/DependenciesInjections/DependencyInjectionServiceTests.Exceptions.RegisterServiceDescriptor.cs b/STX.SPAL.Core.Tests.Unit/Services/Foundations/DependenciesInjections/DependencyInjectionServiceTests.Exceptions.RegisterServiceDescriptor.cs index 20a4828..884ae00 100644 --- a/STX.SPAL.Core.Tests.Unit/Services/Foundations/DependenciesInjections/DependencyInjectionServiceTests.Exceptions.RegisterServiceDescriptor.cs +++ b/STX.SPAL.Core.Tests.Unit/Services/Foundations/DependenciesInjections/DependencyInjectionServiceTests.Exceptions.RegisterServiceDescriptor.cs @@ -3,6 +3,7 @@ // ---------------------------------------------------------------------------------- using System; +using System.Threading.Tasks; using FluentAssertions; using Microsoft.Extensions.DependencyInjection; using Moq; @@ -15,7 +16,7 @@ public partial class DependencyInjectionServiceTests { [Theory] [MemberData(nameof(RegisterServiceDescriptorValidationDependencyExceptions))] - private void ShouldThrowValidationDependencyExceptionOnRegisterServiceDescriptorIfExternalExceptionOccurs( + private async Task ShouldThrowValidationDependencyExceptionOnRegisterServiceDescriptorIfExternalExceptionOccursAsync( Exception externalException) { // given @@ -35,7 +36,7 @@ private void ShouldThrowValidationDependencyExceptionOnRegisterServiceDescriptor this.dependencyInjectionBroker .Setup(broker => - broker.AddServiceDescriptor( + broker.AddServiceDescriptorAsync( someDependencyInjection.ServiceCollection, It.Is(actualServiceDescriptor => SameServiceDescriptorAs( @@ -43,18 +44,20 @@ private void ShouldThrowValidationDependencyExceptionOnRegisterServiceDescriptor someServiceDescriptor) .Compile() .Invoke(actualServiceDescriptor)))) - .Throws(externalException); + .ThrowsAsync(externalException); // when - Func registerServiceDescriptorFunction = () => - this.dependencyInjectionService.RegisterServiceDescriptor( - randomProperties.DependencyInjection, - randomProperties.SpalInterfaceType, - randomProperties.ImplementationType, - randomProperties.ServiceLifeTime); + Func> registerServiceDescriptorFunction = + () => + this.dependencyInjectionService.RegisterServiceDescriptorAsync( + randomProperties.DependencyInjection, + randomProperties.SpalInterfaceType, + randomProperties.ImplementationType, + randomProperties.ServiceLifeTime) + .AsTask(); DependencyInjectionValidationDependencyException actualServiceCollectionValidationDependencyException = - Assert.Throws( + await Assert.ThrowsAsync( registerServiceDescriptorFunction); // then @@ -63,7 +66,7 @@ private void ShouldThrowValidationDependencyExceptionOnRegisterServiceDescriptor this.dependencyInjectionBroker .Verify(broker => - broker.AddServiceDescriptor( + broker.AddServiceDescriptorAsync( someDependencyInjection.ServiceCollection, It.IsAny()), Times.Once); @@ -73,7 +76,7 @@ private void ShouldThrowValidationDependencyExceptionOnRegisterServiceDescriptor [Theory] [MemberData(nameof(RegisterServiceDescriptorServiceExceptions))] - private void ShouldThrowServiceExceptionOnRegisterServiceDescriptorIfExceptionOccurs( + private async Task ShouldThrowServiceExceptionOnRegisterServiceDescriptorIfExceptionOccursAsync( Exception externalException) { // given @@ -86,14 +89,14 @@ private void ShouldThrowServiceExceptionOnRegisterServiceDescriptorIfExceptionOc message: "Failed service error occurred, contact support.", innerException: externalException); - var expectedServiceCollectionServiceException = + var expectedDependencyInjectionServiceException = new DependencyInjectionServiceException( message: "Dependency Injection service error occurred, contact support.", innerException: assemblyLoadException); this.dependencyInjectionBroker .Setup(broker => - broker.AddServiceDescriptor( + broker.AddServiceDescriptorAsync( someDependencyInjection.ServiceCollection, It.Is(actualServiceDescriptor => SameServiceDescriptorAs( @@ -101,27 +104,29 @@ private void ShouldThrowServiceExceptionOnRegisterServiceDescriptorIfExceptionOc someServiceDescriptor) .Compile() .Invoke(actualServiceDescriptor)))) - .Throws(externalException); + .ThrowsAsync(externalException); // when - Func registerServiceDescriptorFunction = () => - this.dependencyInjectionService.RegisterServiceDescriptor( - someDependencyInjection, - randomProperties.SpalInterfaceType, - randomProperties.ImplementationType, - randomProperties.ServiceLifeTime); - - DependencyInjectionServiceException actualServiceCollectionServiceException = - Assert.Throws( + Func> registerServiceDescriptorFunction = + () => + this.dependencyInjectionService.RegisterServiceDescriptorAsync( + someDependencyInjection, + randomProperties.SpalInterfaceType, + randomProperties.ImplementationType, + randomProperties.ServiceLifeTime) + .AsTask(); + + DependencyInjectionServiceException actualDependencyInjectionServiceException = + await Assert.ThrowsAsync( registerServiceDescriptorFunction); // then - actualServiceCollectionServiceException.Should().BeEquivalentTo( - expectedServiceCollectionServiceException); + actualDependencyInjectionServiceException.Should().BeEquivalentTo( + expectedDependencyInjectionServiceException); this.dependencyInjectionBroker .Verify(broker => - broker.AddServiceDescriptor( + broker.AddServiceDescriptorAsync( someDependencyInjection.ServiceCollection, It.IsAny()), Times.Once); diff --git a/STX.SPAL.Core.Tests.Unit/Services/Foundations/DependenciesInjections/DependencyInjectionServiceTests.Logic.BuildServiceProvider.cs b/STX.SPAL.Core.Tests.Unit/Services/Foundations/DependenciesInjections/DependencyInjectionServiceTests.Logic.BuildServiceProvider.cs index 365aaaf..7e9a492 100644 --- a/STX.SPAL.Core.Tests.Unit/Services/Foundations/DependenciesInjections/DependencyInjectionServiceTests.Logic.BuildServiceProvider.cs +++ b/STX.SPAL.Core.Tests.Unit/Services/Foundations/DependenciesInjections/DependencyInjectionServiceTests.Logic.BuildServiceProvider.cs @@ -2,6 +2,7 @@ // Copyright (c) The Standard Organization: A coalition of the Good-Hearted Engineers // ---------------------------------------------------------------------------------- +using System.Threading.Tasks; using FluentAssertions; using Microsoft.Extensions.DependencyInjection; using Moq; @@ -12,7 +13,7 @@ namespace STX.SPAL.Core.Tests.Unit.Services.Foundations.DependenciesInjections public partial class DependencyInjectionServiceTests { [Fact] - private void ShouldBuildServiceProvider() + private async Task ShouldBuildServiceProviderAsync() { // given dynamic randomProperties = CreateRandomProperties(); @@ -36,18 +37,18 @@ private void ShouldBuildServiceProvider() this.dependencyInjectionBroker .Setup(broker => - broker.BuildServiceProvider( + broker.BuildServiceProviderAsync( It.Is(actualServiceCollection => SameServiceCollectionAs( actualServiceCollection, expectedDependencyInjection.ServiceCollection) .Compile() .Invoke(inputDependencyInjection.ServiceCollection)))) - .Returns(returnedDependencyInjection.ServiceProvider); + .ReturnsAsync(returnedDependencyInjection.ServiceProvider); // when DependencyInjection actualDependencyInjection = - this.dependencyInjectionService.BuildServiceProvider( + await this.dependencyInjectionService.BuildServiceProviderAsync( inputProperties.DependencyInjection); // then @@ -55,7 +56,7 @@ private void ShouldBuildServiceProvider() this.dependencyInjectionBroker.Verify( broker => - broker.BuildServiceProvider( + broker.BuildServiceProviderAsync( It.Is(actualServiceCollection => SameServiceCollectionAs( actualServiceCollection, diff --git a/STX.SPAL.Core.Tests.Unit/Services/Foundations/DependenciesInjections/DependencyInjectionServiceTests.Logic.GetService.cs b/STX.SPAL.Core.Tests.Unit/Services/Foundations/DependenciesInjections/DependencyInjectionServiceTests.Logic.GetService.cs index f09d204..0b9a7fa 100644 --- a/STX.SPAL.Core.Tests.Unit/Services/Foundations/DependenciesInjections/DependencyInjectionServiceTests.Logic.GetService.cs +++ b/STX.SPAL.Core.Tests.Unit/Services/Foundations/DependenciesInjections/DependencyInjectionServiceTests.Logic.GetService.cs @@ -3,6 +3,7 @@ // ---------------------------------------------------------------------------------- using System; +using System.Threading.Tasks; using FluentAssertions; using Force.DeepCloner; using Microsoft.Extensions.DependencyInjection; @@ -15,7 +16,7 @@ namespace STX.SPAL.Core.Tests.Unit.Services.Foundations.DependenciesInjections public partial class DependencyInjectionServiceTests { [Fact] - private void ShouldGetService() + private async Task ShouldGetServiceAsync() { // given dynamic randomProperties = CreateRandomProperties(); @@ -25,7 +26,9 @@ private void ShouldGetService() ServiceDescriptor inputServiceDescriptor = randomServiceDescriptor; ServiceDescriptor expectedServiceDescriptor = inputServiceDescriptor; - IServiceCollection inputServiceCollection = inputProperties.DependencyInjection.ServiceCollection; + IServiceCollection inputServiceCollection = + inputProperties.DependencyInjection.ServiceCollection; + inputServiceCollection.Add(inputServiceDescriptor); DependencyInjection inputDependencyInjection = @@ -47,18 +50,18 @@ private void ShouldGetService() this.dependencyInjectionBroker .Setup(broker => - broker.GetService( + broker.GetServiceAsync( It.Is(actualServiceProvider => SameServiceProviderAs( actualServiceProvider, expectedDependencyInjection.ServiceProvider) .Compile() .Invoke(inputDependencyInjection.ServiceProvider)))) - .Returns(returnedService); + .ReturnsAsync(returnedService); // when ISPALBase actualService = - this.dependencyInjectionService.GetService( + await this.dependencyInjectionService.GetServiceAsync( inputDependencyInjection); //then @@ -66,7 +69,7 @@ private void ShouldGetService() this.dependencyInjectionBroker.Verify( broker => - broker.GetService( + broker.GetServiceAsync( It.Is(actualServiceProvider => SameServiceProviderAs( actualServiceProvider, @@ -79,7 +82,7 @@ private void ShouldGetService() } [Fact] - private void ShouldGetServiceWithSpalId() + private async Task ShouldGetServiceWithSpalIdAsync() { // given dynamic randomProperties = CreateRandomProperties(); @@ -90,7 +93,9 @@ private void ShouldGetServiceWithSpalId() ServiceDescriptor expectedServiceDescriptor = inputServiceDescriptor; - IServiceCollection inputServiceCollection = inputProperties.DependencyInjection.ServiceCollection; + IServiceCollection inputServiceCollection = + inputProperties.DependencyInjection.ServiceCollection; + inputServiceCollection.Add(inputServiceDescriptor); DependencyInjection inputDependencyInjection = @@ -112,7 +117,7 @@ private void ShouldGetServiceWithSpalId() this.dependencyInjectionBroker .Setup(broker => - broker.GetService( + broker.GetServiceAsync( It.Is(actualServiceProvider => SameServiceProviderAs( actualServiceProvider, @@ -120,11 +125,11 @@ private void ShouldGetServiceWithSpalId() .Compile() .Invoke(inputDependencyInjection.ServiceProvider)), It.IsAny())) - .Returns(returnedService); + .ReturnsAsync(returnedService); // when ISPALBase actualService = - this.dependencyInjectionService.GetService( + await this.dependencyInjectionService.GetServiceAsync( inputDependencyInjection, inputProperties.SpalId); @@ -133,7 +138,7 @@ private void ShouldGetServiceWithSpalId() this.dependencyInjectionBroker.Verify( broker => - broker.GetService( + broker.GetServiceAsync( It.Is(actualServiceProvider => SameServiceProviderAs( actualServiceProvider, diff --git a/STX.SPAL.Core.Tests.Unit/Services/Foundations/DependenciesInjections/DependencyInjectionServiceTests.Logic.RegisterServiceDescriptor.cs b/STX.SPAL.Core.Tests.Unit/Services/Foundations/DependenciesInjections/DependencyInjectionServiceTests.Logic.RegisterServiceDescriptor.cs index da7e27a..af70e22 100644 --- a/STX.SPAL.Core.Tests.Unit/Services/Foundations/DependenciesInjections/DependencyInjectionServiceTests.Logic.RegisterServiceDescriptor.cs +++ b/STX.SPAL.Core.Tests.Unit/Services/Foundations/DependenciesInjections/DependencyInjectionServiceTests.Logic.RegisterServiceDescriptor.cs @@ -2,6 +2,7 @@ // Copyright (c) The Standard Organization: A coalition of the Good-Hearted Engineers // ---------------------------------------------------------------------------------- +using System.Threading.Tasks; using FluentAssertions; using Force.DeepCloner; using Microsoft.Extensions.DependencyInjection; @@ -13,7 +14,7 @@ namespace STX.SPAL.Core.Tests.Unit.Services.Foundations.DependenciesInjections public partial class DependencyInjectionServiceTests { [Fact] - private void ShouldRegisterServiceDescriptor() + private async Task ShouldRegisterServiceDescriptorAsync() { // given dynamic randomProperties = CreateRandomProperties(); @@ -32,7 +33,7 @@ private void ShouldRegisterServiceDescriptor() this.dependencyInjectionBroker .Setup(broker => - broker.AddServiceDescriptor( + broker.AddServiceDescriptorAsync( It.IsAny(), It.Is(actualServiceDescriptor => SameServiceDescriptorAs( @@ -40,11 +41,11 @@ private void ShouldRegisterServiceDescriptor() expectedServiceDescriptor) .Compile() .Invoke(actualServiceDescriptor)))) - .Returns(returnedDependencyInjection.ServiceCollection); + .ReturnsAsync(returnedDependencyInjection.ServiceCollection); // when DependencyInjection actualDependencyInjection = - this.dependencyInjectionService.RegisterServiceDescriptor( + await this.dependencyInjectionService.RegisterServiceDescriptorAsync( inputProperties.DependencyInjection, inputProperties.SpalInterfaceType, inputProperties.ImplementationType, @@ -55,7 +56,7 @@ private void ShouldRegisterServiceDescriptor() this.dependencyInjectionBroker.Verify( broker => - broker.AddServiceDescriptor( + broker.AddServiceDescriptorAsync( It.IsAny(), It.Is(actualServiceDescriptor => SameServiceDescriptorAs( @@ -69,7 +70,7 @@ private void ShouldRegisterServiceDescriptor() } [Fact] - private void ShouldRegisterServiceDescriptorWithSpalId() + private async Task ShouldRegisterServiceDescriptorWithSpalIdAsync() { // given dynamic randomProperties = CreateRandomProperties(); @@ -88,7 +89,7 @@ private void ShouldRegisterServiceDescriptorWithSpalId() this.dependencyInjectionBroker .Setup(broker => - broker.AddServiceDescriptor( + broker.AddServiceDescriptorAsync( It.IsAny(), It.Is(actualServiceDescriptor => SameServiceDescriptorAs( @@ -96,11 +97,11 @@ private void ShouldRegisterServiceDescriptorWithSpalId() expectedServiceDescriptor) .Compile() .Invoke(actualServiceDescriptor)))) - .Returns(returnedDependencyInjection.ServiceCollection); + .ReturnsAsync(returnedDependencyInjection.ServiceCollection); // when DependencyInjection actualDependencyInjection = - this.dependencyInjectionService.RegisterServiceDescriptor( + await this.dependencyInjectionService.RegisterServiceDescriptorAsync( inputProperties.DependencyInjection, inputProperties.SpalInterfaceType, inputProperties.SpalId, @@ -112,7 +113,7 @@ private void ShouldRegisterServiceDescriptorWithSpalId() this.dependencyInjectionBroker.Verify( broker => - broker.AddServiceDescriptor( + broker.AddServiceDescriptorAsync( It.IsAny(), It.Is(actualServiceDescriptor => SameServiceDescriptorAs( diff --git a/STX.SPAL.Core.Tests.Unit/Services/Foundations/DependenciesInjections/DependencyInjectionServiceTests.Validations.BuildServiceProvider.cs b/STX.SPAL.Core.Tests.Unit/Services/Foundations/DependenciesInjections/DependencyInjectionServiceTests.Validations.BuildServiceProvider.cs index c458835..95e036e 100644 --- a/STX.SPAL.Core.Tests.Unit/Services/Foundations/DependenciesInjections/DependencyInjectionServiceTests.Validations.BuildServiceProvider.cs +++ b/STX.SPAL.Core.Tests.Unit/Services/Foundations/DependenciesInjections/DependencyInjectionServiceTests.Validations.BuildServiceProvider.cs @@ -3,6 +3,7 @@ // ---------------------------------------------------------------------------------- using System; +using System.Threading.Tasks; using FluentAssertions; using Microsoft.Extensions.DependencyInjection; using Moq; @@ -16,7 +17,7 @@ public partial class DependencyInjectionServiceTests { [Theory] [MemberData(nameof(BuildServiceProviderValidationExceptions))] - private void ShouldThrowValidationExceptionIfInvalidParametersOnBuildServiceProvider( + private async Task ShouldThrowValidationExceptionIfInvalidParametersOnBuildServiceProviderAsync( DependencyInjection someDependencyInjection, Xeption exception) { @@ -28,16 +29,18 @@ private void ShouldThrowValidationExceptionIfInvalidParametersOnBuildServiceProv this.dependencyInjectionBroker .Setup(broker => - broker.BuildServiceProvider( + broker.BuildServiceProviderAsync( It.IsAny())); // when - Func buildServiceProviderFunction = () => - this.dependencyInjectionService.BuildServiceProvider( - someDependencyInjection); + Func> buildServiceProviderFunction = + () => + this.dependencyInjectionService.BuildServiceProviderAsync( + someDependencyInjection) + .AsTask(); DependencyInjectionValidationException actualDependencyInjectionValidationException = - Assert.Throws( + await Assert.ThrowsAsync( buildServiceProviderFunction); // then @@ -46,7 +49,7 @@ private void ShouldThrowValidationExceptionIfInvalidParametersOnBuildServiceProv this.dependencyInjectionBroker .Verify(broker => - broker.BuildServiceProvider( + broker.BuildServiceProviderAsync( It.IsAny()), Times.Never); diff --git a/STX.SPAL.Core.Tests.Unit/Services/Foundations/DependenciesInjections/DependencyInjectionServiceTests.Validations.GetService.cs b/STX.SPAL.Core.Tests.Unit/Services/Foundations/DependenciesInjections/DependencyInjectionServiceTests.Validations.GetService.cs index 519b8b1..5987022 100644 --- a/STX.SPAL.Core.Tests.Unit/Services/Foundations/DependenciesInjections/DependencyInjectionServiceTests.Validations.GetService.cs +++ b/STX.SPAL.Core.Tests.Unit/Services/Foundations/DependenciesInjections/DependencyInjectionServiceTests.Validations.GetService.cs @@ -3,6 +3,7 @@ // ---------------------------------------------------------------------------------- using System; +using System.Threading.Tasks; using FluentAssertions; using Moq; using STX.SPAL.Abstractions; @@ -16,7 +17,7 @@ public partial class DependencyInjectionServiceTests { [Theory] [MemberData(nameof(GetServiceValidationExceptions))] - private void ShouldThrowValidationExceptionIfInvalidParametersOnGetService( + private async Task ShouldThrowValidationExceptionIfInvalidParametersOnGetServiceAsync( DependencyInjection someDependencyInjection, Xeption exception) { @@ -28,16 +29,18 @@ private void ShouldThrowValidationExceptionIfInvalidParametersOnGetService( this.dependencyInjectionBroker .Setup(broker => - broker.GetService( + broker.GetServiceAsync( It.IsAny())); // when - Func getServiceFunction = () => - this.dependencyInjectionService.GetService( - someDependencyInjection); + Func> getServiceFunction = + () => + this.dependencyInjectionService.GetServiceAsync( + someDependencyInjection) + .AsTask(); DependencyInjectionValidationException actualDependencyInjectionValidationException = - Assert.Throws( + await Assert.ThrowsAsync( getServiceFunction); // then @@ -46,7 +49,7 @@ private void ShouldThrowValidationExceptionIfInvalidParametersOnGetService( this.dependencyInjectionBroker .Verify(broker => - broker.GetService( + broker.GetServiceAsync( It.IsAny()), Times.Never); @@ -55,7 +58,7 @@ private void ShouldThrowValidationExceptionIfInvalidParametersOnGetService( [Theory] [MemberData(nameof(GetServiceWithSpalValidationExceptions))] - private void ShouldThrowValidationExceptionIfInvalidParametersOnGetServiceWithSpal( + private async Task ShouldThrowValidationExceptionIfInvalidParametersOnGetServiceWithSpalAsync( DependencyInjection someDependencyInjection, string someSpalId, Xeption exception) @@ -68,18 +71,20 @@ private void ShouldThrowValidationExceptionIfInvalidParametersOnGetServiceWithSp this.dependencyInjectionBroker .Setup(broker => - broker.GetService( + broker.GetServiceAsync( It.IsAny(), It.IsAny())); // when - Func getServiceFunction = () => - this.dependencyInjectionService.GetService( - someDependencyInjection, - someSpalId); + Func> getServiceFunction = + () => + this.dependencyInjectionService.GetServiceAsync( + someDependencyInjection, + someSpalId) + .AsTask(); DependencyInjectionValidationException actualDependencyInjectionValidationException = - Assert.Throws( + await Assert.ThrowsAsync( getServiceFunction); // then @@ -88,7 +93,7 @@ private void ShouldThrowValidationExceptionIfInvalidParametersOnGetServiceWithSp this.dependencyInjectionBroker .Verify(broker => - broker.GetService( + broker.GetServiceAsync( It.IsAny(), It.IsAny()), Times.Never); diff --git a/STX.SPAL.Core.Tests.Unit/Services/Foundations/DependenciesInjections/DependencyInjectionServiceTests.Validations.RegisterServiceDescriptor.cs b/STX.SPAL.Core.Tests.Unit/Services/Foundations/DependenciesInjections/DependencyInjectionServiceTests.Validations.RegisterServiceDescriptor.cs index 408a74e..15401bf 100644 --- a/STX.SPAL.Core.Tests.Unit/Services/Foundations/DependenciesInjections/DependencyInjectionServiceTests.Validations.RegisterServiceDescriptor.cs +++ b/STX.SPAL.Core.Tests.Unit/Services/Foundations/DependenciesInjections/DependencyInjectionServiceTests.Validations.RegisterServiceDescriptor.cs @@ -3,6 +3,7 @@ // ---------------------------------------------------------------------------------- using System; +using System.Threading.Tasks; using FluentAssertions; using Microsoft.Extensions.DependencyInjection; using Moq; @@ -16,7 +17,7 @@ public partial class DependencyInjectionServiceTests { [Theory] [MemberData(nameof(RegisterServiceDescriptorValidationExceptions))] - private void ShouldThrowValidationExceptionIfInvalidParameters( + private async Task ShouldThrowValidationExceptionIfInvalidParametersAsync( DependencyInjection someDependencyInjection, Type spalInterfaceType, Type implementationType, @@ -30,20 +31,22 @@ private void ShouldThrowValidationExceptionIfInvalidParameters( this.dependencyInjectionBroker .Setup(broker => - broker.AddServiceDescriptor( + broker.AddServiceDescriptorAsync( It.IsAny(), It.IsAny())); // when - Func registerServiceDescriptorFunction = () => - this.dependencyInjectionService.RegisterServiceDescriptor( - someDependencyInjection, - spalInterfaceType, - implementationType, - ServiceLifetime.Singleton); + Func> registerServiceDescriptorFunction = + () => + this.dependencyInjectionService.RegisterServiceDescriptorAsync( + someDependencyInjection, + spalInterfaceType, + implementationType, + ServiceLifetime.Singleton) + .AsTask(); DependencyInjectionValidationException actualServiceCollectionValidationException = - Assert.Throws( + await Assert.ThrowsAsync( registerServiceDescriptorFunction); // then @@ -52,7 +55,7 @@ private void ShouldThrowValidationExceptionIfInvalidParameters( this.dependencyInjectionBroker .Verify(broker => - broker.AddServiceDescriptor( + broker.AddServiceDescriptorAsync( It.IsAny(), It.IsAny()), Times.Never); @@ -62,7 +65,7 @@ private void ShouldThrowValidationExceptionIfInvalidParameters( [Theory] [MemberData(nameof(RegisterServiceDescriptorWithSpalIdValidationExceptions))] - private void ShouldThrowValidationExceptionIfInvalidParametersWhenUsingSpalId( + private async Task ShouldThrowValidationExceptionIfInvalidParametersWhenUsingSpalIdAsync( DependencyInjection someDependencyInjection, Type spalInterfaceType, string spalId, @@ -77,21 +80,23 @@ private void ShouldThrowValidationExceptionIfInvalidParametersWhenUsingSpalId( this.dependencyInjectionBroker .Setup(broker => - broker.AddServiceDescriptor( + broker.AddServiceDescriptorAsync( It.IsAny(), It.IsAny())); // when - Func registerServiceDescriptorFunction = () => - this.dependencyInjectionService.RegisterServiceDescriptor( - someDependencyInjection, - spalInterfaceType, - spalId, - implementationType, - ServiceLifetime.Singleton); + Func> registerServiceDescriptorFunction = + () => + this.dependencyInjectionService.RegisterServiceDescriptorAsync( + someDependencyInjection, + spalInterfaceType, + spalId, + implementationType, + ServiceLifetime.Singleton) + .AsTask(); DependencyInjectionValidationException actualServiceCollectionValidationException = - Assert.Throws( + await Assert.ThrowsAsync( registerServiceDescriptorFunction); // then @@ -100,7 +105,7 @@ private void ShouldThrowValidationExceptionIfInvalidParametersWhenUsingSpalId( this.dependencyInjectionBroker .Verify(broker => - broker.AddServiceDescriptor( + broker.AddServiceDescriptorAsync( It.IsAny(), It.IsAny()), Times.Never); diff --git a/STX.SPAL.Core/Brokers/Assemblies/AssemblyBroker.cs b/STX.SPAL.Core/Brokers/Assemblies/AssemblyBroker.cs index dc3f7cc..a2aa9c5 100644 --- a/STX.SPAL.Core/Brokers/Assemblies/AssemblyBroker.cs +++ b/STX.SPAL.Core/Brokers/Assemblies/AssemblyBroker.cs @@ -4,6 +4,7 @@ using System.IO; using System.Reflection; +using System.Threading.Tasks; namespace STX.SPAL.Core.Brokers.Assemblies { @@ -22,10 +23,10 @@ public AssemblyBroker() Directory.GetFiles(applicationPath, "*.dll"); } - public string[] GetApplicationPathsAssemblies() => + public async ValueTask GetApplicationPathsAssembliesAsync() => applicationPathsAssemblies; - public Assembly GetAssembly(string assemblyPath) => + public async ValueTask GetAssemblyAsync(string assemblyPath) => Assembly.LoadFrom(assemblyPath); } } diff --git a/STX.SPAL.Core/Brokers/Assemblies/IAssemblyBroker.cs b/STX.SPAL.Core/Brokers/Assemblies/IAssemblyBroker.cs index 6c88634..ed74677 100644 --- a/STX.SPAL.Core/Brokers/Assemblies/IAssemblyBroker.cs +++ b/STX.SPAL.Core/Brokers/Assemblies/IAssemblyBroker.cs @@ -3,12 +3,13 @@ // ---------------------------------------------------------------------------------- using System.Reflection; +using System.Threading.Tasks; namespace STX.SPAL.Core.Brokers.Assemblies { internal partial interface IAssemblyBroker { - string[] GetApplicationPathsAssemblies(); - Assembly GetAssembly(string fullPath); + ValueTask GetApplicationPathsAssembliesAsync(); + ValueTask GetAssemblyAsync(string fullPath); } } diff --git a/STX.SPAL.Core/Brokers/DependenciesInjections/DependencyInjectionBroker.ServiceCollection.cs b/STX.SPAL.Core/Brokers/DependenciesInjections/DependencyInjectionBroker.ServiceCollection.cs index 7893caa..77651f6 100644 --- a/STX.SPAL.Core/Brokers/DependenciesInjections/DependencyInjectionBroker.ServiceCollection.cs +++ b/STX.SPAL.Core/Brokers/DependenciesInjections/DependencyInjectionBroker.ServiceCollection.cs @@ -2,13 +2,14 @@ // Copyright (c) The Standard Organization: A coalition of the Good-Hearted Engineers // ---------------------------------------------------------------------------------- +using System.Threading.Tasks; using Microsoft.Extensions.DependencyInjection; namespace STX.SPAL.Core.Brokers.DependenciesInjections { internal partial class DependencyInjectionBroker { - public IServiceCollection AddServiceDescriptor( + public async ValueTask AddServiceDescriptorAsync( IServiceCollection serviceCollection, ServiceDescriptor serviceDescriptor) { diff --git a/STX.SPAL.Core/Brokers/DependenciesInjections/DependencyInjectionBroker.ServiceProvider.cs b/STX.SPAL.Core/Brokers/DependenciesInjections/DependencyInjectionBroker.ServiceProvider.cs index 564da5b..8078f93 100644 --- a/STX.SPAL.Core/Brokers/DependenciesInjections/DependencyInjectionBroker.ServiceProvider.cs +++ b/STX.SPAL.Core/Brokers/DependenciesInjections/DependencyInjectionBroker.ServiceProvider.cs @@ -3,19 +3,20 @@ // ---------------------------------------------------------------------------------- using System; +using System.Threading.Tasks; using Microsoft.Extensions.DependencyInjection; namespace STX.SPAL.Core.Brokers.DependenciesInjections { internal partial class DependencyInjectionBroker { - public IServiceProvider BuildServiceProvider(IServiceCollection serviceCollection) => + public async ValueTask BuildServiceProviderAsync(IServiceCollection serviceCollection) => serviceCollection.BuildServiceProvider(); - public T GetService(IServiceProvider serviceProvider) => + public async ValueTask GetServiceAsync(IServiceProvider serviceProvider) => serviceProvider.GetRequiredService(); - public T GetService(IServiceProvider serviceProvider, string spalId) => + public async ValueTask GetServiceAsync(IServiceProvider serviceProvider, string spalId) => serviceProvider.GetRequiredKeyedService(spalId); } } diff --git a/STX.SPAL.Core/Brokers/DependenciesInjections/IDependencyInjectionBroker.ServiceCollection.cs b/STX.SPAL.Core/Brokers/DependenciesInjections/IDependencyInjectionBroker.ServiceCollection.cs index d3b141e..3795903 100644 --- a/STX.SPAL.Core/Brokers/DependenciesInjections/IDependencyInjectionBroker.ServiceCollection.cs +++ b/STX.SPAL.Core/Brokers/DependenciesInjections/IDependencyInjectionBroker.ServiceCollection.cs @@ -2,13 +2,14 @@ // Copyright (c) The Standard Organization: A coalition of the Good-Hearted Engineers // ---------------------------------------------------------------------------------- +using System.Threading.Tasks; using Microsoft.Extensions.DependencyInjection; namespace STX.SPAL.Core.Brokers.DependenciesInjections { internal partial interface IDependencyInjectionBroker { - IServiceCollection AddServiceDescriptor( + ValueTask AddServiceDescriptorAsync( IServiceCollection serviceCollection, ServiceDescriptor serviceDescriptor); } diff --git a/STX.SPAL.Core/Brokers/DependenciesInjections/IDependencyInjectionBroker.ServiceProvider.cs b/STX.SPAL.Core/Brokers/DependenciesInjections/IDependencyInjectionBroker.ServiceProvider.cs index d3bf4e9..d095cb4 100644 --- a/STX.SPAL.Core/Brokers/DependenciesInjections/IDependencyInjectionBroker.ServiceProvider.cs +++ b/STX.SPAL.Core/Brokers/DependenciesInjections/IDependencyInjectionBroker.ServiceProvider.cs @@ -3,14 +3,15 @@ // ---------------------------------------------------------------------------------- using System; +using System.Threading.Tasks; using Microsoft.Extensions.DependencyInjection; namespace STX.SPAL.Core.Brokers.DependenciesInjections { internal partial interface IDependencyInjectionBroker { - IServiceProvider BuildServiceProvider(IServiceCollection serviceCollection); - T GetService(IServiceProvider serviceProvider); - T GetService(IServiceProvider serviceProvider, string spalId); + ValueTask BuildServiceProviderAsync(IServiceCollection serviceCollection); + ValueTask GetServiceAsync(IServiceProvider serviceProvider); + ValueTask GetServiceAsync(IServiceProvider serviceProvider, string spalId); } } diff --git a/STX.SPAL.Core/STX.SPAL.Core.csproj b/STX.SPAL.Core/STX.SPAL.Core.csproj index 10e2f53..47cf54f 100644 --- a/STX.SPAL.Core/STX.SPAL.Core.csproj +++ b/STX.SPAL.Core/STX.SPAL.Core.csproj @@ -4,6 +4,7 @@ net8.0 disable disable + CS1998 diff --git a/STX.SPAL.Core/Services/Foundations/Assemblies/AssemblyService.Exceptions.cs b/STX.SPAL.Core/Services/Foundations/Assemblies/AssemblyService.Exceptions.cs index d1d384f..3709a49 100644 --- a/STX.SPAL.Core/Services/Foundations/Assemblies/AssemblyService.Exceptions.cs +++ b/STX.SPAL.Core/Services/Foundations/Assemblies/AssemblyService.Exceptions.cs @@ -6,6 +6,7 @@ using System.IO; using System.Reflection; using System.Security; +using System.Threading.Tasks; using STX.SPAL.Core.Models.Services.Foundations.Assemblies.Exceptions; using Xeptions; @@ -13,13 +14,13 @@ namespace STX.SPAL.Core.Services.Foundations.Assemblies { internal partial class AssemblyService { - private delegate Assembly ReturningAssemblyFunction(); + private delegate ValueTask ReturningAssemblyFunction(); - private static Assembly TryCatch(ReturningAssemblyFunction returningAssemblyFunction) + private async static ValueTask TryCatch(ReturningAssemblyFunction returningAssemblyFunction) { try { - return returningAssemblyFunction(); + return await returningAssemblyFunction(); } catch (InvalidAssemblyPathException invalidAssemblyPathException) diff --git a/STX.SPAL.Core/Services/Foundations/Assemblies/AssemblyService.cs b/STX.SPAL.Core/Services/Foundations/Assemblies/AssemblyService.cs index 262735f..8b50bf2 100644 --- a/STX.SPAL.Core/Services/Foundations/Assemblies/AssemblyService.cs +++ b/STX.SPAL.Core/Services/Foundations/Assemblies/AssemblyService.cs @@ -3,6 +3,7 @@ // ---------------------------------------------------------------------------------- using System.Reflection; +using System.Threading.Tasks; using STX.SPAL.Core.Brokers.Assemblies; namespace STX.SPAL.Core.Services.Foundations.Assemblies @@ -14,15 +15,15 @@ internal partial class AssemblyService : IAssemblyService public AssemblyService(IAssemblyBroker assemblyBroker) => this.assemblyBroker = assemblyBroker; - public string[] GetApplicationPathsAssemblies() => - this.assemblyBroker.GetApplicationPathsAssemblies(); + public async ValueTask GetApplicationPathsAssembliesAsync() => + await this.assemblyBroker.GetApplicationPathsAssembliesAsync(); - public Assembly GetAssembly(string assemblyPath) => - TryCatch(() => + public ValueTask GetAssemblyAsync(string assemblyPath) => + TryCatch(async () => { ValidateAssemblyPath(assemblyPath); - return this.assemblyBroker.GetAssembly(assemblyPath); + return await this.assemblyBroker.GetAssemblyAsync(assemblyPath); }); } } diff --git a/STX.SPAL.Core/Services/Foundations/Assemblies/IAssemblyService.cs b/STX.SPAL.Core/Services/Foundations/Assemblies/IAssemblyService.cs index b68a93c..846804e 100644 --- a/STX.SPAL.Core/Services/Foundations/Assemblies/IAssemblyService.cs +++ b/STX.SPAL.Core/Services/Foundations/Assemblies/IAssemblyService.cs @@ -3,12 +3,13 @@ // ---------------------------------------------------------------------------------- using System.Reflection; +using System.Threading.Tasks; namespace STX.SPAL.Core.Services.Foundations.Assemblies { internal interface IAssemblyService { - string[] GetApplicationPathsAssemblies(); - Assembly GetAssembly(string fullPath); + ValueTask GetApplicationPathsAssembliesAsync(); + ValueTask GetAssemblyAsync(string fullPath); } } diff --git a/STX.SPAL.Core/Services/Foundations/DepedenciesInjections/DependencyInjectionService.Exceptions.cs b/STX.SPAL.Core/Services/Foundations/DepedenciesInjections/DependencyInjectionService.Exceptions.cs index 0f4f728..ea267b9 100644 --- a/STX.SPAL.Core/Services/Foundations/DepedenciesInjections/DependencyInjectionService.Exceptions.cs +++ b/STX.SPAL.Core/Services/Foundations/DepedenciesInjections/DependencyInjectionService.Exceptions.cs @@ -3,6 +3,7 @@ // ---------------------------------------------------------------------------------- using System; +using System.Threading.Tasks; using STX.SPAL.Core.Models.Services.Foundations.DependenciesInjections; using STX.SPAL.Core.Models.Services.Foundations.DependenciesInjections.Exceptions; using Xeptions; @@ -11,15 +12,15 @@ namespace STX.SPAL.Core.Services.Foundations.DependenciesInjections { internal partial class DependencyInjectionService { - private delegate DependencyInjection ReturningDependencyInjectionFunction(); - private delegate T ReturningGetServiceDependencyInjectionFunction(); + private delegate ValueTask ReturningDependencyInjectionFunction(); + private delegate ValueTask ReturningGetServiceDependencyInjectionFunction(); - private static DependencyInjection TryCatch( + private async static ValueTask TryCatch( ReturningDependencyInjectionFunction returningDependencyInjectionFunction) { try { - return returningDependencyInjectionFunction(); + return await returningDependencyInjectionFunction(); } catch (InvalidDependencyInjectionParameterException invalidDependencyInjectionParameterException) @@ -69,12 +70,12 @@ private static DependencyInjection TryCatch( } } - private static T TryCatchGetService( + private async static ValueTask TryCatchGetService( ReturningGetServiceDependencyInjectionFunction returningGetServiceDependencyInjectionFunction) { try { - return returningGetServiceDependencyInjectionFunction(); + return await returningGetServiceDependencyInjectionFunction(); } catch (InvalidDependencyInjectionParameterException invalidDependencyInjectionParameterException) diff --git a/STX.SPAL.Core/Services/Foundations/DepedenciesInjections/DependencyInjectionService.Validations.cs b/STX.SPAL.Core/Services/Foundations/DepedenciesInjections/DependencyInjectionService.Validations.cs index bf35aca..f007f99 100644 --- a/STX.SPAL.Core/Services/Foundations/DepedenciesInjections/DependencyInjectionService.Validations.cs +++ b/STX.SPAL.Core/Services/Foundations/DepedenciesInjections/DependencyInjectionService.Validations.cs @@ -107,14 +107,24 @@ private static void ValidateServiceProvider(params (dynamic Rule, string Paramet private static void ValidateDependencyInjection(DependencyInjection dependencyInjection) { ValidateDependencyInjection( - (Rule: IsInvalidObject(dependencyInjection), Parameter: nameof(DependencyInjection))); + (Rule: + IsInvalidObject(dependencyInjection), + Parameter: + nameof(DependencyInjection))); } private static void ValidateServiceDescriptorTypes(Type spalInterfaceType, Type implementationType) { ValidateServiceDescriptor( - (Rule: IsInvalidType(spalInterfaceType), Parameter: nameof(spalInterfaceType)), - (Rule: IsInvalidType(implementationType), Parameter: nameof(implementationType))); + (Rule: + IsInvalidType(spalInterfaceType), + Parameter: + nameof(spalInterfaceType)), + + (Rule: + IsInvalidType(implementationType), + Parameter: + nameof(implementationType))); } private static void ValidateServiceDescriptorTypesWithSpalId( @@ -123,15 +133,29 @@ private static void ValidateServiceDescriptorTypesWithSpalId( Type implementationType) { ValidateServiceDescriptor( - (Rule: IsInvalidType(spalInterfaceType), Parameter: nameof(spalInterfaceType)), - (Rule: IsInvalid(spalId), Parameter: nameof(spalId)), - (Rule: IsInvalidType(implementationType), Parameter: nameof(implementationType))); + (Rule: + IsInvalidType(spalInterfaceType), + Parameter: + nameof(spalInterfaceType)), + + (Rule: + IsInvalid(spalId), + Parameter: + nameof(spalId)), + + (Rule: + IsInvalidType(implementationType), + Parameter: + nameof(implementationType))); } private static void ValidateServiceCollection(DependencyInjection dependencyInjection) { ValidateDependencyInjection( - (Rule: IsInvalidObject(dependencyInjection), Parameter: nameof(DependencyInjection))); + (Rule: + IsInvalidObject(dependencyInjection), + Parameter: + nameof(DependencyInjection))); ValidateServiceCollection( (Rule: diff --git a/STX.SPAL.Core/Services/Foundations/DepedenciesInjections/DependencyInjectionService.cs b/STX.SPAL.Core/Services/Foundations/DepedenciesInjections/DependencyInjectionService.cs index 4b56807..ebdd7a9 100644 --- a/STX.SPAL.Core/Services/Foundations/DepedenciesInjections/DependencyInjectionService.cs +++ b/STX.SPAL.Core/Services/Foundations/DepedenciesInjections/DependencyInjectionService.cs @@ -3,6 +3,7 @@ // ---------------------------------------------------------------------------------- using System; +using System.Threading.Tasks; using Microsoft.Extensions.DependencyInjection; using STX.SPAL.Core.Brokers.DependenciesInjections; using STX.SPAL.Core.Models.Services.Foundations.DependenciesInjections; @@ -16,12 +17,12 @@ internal partial class DependencyInjectionService : IDependencyInjectionService public DependencyInjectionService(IDependencyInjectionBroker dependencyInjectionBroker) => this.dependencyInjectionBroker = dependencyInjectionBroker; - public DependencyInjection RegisterServiceDescriptor( + public ValueTask RegisterServiceDescriptorAsync( DependencyInjection dependencyInjection, Type spalInterfaceType, Type implementationType, ServiceLifetime serviceLifetime) => - TryCatch(() => + TryCatch(async () => { ValidateDependencyInjection(dependencyInjection); ValidateServiceDescriptorTypes(spalInterfaceType, implementationType); @@ -29,20 +30,20 @@ public DependencyInjection RegisterServiceDescriptor( ServiceDescriptor serviceDescriptor = new ServiceDescriptor(spalInterfaceType, implementationType, serviceLifetime); - dependencyInjectionBroker.AddServiceDescriptor( + await dependencyInjectionBroker.AddServiceDescriptorAsync( dependencyInjection.ServiceCollection, serviceDescriptor); return dependencyInjection; }); - public DependencyInjection RegisterServiceDescriptor( + public ValueTask RegisterServiceDescriptorAsync( DependencyInjection dependencyInjection, Type spalInterfaceType, string spalId, Type implementationType, ServiceLifetime serviceLifetime) => - TryCatch(() => + TryCatch(async () => { ValidateDependencyInjection(dependencyInjection); ValidateServiceDescriptorTypesWithSpalId(spalInterfaceType, spalId, implementationType); @@ -50,20 +51,20 @@ public DependencyInjection RegisterServiceDescriptor( ServiceDescriptor serviceDescriptor = new ServiceDescriptor(spalInterfaceType, spalId, implementationType, serviceLifetime); - dependencyInjectionBroker.AddServiceDescriptor( + await dependencyInjectionBroker.AddServiceDescriptorAsync( dependencyInjection.ServiceCollection, serviceDescriptor); return dependencyInjection; }); - public DependencyInjection BuildServiceProvider(DependencyInjection dependencyInjection) => - TryCatch(() => + public ValueTask BuildServiceProviderAsync(DependencyInjection dependencyInjection) => + TryCatch(async () => { ValidateServiceCollection(dependencyInjection); IServiceProvider serviceProvider = - dependencyInjectionBroker.BuildServiceProvider( + await dependencyInjectionBroker.BuildServiceProviderAsync( dependencyInjection.ServiceCollection); return new DependencyInjection @@ -73,21 +74,21 @@ public DependencyInjection BuildServiceProvider(DependencyInjection dependencyIn }; }); - public T GetService(DependencyInjection dependencyInjection) => - TryCatchGetService(() => + public ValueTask GetServiceAsync(DependencyInjection dependencyInjection) => + TryCatchGetService(async () => { ValidateServiceProvider(dependencyInjection); - return dependencyInjectionBroker.GetService( + return await dependencyInjectionBroker.GetServiceAsync( dependencyInjection.ServiceProvider); }); - public T GetService(DependencyInjection dependencyInjection, string spalId) => - TryCatchGetService(() => + public ValueTask GetServiceAsync(DependencyInjection dependencyInjection, string spalId) => + TryCatchGetService(async () => { ValidateServiceProviderWithSpalId(dependencyInjection, spalId); - return dependencyInjectionBroker.GetService( + return await dependencyInjectionBroker.GetServiceAsync( dependencyInjection.ServiceProvider, spalId); }); diff --git a/STX.SPAL.Core/Services/Foundations/DepedenciesInjections/IDependencyInjectionService.cs b/STX.SPAL.Core/Services/Foundations/DepedenciesInjections/IDependencyInjectionService.cs index 2d1b24a..39f165e 100644 --- a/STX.SPAL.Core/Services/Foundations/DepedenciesInjections/IDependencyInjectionService.cs +++ b/STX.SPAL.Core/Services/Foundations/DepedenciesInjections/IDependencyInjectionService.cs @@ -3,6 +3,7 @@ // ---------------------------------------------------------------------------------- using System; +using System.Threading.Tasks; using Microsoft.Extensions.DependencyInjection; using STX.SPAL.Core.Models.Services.Foundations.DependenciesInjections; @@ -10,26 +11,26 @@ namespace STX.SPAL.Core.Services.Foundations.DependenciesInjections { internal partial interface IDependencyInjectionService { - DependencyInjection RegisterServiceDescriptor( + ValueTask RegisterServiceDescriptorAsync( DependencyInjection dependencyInjection, Type spalInterfaceType, Type implementationType, ServiceLifetime serviceLifetime); - DependencyInjection RegisterServiceDescriptor( + ValueTask RegisterServiceDescriptorAsync( DependencyInjection dependencyInjection, Type spalInterfaceType, string spalId, Type implementationType, ServiceLifetime serviceLifetime); - DependencyInjection BuildServiceProvider( + ValueTask BuildServiceProviderAsync( DependencyInjection dependencyInjection); - T GetService( + ValueTask GetServiceAsync( DependencyInjection dependencyInjection); - T GetService( + ValueTask GetServiceAsync( DependencyInjection dependencyInjection, string spalId); }