예제 #1
0
        public async Task ClearClearsTheCacheButNotFailedItems()
        {
            var cache = new CacheWithFail <string, Data>();

            cache.Add("Foo", new Data {
                String = "Foo", Int = 1
            });

            await cache.GetOrAddAsync("Bar", async s => await Task.Run(() => (Data)null));

            cache.Clear();

            Data data;

            cache.TryGetValue("Foo", out data).Should().Be(CacheState.NotFound);

            var called = false;
            await cache.GetOrAddAsync("Bar", async s => await Task.Run(() =>
            {
                called = true;
                return((Data)null);
            }));

            called.Should().BeFalse();
        }
예제 #2
0
        public async Task ClearClearsTheCache()
        {
            var cache = new CacheWithFail <string, Data>();

            cache.Add("Foo", new Data {
                String = "Foo", Int = 1
            });

            await cache.GetOrAddAsync("Bar", async s => await Task.Run(() => (Data)null));

            cache.Clear();

            Data data;

            cache.TryGetValue("Foo", out data).Should().Be(CacheState.NotFound);
        }
예제 #3
0
        public void LoadCacheFromJson(string json)
        {
            if (json.IsNullOrEmpty())
            {
                return;
            }

            try
            {
                var caches = JsonConvert.DeserializeObject <Dictionary <string, string> >(json);

                string output;
                if (caches.TryGetValue("_seriesCache", out output))
                {
                    _seriesCache.LoadCacheFromJson(output);
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine("Failed to deserialize caches: " + ex.Message);

                _seriesCache.Clear();
            }
        }
예제 #4
0
        public async Task ClearClearsTheCacheButNotFailedItems()
        {
            var cache = new CacheWithFail<string, Data>();
            cache.Add("Foo", new Data { String = "Foo", Int = 1 });

            await cache.GetOrAddAsync("Bar", async s => await Task.Run(() => (Data)null));

            cache.Clear();

            Data data;
            cache.TryGetValue("Foo", out data).Should().Be(CacheState.NotFound);

            var called = false;
            await cache.GetOrAddAsync("Bar", async s => await Task.Run(() =>
            {
                called = true;
                return (Data)null;
            }));

            called.Should().BeFalse();
        }
예제 #5
0
        public async Task ClearClearsTheCache()
        {
            var cache = new CacheWithFail<string, Data>();
            cache.Add("Foo", new Data { String = "Foo", Int = 1 });

            await cache.GetOrAddAsync("Bar", async s => await Task.Run(() => (Data)null));

            cache.Clear();

            Data data;
            cache.TryGetValue("Foo", out data).Should().Be(CacheState.NotFound);
        }