Merge pull request #977 from abpframework/maliming/setting-management

Add SettingManagerment unit tests.
pull/988/head
Halil İbrahim Kalkan 7 years ago committed by GitHub
commit 6671eee1b1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -7,5 +7,7 @@ namespace Volo.Abp.SettingManagement
{
public Guid User1Id { get; } = Guid.NewGuid();
public Guid User2Id { get; } = Guid.NewGuid();
public Guid SettingId { get; } = Guid.NewGuid();
}
}

@ -24,7 +24,7 @@ namespace Volo.Abp.SettingManagement
{
_settingRepository.Insert(
new Setting(
_guidGenerator.Create(),
_testData.SettingId,
"MySetting1",
"42",
GlobalSettingValueProvider.ProviderName

@ -8,8 +8,11 @@ namespace Volo.Abp.SettingManagement
{
context.Add(new SettingDefinition("MySetting1"));
context.Add(new SettingDefinition("MySetting2"));
context.Add(new SettingDefinition("MySetting3", "123"));
context.Add(new SettingDefinition("MySettingWithoutInherit", isInherited: false));
context.Add(new SettingDefinition("SettingNotSetInStore", defaultValue: "default-value"));
}
}
}

@ -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…
Cancel
Save