You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
abp/framework/test/Volo.Abp.Features.Tests/Volo/Abp/Features/TestFeatureStore.cs

57 lines
2.0 KiB

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Volo.Abp.DependencyInjection;
namespace Volo.Abp.Features
{
public class TestFeatureStore : IFeatureStore, ISingletonDependency
{
public const string Tenant1IdValue = "f460fcf7-f944-469a-967b-3b2463323dfe";
public const string Tenant2IdValue = "e10428ad-4608-4c34-a304-6f82502156f2";
public static Guid Tenant1Id = new Guid(Tenant1IdValue);
public static Guid Tenant2Id = new Guid(Tenant2IdValue);
private readonly List<SettingRecord> _settingRecords;
public TestFeatureStore()
{
_settingRecords = new List<SettingRecord>
{
new SettingRecord("BooleanTestFeature1", TenantFeatureValueProvider.ProviderName, Tenant1Id.ToString(), "true"),
new SettingRecord("BooleanTestFeature2", TenantFeatureValueProvider.ProviderName, Tenant1Id.ToString(), "true"),
new SettingRecord("IntegerTestFeature1", TenantFeatureValueProvider.ProviderName, Tenant2Id.ToString(), "34")
};
}
public Task<string> GetOrNullAsync(string name, string providerName, string providerKey)
{
return Task.FromResult(
_settingRecords.FirstOrDefault(sr =>
sr.Name == name &&
sr.ProviderName == providerName &&
sr.ProviderKey == providerKey
)?.Value
);
}
private class SettingRecord
{
public string Name { get; }
public string ProviderName { get; }
public string ProviderKey { get; }
public string Value { get; }
public SettingRecord(string name, string providerName, string providerKey, string value)
{
Name = name;
ProviderName = providerName;
ProviderKey = providerKey;
Value = value;
}
}
}
}