From 31e6ffdaba2fd18750732df5a256bcafd1ceb8be Mon Sep 17 00:00:00 2001 From: Wannes Rebry Date: Wed, 18 Oct 2023 10:02:35 +0200 Subject: [PATCH 1/5] feat: add Global Usings --- src/Bindicate.Tests/GlobalUsings.cs | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 src/Bindicate.Tests/GlobalUsings.cs diff --git a/src/Bindicate.Tests/GlobalUsings.cs b/src/Bindicate.Tests/GlobalUsings.cs new file mode 100644 index 0000000..71ef8b3 --- /dev/null +++ b/src/Bindicate.Tests/GlobalUsings.cs @@ -0,0 +1,4 @@ +global using System.Linq; +global using System.Reflection; +global using Xunit; +global using FluentAssertions; From f47267d88b62fa93b484453ab67ad98d473f25db Mon Sep 17 00:00:00 2001 From: Wannes Rebry Date: Wed, 18 Oct 2023 10:03:06 +0200 Subject: [PATCH 2/5] test: append AddSingletonAttributeTests with LifeCycle validation --- .../Scoped/AddScopedAttributeTests.cs | 29 ++++++++++--------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/src/Bindicate.Tests/Scoped/AddScopedAttributeTests.cs b/src/Bindicate.Tests/Scoped/AddScopedAttributeTests.cs index 35630d6..be1c923 100644 --- a/src/Bindicate.Tests/Scoped/AddScopedAttributeTests.cs +++ b/src/Bindicate.Tests/Scoped/AddScopedAttributeTests.cs @@ -1,9 +1,6 @@ using Bindicate.Attributes; using Bindicate.Configuration; -using FluentAssertions; using Microsoft.Extensions.DependencyInjection; -using System.Reflection; -using Xunit; namespace Bindicate.Tests.ScopedTests; @@ -14,31 +11,37 @@ public class AddScopedAttributeTests [Fact] public void AddScoped_WithInterface_RegistersCorrectly() { + //Arrange var services = new ServiceCollection(); services.AddAutowiringForAssembly(_testAssembly); var serviceProvider = services.BuildServiceProvider(); - using (var scope = serviceProvider.CreateScope()) - { - var service = scope.ServiceProvider.GetService(); + //Act + using var scope = serviceProvider.CreateScope(); + var service = scope.ServiceProvider.GetService(); + ServiceDescriptor serviceDescriptor = services.First(x => x.ServiceType == typeof(IScopedInterface)); - service.Should().NotBeNull().And.BeOfType(); - } + // Assert + service.Should().NotBeNull().And.BeOfType(); + serviceDescriptor.Lifetime.Should().Be(ServiceLifetime.Scoped); } [Fact] public void AddScoped_RegistersCorrectly() { + // Arrange var services = new ServiceCollection(); services.AddAutowiringForAssembly(_testAssembly); var serviceProvider = services.BuildServiceProvider(); - using (var scope = serviceProvider.CreateScope()) - { - var service = scope.ServiceProvider.GetService(); + // Act + using var scope = serviceProvider.CreateScope(); + var service = scope.ServiceProvider.GetService(); + ServiceDescriptor serviceDescriptor = services.First(x => x.ServiceType == typeof(SimpleScopedClass)); - service.Should().NotBeNull().And.BeOfType(); - } + // Assert + service.Should().NotBeNull().And.BeOfType(); + serviceDescriptor.Lifetime.Should().Be(ServiceLifetime.Scoped); } } From 883f77caca4d566f6b18822869a236849ee0166d Mon Sep 17 00:00:00 2001 From: Wannes Rebry Date: Wed, 18 Oct 2023 10:03:20 +0200 Subject: [PATCH 3/5] test: append AddTransientAttributeTests with LifeCycle validation --- .../Singleton/AddSingletonAttributeTests.cs | 31 ++++++++++--------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/src/Bindicate.Tests/Singleton/AddSingletonAttributeTests.cs b/src/Bindicate.Tests/Singleton/AddSingletonAttributeTests.cs index a5347ae..f3e432a 100644 --- a/src/Bindicate.Tests/Singleton/AddSingletonAttributeTests.cs +++ b/src/Bindicate.Tests/Singleton/AddSingletonAttributeTests.cs @@ -1,10 +1,7 @@ using Bindicate.Attributes; using Bindicate.Configuration; using Bindicate.Tests.ScopedTests; -using FluentAssertions; using Microsoft.Extensions.DependencyInjection; -using System.Reflection; -using Xunit; namespace Bindicate.Tests.Singleton; @@ -28,31 +25,37 @@ public void AddSingleton_AlwaysReturnsSame() [Fact] public void AddSingleton_WithInterface_RegistersCorrectly() { + // Arrange var services = new ServiceCollection(); services.AddAutowiringForAssembly(_testAssembly); var serviceProvider = services.BuildServiceProvider(); - using (var scope = serviceProvider.CreateScope()) - { - var service = scope.ServiceProvider.GetService(); + // Act + using var scope = serviceProvider.CreateScope(); + var service = scope.ServiceProvider.GetService(); + ServiceDescriptor serviceDescriptor = services.First(x => x.ServiceType == typeof(ISingletonInterface)); - service.Should().NotBeNull().And.BeOfType(); - } + // Assert + service.Should().NotBeNull().And.BeOfType(); + serviceDescriptor.Lifetime.Should().Be(ServiceLifetime.Singleton); } [Fact] public void AddSingleton_RegistersCorrectly() { + // Arrange var services = new ServiceCollection(); services.AddAutowiringForAssembly(_testAssembly); var serviceProvider = services.BuildServiceProvider(); + + // Act + using var scope = serviceProvider.CreateScope(); + var service = scope.ServiceProvider.GetService(); + ServiceDescriptor serviceDescriptor = services.First(x => x.ServiceType == typeof(SimpleSingletonClass)); - using (var scope = serviceProvider.CreateScope()) - { - var service = scope.ServiceProvider.GetService(); - - service.Should().NotBeNull().And.BeOfType(); - } + // Assert + service.Should().NotBeNull().And.BeOfType(); + serviceDescriptor.Lifetime.Should().Be(ServiceLifetime.Singleton); } } From c74589f6eaea8288bd0147ad2e742df0bfc08930 Mon Sep 17 00:00:00 2001 From: Wannes Rebry Date: Wed, 18 Oct 2023 10:03:33 +0200 Subject: [PATCH 4/5] test: append AddTransientAttributeTests with LifeCycle validation --- .../Transient/AddTransientAttributeTests.cs | 28 +++++++++++-------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/src/Bindicate.Tests/Transient/AddTransientAttributeTests.cs b/src/Bindicate.Tests/Transient/AddTransientAttributeTests.cs index 0015323..34f5279 100644 --- a/src/Bindicate.Tests/Transient/AddTransientAttributeTests.cs +++ b/src/Bindicate.Tests/Transient/AddTransientAttributeTests.cs @@ -28,31 +28,37 @@ public void AddTransient_AlwaysReturnsNewInstance() [Fact] public void AddTransient_WithInterface_RegistersCorrectly() { + // Arrange var services = new ServiceCollection(); services.AddAutowiringForAssembly(_testAssembly); var serviceProvider = services.BuildServiceProvider(); + + // Act + using var scope = serviceProvider.CreateScope(); + var service = scope.ServiceProvider.GetService(); + ServiceDescriptor serviceDescriptor = services.First(x => x.ServiceType == typeof(ITransientInterface)); - using (var scope = serviceProvider.CreateScope()) - { - var service = scope.ServiceProvider.GetService(); - - service.Should().NotBeNull().And.BeOfType(); - } + // Assert + service.Should().NotBeNull().And.BeOfType(); + serviceDescriptor.Lifetime.Should().Be(ServiceLifetime.Transient); } [Fact] public void AddSingleton_RegistersCorrectly() { + // Arrange var services = new ServiceCollection(); services.AddAutowiringForAssembly(_testAssembly); var serviceProvider = services.BuildServiceProvider(); - using (var scope = serviceProvider.CreateScope()) - { - var service = scope.ServiceProvider.GetService(); + // Act + using var scope = serviceProvider.CreateScope(); + var service = scope.ServiceProvider.GetService(); + ServiceDescriptor serviceDescriptor = services.First(x => x.ServiceType == typeof(SimpleTransientClass)); - service.Should().NotBeNull().And.BeOfType(); - } + // Assert + service.Should().NotBeNull().And.BeOfType(); + serviceDescriptor.Lifetime.Should().Be(ServiceLifetime.Transient); } } From 04d46155a6b029dddbe1ef6f349239e4125bf9d3 Mon Sep 17 00:00:00 2001 From: Wannes Rebry Date: Wed, 18 Oct 2023 10:09:31 +0200 Subject: [PATCH 5/5] feat: update .gitignore --- .gitignore | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 9491a2f..4cfa01f 100644 --- a/.gitignore +++ b/.gitignore @@ -360,4 +360,8 @@ MigrationBackup/ .ionide/ # Fody - auto-generated XML schema -FodyWeavers.xsd \ No newline at end of file +FodyWeavers.xsd + +# JetBrains Rider +.idea/ +*.sln.iml \ No newline at end of file