Browse Source

Refactor.

pull/6202/head
maliming 6 years ago
parent
commit
00f5169b86
  1. 10
      modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/FeatureManager.cs
  2. 52
      modules/feature-management/test/Volo.Abp.FeatureManagement.Domain.Tests/Volo/Abp/FeatureManagement/FeatureManager_Tests.cs
  3. 2
      modules/feature-management/test/Volo.Abp.FeatureManagement.TestBase/Volo/Abp/FeatureManagement/FeatureValueRepository_Tests.cs

10
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.Collections.Generic;
using System.Linq; using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
@ -76,15 +76,15 @@ namespace Volo.Abp.FeatureManagement
Check.NotNull(providerName, nameof(providerName)); Check.NotNull(providerName, nameof(providerName));
var featureDefinitions = FeatureDefinitionManager.GetAll(); var featureDefinitions = FeatureDefinitionManager.GetAll();
var providers = Enumerable.Reverse(Providers) var providers = Enumerable.Reverse(Providers).SkipWhile(c => c.Name != providerName);
.SkipWhile(c => c.Name != providerName);
if (!fallback) if (!fallback)
{ {
providers = providers.TakeWhile(c => c.Name == providerName); providers = providers.TakeWhile(c => c.Name == providerName);
} }
if (!providers.Any()) var providersList = providers.ToList();
if (!providersList.Any())
{ {
return new List<FeatureNameValueWithGrantedProvider>(); return new List<FeatureNameValueWithGrantedProvider>();
} }
@ -94,7 +94,7 @@ namespace Volo.Abp.FeatureManagement
foreach (var feature in featureDefinitions) foreach (var feature in featureDefinitions)
{ {
var featureNameValueWithGrantedProvider = new FeatureNameValueWithGrantedProvider(feature.Name, null); var featureNameValueWithGrantedProvider = new FeatureNameValueWithGrantedProvider(feature.Name, null);
foreach (var provider in providers) foreach (var provider in providersList)
{ {
string pk = null; string pk = null;
if (provider.Compatible(providerName)) if (provider.Compatible(providerName))

52
modules/feature-management/test/Volo.Abp.FeatureManagement.Domain.Tests/Volo/Abp/FeatureManagement/FeatureManager_Tests.cs

@ -20,15 +20,7 @@ namespace Volo.Abp.FeatureManagement
_featureChecker = GetRequiredService<IFeatureChecker>(); _featureChecker = GetRequiredService<IFeatureChecker>();
_currentTenant = GetRequiredService<ICurrentTenant>(); _currentTenant = GetRequiredService<ICurrentTenant>();
} }
[Fact]
public async Task Should_Get_A_Correct_FeatureValue_By_GetAllWithProviderAsync()
{
(await _featureManager.GetAllWithProviderAsync(
EditionFeatureValueProvider.ProviderName,
TestEditionIds.Enterprise.ToString()
)).FirstOrDefault(x=>x.Name== TestFeatureDefinitionProvider.ProjectCount)
.Value.ShouldBe("3");
}
[Fact] [Fact]
public async Task Should_Get_A_FeatureValue_For_A_Provider() public async Task Should_Get_A_FeatureValue_For_A_Provider()
{ {
@ -120,5 +112,47 @@ namespace Volo.Abp.FeatureManagement
(await _featureChecker.IsEnabledAsync(TestFeatureDefinitionProvider.SocialLogins)).ShouldBeTrue(); (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);
}
} }
} }

2
modules/feature-management/test/Volo.Abp.FeatureManagement.TestBase/Volo/Abp/FeatureManagement/FeatureValueRepository_Tests.cs

@ -41,7 +41,7 @@ namespace Volo.Abp.FeatureManagement
} }
[Fact] [Fact]
public async Task FindAAllsync() public async Task FindAllAsync()
{ {
var featureValues = await Repository.FindAllAsync( var featureValues = await Repository.FindAllAsync(
TestFeatureDefinitionProvider.ProjectCount, TestFeatureDefinitionProvider.ProjectCount,

Loading…
Cancel
Save