mirror of https://github.com/abpframework/abp.git
6 changed files with 172 additions and 1 deletions
@ -0,0 +1,49 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Text; |
||||
|
using System.Threading.Tasks; |
||||
|
using Shouldly; |
||||
|
using Volo.Abp.Settings; |
||||
|
using Xunit; |
||||
|
|
||||
|
namespace Volo.Abp.SettingManagement |
||||
|
{ |
||||
|
public class DefaultValueSettingManagementProvider_Tests : SettingsTestBase |
||||
|
{ |
||||
|
private readonly ISettingDefinitionManager _settingDefinitionManager; |
||||
|
|
||||
|
public DefaultValueSettingManagementProvider_Tests() |
||||
|
{ |
||||
|
_settingDefinitionManager = GetRequiredService<ISettingDefinitionManager>(); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public async Task GetOrNullAsync() |
||||
|
{ |
||||
|
var mySetting3 = _settingDefinitionManager.Get("MySetting3"); |
||||
|
|
||||
|
var defaultValueSettingManagementProvider = new DefaultValueSettingManagementProvider(); |
||||
|
(await defaultValueSettingManagementProvider |
||||
|
.GetOrNullAsync(mySetting3, DefaultValueSettingValueProvider.ProviderName)).ShouldBe("123"); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public async Task SetAsync() |
||||
|
{ |
||||
|
var mySetting3 = _settingDefinitionManager.Get("MySetting3"); |
||||
|
|
||||
|
await Assert.ThrowsAsync<AbpException>(async () => await new DefaultValueSettingManagementProvider().SetAsync(mySetting3, "123", |
||||
|
DefaultValueSettingValueProvider.ProviderName)); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public async Task ClearAsync() |
||||
|
{ |
||||
|
var mySetting3 = _settingDefinitionManager.Get("MySetting3"); |
||||
|
|
||||
|
await Assert.ThrowsAsync<AbpException>(async () => |
||||
|
await new DefaultValueSettingManagementProvider().ClearAsync(mySetting3, |
||||
|
DefaultValueSettingValueProvider.ProviderName)); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,53 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Text; |
||||
|
using System.Threading.Tasks; |
||||
|
using Castle.DynamicProxy.Generators; |
||||
|
using Shouldly; |
||||
|
using Volo.Abp.Caching; |
||||
|
using Volo.Abp.Settings; |
||||
|
using Xunit; |
||||
|
|
||||
|
namespace Volo.Abp.SettingManagement |
||||
|
{ |
||||
|
public class SettingCacheItemInvalidator_Tests : SettingsTestBase |
||||
|
{ |
||||
|
private readonly IDistributedCache<SettingCacheItem> _cache; |
||||
|
private readonly ISettingManagementStore _settingManagementStore; |
||||
|
private readonly ISettingRepository _settingRepository; |
||||
|
private readonly SettingTestData _testData; |
||||
|
|
||||
|
public SettingCacheItemInvalidator_Tests() |
||||
|
{ |
||||
|
_settingManagementStore = GetRequiredService<ISettingManagementStore>(); |
||||
|
_cache = GetRequiredService<IDistributedCache<SettingCacheItem>>(); |
||||
|
_settingRepository = GetRequiredService<ISettingRepository>(); |
||||
|
_testData = GetRequiredService<SettingTestData>(); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public async Task GetOrNullAsync_Should_Cached() |
||||
|
{ |
||||
|
// Act
|
||||
|
(await _cache.GetAsync(SettingCacheItem.CalculateCacheKey("MySetting2", "User", _testData.User1Id.ToString()))).ShouldBeNull(); |
||||
|
await _settingManagementStore.GetOrNullAsync("MySetting2", "User", _testData.User1Id.ToString()); |
||||
|
(await _cache.GetAsync(SettingCacheItem.CalculateCacheKey("MySetting2", "User", _testData.User1Id.ToString()))).ShouldNotBeNull(); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public async Task Cache_Should_Invalidator_WhenSettingChanged() |
||||
|
{ |
||||
|
// Arrange
|
||||
|
// GetOrNullAsync will cache language.
|
||||
|
await _settingManagementStore.GetOrNullAsync("MySetting2", "User", _testData.User1Id.ToString()); |
||||
|
|
||||
|
// Act
|
||||
|
var lang = await _settingRepository.FindAsync("MySetting2", "User", _testData.User1Id.ToString()); |
||||
|
await _settingRepository.DeleteAsync(lang); |
||||
|
|
||||
|
// Assert
|
||||
|
(await _cache.GetAsync( |
||||
|
SettingCacheItem.CalculateCacheKey("MySetting2", "User", _testData.User1Id.ToString()))).ShouldBeNull(); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,64 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Text; |
||||
|
using System.Threading.Tasks; |
||||
|
using Shouldly; |
||||
|
using Volo.Abp.Settings; |
||||
|
using Xunit; |
||||
|
|
||||
|
namespace Volo.Abp.SettingManagement |
||||
|
{ |
||||
|
public class SettingManagementStore_Tests : SettingsTestBase |
||||
|
{ |
||||
|
private readonly ISettingManagementStore _settingManagementStore; |
||||
|
private readonly ISettingRepository _settingRepository; |
||||
|
private readonly SettingTestData _testData; |
||||
|
|
||||
|
public SettingManagementStore_Tests() |
||||
|
{ |
||||
|
_settingManagementStore = GetRequiredService<ISettingManagementStore>(); |
||||
|
_settingRepository = GetRequiredService<ISettingRepository>(); |
||||
|
_testData = GetRequiredService<SettingTestData>(); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public async Task GetOrNull_NotExist_Should_Be_Null() |
||||
|
{ |
||||
|
var value = await _settingManagementStore.GetOrNullAsync("notExistName", "notExistProviderName", |
||||
|
"notExistProviderKey"); |
||||
|
|
||||
|
value.ShouldBeNull(); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public async Task GetOrNullAsync() |
||||
|
{ |
||||
|
var value = await _settingManagementStore.GetOrNullAsync("MySetting1", GlobalSettingValueProvider.ProviderName, null); |
||||
|
|
||||
|
value.ShouldNotBeNull(); |
||||
|
value.ShouldBe("42"); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public async Task SetAsync() |
||||
|
{ |
||||
|
var setting = await _settingRepository.FindAsync(_testData.SettingId); |
||||
|
setting.Value.ShouldBe("42"); |
||||
|
|
||||
|
await _settingManagementStore.SetAsync("MySetting1", "43", GlobalSettingValueProvider.ProviderName, null); |
||||
|
|
||||
|
(await _settingRepository.FindAsync(_testData.SettingId)).Value.ShouldBe("43"); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public async Task DeleteAsync() |
||||
|
{ |
||||
|
(await _settingRepository.FindAsync(_testData.SettingId)).ShouldNotBeNull(); |
||||
|
|
||||
|
await _settingManagementStore.DeleteAsync("MySetting1", GlobalSettingValueProvider.ProviderName, null); |
||||
|
|
||||
|
(await _settingRepository.FindAsync(_testData.SettingId)).ShouldBeNull(); |
||||
|
} |
||||
|
|
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue