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