diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureManager.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureManager.cs index 38c61cc743..6d7c6d59c2 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureManager.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureManager.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; @@ -76,16 +76,14 @@ namespace Volo.Abp.FeatureManagement Check.NotNull(providerName, nameof(providerName)); var featureDefinitions = FeatureDefinitionManager.GetAll(); - var providers = Enumerable.Reverse(Providers) - .SkipWhile(c => c.Name != providerName); + var providers = Enumerable.Reverse(Providers).SkipWhile(c => c.Name != providerName); if (!fallback) { providers = providers.TakeWhile(c => c.Name == providerName); } - var providerList = providers.Reverse().ToList(); - + var providerList = providers.ToList(); if (!providerList.Any()) { return new List(); diff --git a/modules/feature-management/test/Volo.Abp.FeatureManagement.Domain.Tests/Volo/Abp/FeatureManagement/FeatureManager_Tests.cs b/modules/feature-management/test/Volo.Abp.FeatureManagement.Domain.Tests/Volo/Abp/FeatureManagement/FeatureManager_Tests.cs index d86bcfaa48..232673c233 100644 --- a/modules/feature-management/test/Volo.Abp.FeatureManagement.Domain.Tests/Volo/Abp/FeatureManagement/FeatureManager_Tests.cs +++ b/modules/feature-management/test/Volo.Abp.FeatureManagement.Domain.Tests/Volo/Abp/FeatureManagement/FeatureManager_Tests.cs @@ -1,4 +1,5 @@ using System; +using System.Linq; using System.Threading.Tasks; using Shouldly; using Volo.Abp.Features; @@ -111,5 +112,47 @@ namespace Volo.Abp.FeatureManagement (await _featureChecker.IsEnabledAsync(TestFeatureDefinitionProvider.SocialLogins)).ShouldBeTrue(); } } + + + [Fact] + public async Task Should_Get_FeatureValues_With_Provider_For_A_Provider() + { + var featureNameValueWithGrantedProviders = await _featureManager.GetAllWithProviderAsync( + EditionFeatureValueProvider.ProviderName, + TestEditionIds.Enterprise.ToString() + ); + + featureNameValueWithGrantedProviders.ShouldContain(x => + x.Name == TestFeatureDefinitionProvider.SocialLogins + && x.Value == true.ToString().ToLowerInvariant() && + x.Provider.Name == EditionFeatureValueProvider.ProviderName); + + featureNameValueWithGrantedProviders.ShouldContain(x => + x.Name == TestFeatureDefinitionProvider.EmailSupport && + x.Value == true.ToString().ToLowerInvariant() && + x.Provider.Name == EditionFeatureValueProvider.ProviderName); + + //Default Value + featureNameValueWithGrantedProviders.ShouldContain(x => + x.Name == TestFeatureDefinitionProvider.DailyAnalysis && + x.Value == false.ToString().ToLowerInvariant() && + x.Provider.Name == DefaultValueFeatureValueProvider.ProviderName); + + featureNameValueWithGrantedProviders.ShouldContain(x => + x.Name == TestFeatureDefinitionProvider.UserCount && + x.Value == "20" && + x.Provider.Name == EditionFeatureValueProvider.ProviderName); + + featureNameValueWithGrantedProviders.ShouldContain(x => + x.Name == TestFeatureDefinitionProvider.ProjectCount && + x.Value == "3" && + x.Provider.Name == EditionFeatureValueProvider.ProviderName); + + featureNameValueWithGrantedProviders.ShouldContain(x => + x.Name == TestFeatureDefinitionProvider.BackupCount && + x.Value == "5" && + x.Provider.Name == EditionFeatureValueProvider.ProviderName); + } + } } diff --git a/modules/feature-management/test/Volo.Abp.FeatureManagement.TestBase/Volo/Abp/FeatureManagement/FeatureValueRepository_Tests.cs b/modules/feature-management/test/Volo.Abp.FeatureManagement.TestBase/Volo/Abp/FeatureManagement/FeatureValueRepository_Tests.cs index db606b2582..6cc50f7378 100644 --- a/modules/feature-management/test/Volo.Abp.FeatureManagement.TestBase/Volo/Abp/FeatureManagement/FeatureValueRepository_Tests.cs +++ b/modules/feature-management/test/Volo.Abp.FeatureManagement.TestBase/Volo/Abp/FeatureManagement/FeatureValueRepository_Tests.cs @@ -41,7 +41,7 @@ namespace Volo.Abp.FeatureManagement } [Fact] - public async Task FindAAllsync() + public async Task FindAllAsync() { var featureValues = await Repository.FindAllAsync( TestFeatureDefinitionProvider.ProjectCount,