public async Task Should_Get_Correct_Values() { var session = new MyChangableSession(); var settingManager = new SettingManager(CreateMockSettingDefinitionManager()); settingManager.SettingStore = new MemorySettingStore(); settingManager.AbpSession = session; session.TenantId = 1; //Inherited setting session.UserId = 1; (await settingManager.GetSettingValueAsync(MyAllLevelsSetting)).ShouldBe("user 1 stored value"); session.UserId = 2; (await settingManager.GetSettingValueAsync(MyAllLevelsSetting)).ShouldBe("user 2 stored value"); session.UserId = 3; (await settingManager.GetSettingValueAsync(MyAllLevelsSetting)).ShouldBe("tenant 1 stored value"); //Because no user value in the store session.TenantId = 3; session.UserId = 3; (await settingManager.GetSettingValueAsync(MyAllLevelsSetting)).ShouldBe("application level stored value"); //Because no user and tenant value in the store //Not inherited setting session.TenantId = 1; session.UserId = 1; (await settingManager.GetSettingValueForApplicationAsync(MyNotInheritedSetting)).ShouldBe("application value"); (await settingManager.GetSettingValueForTenantAsync(MyNotInheritedSetting, session.TenantId.Value)).ShouldBe("default-value"); (await settingManager.GetSettingValueAsync(MyNotInheritedSetting)).ShouldBe("default-value"); }
public async Task Should_Get_Default_Values_With_No_Store_And_No_Session() { var settingManager = new SettingManager(CreateMockSettingDefinitionManager()); (await settingManager.GetSettingValueAsync<int>(MyAppLevelSetting)).ShouldBe(42); (await settingManager.GetSettingValueAsync(MyAllLevelsSetting)).ShouldBe("application level default value"); }
public async Task Should_Get_Stored_Application_Value_With_No_Session() { var settingManager = new SettingManager(CreateMockSettingDefinitionManager()) { SettingStore = new MemorySettingStore() }; (await settingManager.GetSettingValueAsync<int>(MyAppLevelSetting)).ShouldBe(48); (await settingManager.GetSettingValueAsync(MyAllLevelsSetting)).ShouldBe("application level stored value"); }
public async Task Should_Change_Setting_Values() { var session = new MyChangableSession(); var settingManager = new SettingManager(CreateMockSettingDefinitionManager()) { SettingStore = new MemorySettingStore(), AbpSession = session }; //Application level changes await settingManager.ChangeSettingForApplicationAsync(MyAppLevelSetting, "53"); await settingManager.ChangeSettingForApplicationAsync(MyAppLevelSetting, "54"); await settingManager.ChangeSettingForApplicationAsync(MyAllLevelsSetting, "application level changed value"); (await settingManager.SettingStore.GetSettingOrNullAsync(null, null, MyAppLevelSetting)).Value.ShouldBe("54"); (await settingManager.GetSettingValueAsync<int>(MyAppLevelSetting)).ShouldBe(54); (await settingManager.GetSettingValueAsync(MyAllLevelsSetting)).ShouldBe("application level changed value"); //Tenant level changes session.TenantId = 1; await settingManager.ChangeSettingForTenantAsync(1, MyAllLevelsSetting, "tenant 1 changed value"); (await settingManager.GetSettingValueAsync(MyAllLevelsSetting)).ShouldBe("tenant 1 changed value"); //User level changes session.UserId = 1; await settingManager.ChangeSettingForUserAsync(1, MyAllLevelsSetting, "user 1 changed value"); (await settingManager.GetSettingValueAsync(MyAllLevelsSetting)).ShouldBe("user 1 changed value"); }
public async Task Should_Delete_Setting_Values_On_Default_Value() { var session = new MyChangableSession(); var store = new MemorySettingStore(); var settingManager = new SettingManager(CreateMockSettingDefinitionManager()) { SettingStore = store, AbpSession = session }; session.TenantId = 1; session.UserId = 1; //We can get user's personal stored value (await store.GetSettingOrNullAsync(null, 1, MyAllLevelsSetting)).ShouldNotBe(null); (await settingManager.GetSettingValueAsync(MyAllLevelsSetting)).ShouldBe("user 1 stored value"); //This will delete setting for the user since it's same as tenant's setting value await settingManager.ChangeSettingForUserAsync(1, MyAllLevelsSetting, "tenant 1 stored value"); (await store.GetSettingOrNullAsync(null, 1, MyAllLevelsSetting)).ShouldBe(null); //We can get tenant's setting value (await store.GetSettingOrNullAsync(1, null, MyAllLevelsSetting)).ShouldNotBe(null); (await settingManager.GetSettingValueAsync(MyAllLevelsSetting)).ShouldBe("tenant 1 stored value"); //This will delete setting for tenant since it's same as application's setting value await settingManager.ChangeSettingForTenantAsync(1, MyAllLevelsSetting, "application level stored value"); (await store.GetSettingOrNullAsync(null, 1, MyAllLevelsSetting)).ShouldBe(null); //We can get application's value (await store.GetSettingOrNullAsync(null, null, MyAllLevelsSetting)).ShouldNotBe(null); (await settingManager.GetSettingValueAsync(MyAllLevelsSetting)).ShouldBe("application level stored value"); //This will delete setting for application since it's same as the default value of the setting await settingManager.ChangeSettingForApplicationAsync(MyAllLevelsSetting, "application level default value"); (await store.GetSettingOrNullAsync(null, null, MyAllLevelsSetting)).ShouldBe(null); //Now, there is no setting value, default value should return (await settingManager.GetSettingValueAsync(MyAllLevelsSetting)).ShouldBe("application level default value"); }