From 7edbc7d7d0e19a72793e804a4ebfcdf91b212eaa Mon Sep 17 00:00:00 2001 From: iyilm4z Date: Wed, 20 Oct 2021 18:09:12 +0300 Subject: [PATCH] Should_Replace_Registered_Mvc_Service test added --- ...spNetCoreMvcConventionalRegistrar_Tests.cs | 37 ++++++++++++++++--- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/DependencyInjection/AbpAspNetCoreMvcConventionalRegistrar_Tests.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/DependencyInjection/AbpAspNetCoreMvcConventionalRegistrar_Tests.cs index 46f2823b70..aafba99fdd 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/DependencyInjection/AbpAspNetCoreMvcConventionalRegistrar_Tests.cs +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/DependencyInjection/AbpAspNetCoreMvcConventionalRegistrar_Tests.cs @@ -1,7 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; +using System.Linq; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.Extensions.DependencyInjection; @@ -35,6 +32,27 @@ namespace Volo.Abp.AspNetCore.Mvc.DependencyInjection serviceProvider.GetServices().Count().ShouldBe(1); serviceProvider.GetServices().Count().ShouldBe(1); } + + [Fact] + public void Should_Replace_Registered_Mvc_Service() + { + //Arrange + var services = new ServiceCollection(); + + //Act + services.AddConventionalRegistrar(new DefaultConventionalRegistrar()); + services.AddConventionalRegistrar(new AbpAspNetCoreMvcConventionalRegistrar()); + + services.AddTypes(typeof(My_Second_Test_ViewComponent), typeof(My_Third_Test_ViewComponent)); + + //Assert + services.ShouldContainTransient(typeof(My_Second_Test_ViewComponent), + typeof(My_Third_Test_ViewComponent)); + services.ShouldNotContainService(typeof(My_Third_Test_ViewComponent)); + + var serviceProvider = services.BuildServiceProvider(); + serviceProvider.GetServices().Count().ShouldBe(1); + } } public class My_Test_PageModel : PageModel @@ -49,6 +67,15 @@ namespace Volo.Abp.AspNetCore.Mvc.DependencyInjection public class My_Test_ViewComponent : ViewComponent { + } + public class My_Second_Test_ViewComponent : ViewComponent + { + } + + [Dependency(ReplaceServices = true)] + [ExposeServices(typeof(My_Second_Test_ViewComponent))] + public class My_Third_Test_ViewComponent : My_Second_Test_ViewComponent + { } -} +} \ No newline at end of file