public void InitializeSettingCacheProvider()
        {
            RetrieveAllSettingCacheProvider provider = new RetrieveAllSettingCacheProvider(new RetrieveAllManagerArguments());

            provider.InitializeSettingCacheProvider();
            Assert.IsFalse(provider.IsInitalized);
        }
        public void ManagerArguments()
        {
            RetrieveAllSettingCacheProvider provider = new RetrieveAllSettingCacheProvider(new RetrieveAllManagerArguments());

            Assert.IsNotNull(provider.ManagerArguments);
            Assert.IsTrue(provider.ManagerArguments.GetType() == typeof(RetrieveAllManagerArguments));
        }
        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 SettingWatchTaskAction_NoResults()
        {
            DummyRetrieveAllSettingDao      dao      = new DummyRetrieveAllSettingDao();
            RetrieveAllSettingCacheProvider provider = new RetrieveAllSettingCacheProvider(new RetrieveAllManagerArguments()
            {
                RetrieveAllSettingDao = dao, CacheRefreshTimeout = () => TimeSpan.FromMilliseconds(0)
            });

            provider.InitalizeSettingWatchTask();

            SpinWait.SpinUntil(() => dao.GetChangedDbAppSettingsHitCount > 0);

            Assert.IsTrue(dao.GetChangedDbAppSettingsHitCount > 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);
        }