Browse Source

Added tests.

pull/204/head
Halil İbrahim Kalkan 9 years ago
parent
commit
6ccdd1a456
  1. 15
      src/Volo.Abp.Session/Volo/Abp/Settings/UserSettingManagerExtensions.cs
  2. 2
      src/Volo.Abp.Settings/Volo/Abp/Settings/ISettingContributor.cs
  3. 4
      src/Volo.Abp.Settings/Volo/Abp/Settings/ISettingManager.cs
  4. 12
      src/Volo.Abp.Settings/Volo/Abp/Settings/SettingManager.cs
  5. 39
      test/Volo.Abp.Settings.Tests/Volo/Abp/Settings/SettingManager_User_Based_Tests.cs

15
src/Volo.Abp.Session/Volo/Abp/Settings/UserSettingManagerExtensions.cs

@ -13,14 +13,29 @@ namespace Volo.Abp.Settings
return settingManager.GetOrNullAsync(name, UserSettingContributor.DefaultEntityType, userId.ToString(), fallback);
}
public static Task<string> GetOrNullForCurrentUserAsync(this ISettingManager settingManager, [NotNull] string name, bool fallback = true)
{
return settingManager.GetOrNullAsync(name, UserSettingContributor.DefaultEntityType, null, fallback);
}
public static Task<List<SettingValue>> GetAllForUserAsync(this ISettingManager settingManager, Guid userId, bool fallback = true)
{
return settingManager.GetAllAsync(UserSettingContributor.DefaultEntityType, userId.ToString(), fallback);
}
public static Task<List<SettingValue>> GetAllForCurrentUserAsync(this ISettingManager settingManager, bool fallback = true)
{
return settingManager.GetAllAsync(UserSettingContributor.DefaultEntityType, null, fallback);
}
public static Task SetForUserAsync(this ISettingManager settingManager, Guid userId, [NotNull] string name, [CanBeNull] string value)
{
return settingManager.SetAsync(name, value, UserSettingContributor.DefaultEntityType, userId.ToString());
}
public static Task SetForCurrentUserAsync(this ISettingManager settingManager, [NotNull] string name, [CanBeNull] string value)
{
return settingManager.SetAsync(name, value, UserSettingContributor.DefaultEntityType, null);
}
}
}

2
src/Volo.Abp.Settings/Volo/Abp/Settings/ISettingContributor.cs

@ -7,6 +7,6 @@ namespace Volo.Abp.Settings
{
string EntityType { get; }
Task<string> GetOrNullAsync(SettingDefinition setting, [CanBeNull] string entityId);
Task<string> GetOrNullAsync([NotNull] SettingDefinition setting, [CanBeNull] string entityId);
}
}

4
src/Volo.Abp.Settings/Volo/Abp/Settings/ISettingManager.cs

@ -14,8 +14,8 @@ namespace Volo.Abp.Settings
Task<List<SettingValue>> GetAllAsync([NotNull] string entityType, [CanBeNull] string entityId, bool fallback = true);
Task SetAsync([NotNull] string name, string value, bool forceToSet = false);
Task SetAsync([NotNull] string name, [CanBeNull] string value, bool forceToSet = false);
Task SetAsync([NotNull] string name, string value, [NotNull] string entityType, [CanBeNull] string entityId, bool forceToSet = false);
Task SetAsync([NotNull] string name, [CanBeNull] string value, [NotNull] string entityType, [CanBeNull] string entityId, bool forceToSet = false);
}
}

12
src/Volo.Abp.Settings/Volo/Abp/Settings/SettingManager.cs

@ -37,12 +37,11 @@ namespace Volo.Abp.Settings
);
}
public async Task<string> GetOrNullAsync(string name)
public virtual async Task<string> GetOrNullAsync(string name)
{
Check.NotNull(name, nameof(name));
var setting = SettingDefinitionManager.Get(name);
var contributors = Enumerable.Reverse(Contributors.Value);
foreach (var contributor in contributors)
@ -63,7 +62,6 @@ namespace Volo.Abp.Settings
Check.NotNull(entityType, nameof(entityType));
var setting = SettingDefinitionManager.Get(name);
var contributors = Enumerable
.Reverse(Contributors.Value)
.SkipWhile(c => c.EntityType != entityType);
@ -85,22 +83,22 @@ namespace Volo.Abp.Settings
return null;
}
public Task<List<SettingValue>> GetAllAsync()
public virtual Task<List<SettingValue>> GetAllAsync()
{
throw new System.NotImplementedException();
}
public Task<List<SettingValue>> GetAllAsync(string entityType, string entityId, bool fallback = true)
public virtual Task<List<SettingValue>> GetAllAsync(string entityType, string entityId, bool fallback = true)
{
throw new System.NotImplementedException();
}
public Task SetAsync(string name, string value, bool forceToSet = false)
public virtual Task SetAsync(string name, string value, bool forceToSet = false)
{
throw new System.NotImplementedException();
}
public Task SetAsync(string name, string value, string entityType, string entityId, bool forceToSet = false)
public virtual Task SetAsync(string name, string value, string entityType, string entityId, bool forceToSet = false)
{
throw new System.NotImplementedException();
}

39
test/Volo.Abp.Settings.Tests/Volo/Abp/Settings/SettingManager_User_Based_Tests.cs

@ -32,6 +32,18 @@ namespace Volo.Abp.Settings
(await _settingManager.GetOrNullForUserAsync("MySetting2", AbpIdentityTestDataBuilder.User2Id)).ShouldBe("user2-store-value");
}
[Fact]
public async Task Should_Fallback_To_Default_Store_Value_When_No_Value_For_Given_User()
{
(await _settingManager.GetOrNullForUserAsync("MySetting2", Guid.NewGuid())).ShouldBe("default-store-value");
}
[Fact]
public async Task Should_Not_Fallback_To_Default_Store_Value_When_No_Value_For_Given_User_But_Specified_Fallback_As_False()
{
(await _settingManager.GetOrNullForUserAsync("MySetting2", Guid.NewGuid(), fallback: false)).ShouldBeNull();
}
[Fact]
public async Task Should_Get_From_Store_For_Current_User()
{
@ -43,15 +55,34 @@ namespace Volo.Abp.Settings
}
[Fact]
public async Task Should_Fallback_To_Default_Store_Value_When_No_Value_For_Given_User()
public async Task Should_Fallback_To_Default_Store_Value_When_No_Value_For_Current_User()
{
(await _settingManager.GetOrNullForUserAsync("MySetting2", Guid.NewGuid())).ShouldBe("default-store-value");
_currentUserId = Guid.NewGuid();
(await _settingManager.GetOrNullAsync("MySetting2")).ShouldBe("default-store-value");
}
[Fact]
public async Task Should_Not_Fallback_To_Default_Store_Value_When_No_Value_For_Given_User_But_Specified_Fallback_As_False()
public async Task Should_Get_From_Store_For_Current_User_With_GetOrNullForCurrentUserAsync()
{
(await _settingManager.GetOrNullForUserAsync("MySetting2", Guid.NewGuid(), fallback: false)).ShouldBeNull();
_currentUserId = AbpIdentityTestDataBuilder.User1Id;
(await _settingManager.GetOrNullForCurrentUserAsync("MySetting2")).ShouldBe("user1-store-value");
_currentUserId = AbpIdentityTestDataBuilder.User2Id;
(await _settingManager.GetOrNullForCurrentUserAsync("MySetting2")).ShouldBe("user2-store-value");
}
[Fact]
public async Task Should_Fallback_To_Default_Store_Value_When_No_Value_For_Current_User_With_GetOrNullForCurrentUserAsync()
{
_currentUserId = Guid.NewGuid();
(await _settingManager.GetOrNullAsync("MySetting2")).ShouldBe("default-store-value");
}
[Fact]
public async Task Should_Not_Fallback_To_Default_Store_Value_When_No_Value_For_Current_User_But_Specified_Fallback_As_False()
{
_currentUserId = Guid.NewGuid();
(await _settingManager.GetOrNullForCurrentUserAsync("MySetting2", fallback: false)).ShouldBeNull();
}
}
}
Loading…
Cancel
Save