public void GetDbAppSetting_NotInitialized()
        {
            Assert.Throws(typeof(Exception), () =>
            {
                DummyReturnOneRetrieveAllSettingDao dao  = new DummyReturnOneRetrieveAllSettingDao();
                RetrieveAllSettingCacheProvider provider = new RetrieveAllSettingCacheProvider(new RetrieveAllManagerArguments()
                {
                    RetrieveAllSettingDao = dao, CacheRefreshTimeout = () => TimeSpan.FromMilliseconds(0)
                });

                provider.GetDbAppSetting <DbAppSettingTestSetting, int>();
            });
        }
        public void SettingWatchTaskAction_Results()
        {
            DummyReturnOneRetrieveAllSettingDao dao      = new DummyReturnOneRetrieveAllSettingDao();
            RetrieveAllSettingCacheProvider     provider = new RetrieveAllSettingCacheProvider(new RetrieveAllManagerArguments()
            {
                RetrieveAllSettingDao = dao, CacheRefreshTimeout = () => TimeSpan.FromMilliseconds(0)
            });

            provider.InitalizeSettingWatchTask();

            SpinWait.SpinUntil(() => SettingCacheProviderBase.SettingDtosByKey.Count > 0);

            Assert.IsTrue(SettingCacheProviderBase.SettingDtosByKey.Count == 1);
        }
        public void GetDbAppSettingInitialized()
        {
            DummyReturnOneRetrieveAllSettingDao dao      = new DummyReturnOneRetrieveAllSettingDao();
            RetrieveAllSettingCacheProvider     provider = new RetrieveAllSettingCacheProvider(new RetrieveAllManagerArguments()
            {
                RetrieveAllSettingDao = dao, CacheRefreshTimeout = () => TimeSpan.FromMilliseconds(0)
            });

            SettingCacheProviderBase.Initalized = true;

            DbAppSettingDto dto = new DbAppSettingTestSetting().ToDto();

            dto.Value = "100";

            SettingCacheProviderBase.SettingDtosByKey.AddOrUpdate(dto.Key, dto, (key, oldValue) => dto);

            Assert.IsTrue(SettingCacheProviderBase.SettingDtosByKey.Count > 0);
            DbAppSetting <DbAppSettingTestSetting, int> result = provider.GetDbAppSetting <DbAppSettingTestSetting, int>();

            Assert.IsTrue(result.InternalValue == 100);
        }