Browse Source

Merge pull request #24512 from abpframework/fix-feature-checker

Use GetOrNullAsync for feature definition lookup
pull/24517/head
Ma Liming 1 month ago
committed by GitHub
parent
commit
c162867296
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 7
      framework/src/Volo.Abp.Features/Volo/Abp/Features/FeatureChecker.cs
  2. 7
      framework/src/Volo.Abp.Settings/Volo/Abp/Settings/SettingProvider.cs
  3. 13
      modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/SettingManager_Basic_Tests.cs

7
framework/src/Volo.Abp.Features/Volo/Abp/Features/FeatureChecker.cs

@ -28,7 +28,12 @@ public class FeatureChecker : FeatureCheckerBase
public override async Task<string?> GetOrNullAsync(string name) public override async Task<string?> GetOrNullAsync(string name)
{ {
var featureDefinition = await FeatureDefinitionManager.GetAsync(name); var featureDefinition = await FeatureDefinitionManager.GetOrNullAsync(name);
if (featureDefinition == null)
{
return null;
}
var providers = FeatureValueProviderManager.ValueProviders var providers = FeatureValueProviderManager.ValueProviders
.Reverse(); .Reverse();

7
framework/src/Volo.Abp.Settings/Volo/Abp/Settings/SettingProvider.cs

@ -23,7 +23,12 @@ public class SettingProvider : ISettingProvider, ITransientDependency
public virtual async Task<string?> GetOrNullAsync(string name) public virtual async Task<string?> GetOrNullAsync(string name)
{ {
var setting = await SettingDefinitionManager.GetAsync(name); var setting = await SettingDefinitionManager.GetOrNullAsync(name);
if (setting == null)
{
return null;
}
var providers = Enumerable var providers = Enumerable
.Reverse(SettingValueProviderManager.Providers); .Reverse(SettingValueProviderManager.Providers);

13
modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo/Abp/SettingManagement/SettingManager_Basic_Tests.cs

@ -18,11 +18,10 @@ public class SettingManager_Basic_Tests : SettingsTestBase
} }
[Fact] [Fact]
public async Task Should_Throw_Exception_When_Try_To_Get_An_Undefined_Setting() public async Task Should_Return_Null_When_Try_To_Get_An_Undefined_Setting()
{ {
await Assert.ThrowsAsync<AbpException>( var value = await _settingProvider.GetOrNullAsync("UndefinedSetting");
async () => await _settingProvider.GetOrNullAsync("UndefinedSetting") value.ShouldBeNull();
);
} }
[Fact] [Fact]
@ -64,7 +63,7 @@ public class SettingManager_Basic_Tests : SettingsTestBase
(await _settingManager.GetOrNullGlobalAsync("MySetting1")).ShouldBe("43"); (await _settingManager.GetOrNullGlobalAsync("MySetting1")).ShouldBe("43");
(await _settingProvider.GetOrNullAsync("MySetting1")).ShouldBe("43"); (await _settingProvider.GetOrNullAsync("MySetting1")).ShouldBe("43");
} }
[Fact] [Fact]
public async Task Set_Should_Throw_Exception_If_Provider_Not_Found() public async Task Set_Should_Throw_Exception_If_Provider_Not_Found()
{ {
@ -72,7 +71,7 @@ public class SettingManager_Basic_Tests : SettingsTestBase
{ {
await _settingManager.SetAsync("MySetting1", "43", "UndefinedProvider", "Test"); await _settingManager.SetAsync("MySetting1", "43", "UndefinedProvider", "Test");
}); });
exception.Message.ShouldBe("Unknown setting value provider: UndefinedProvider"); exception.Message.ShouldBe("Unknown setting value provider: UndefinedProvider");
} }
} }

Loading…
Cancel
Save