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"); }