Пример #1
0
        public void TryGetValue_ReturnsDefaultIfNotExists()
        {
            var cache = new NanoCache <string, int>();

            cache.TryGetValue("item", out var value);
            Assert.AreEqual(0, value);
        }
Пример #2
0
        public void Set_StoresANewValueIntoTheCache()
        {
            var cache = new NanoCache <string, int>();

            cache.Set("item", 999);
            Assert.AreEqual(cache["item"], 999);
        }
Пример #3
0
        public void Ctor_UsesDefaultEqualityComparer()
        {
            var cache = new NanoCache <string, int> {
                ["a"] = 999
            };

            Assert.AreEqual(cache["A"], 0);
        }
Пример #4
0
        public void TryGetValue_ReturnsTrueIfItemDoesExist()
        {
            var cache = new NanoCache <string, int> {
                ["item"] = 1234
            };

            Assert.IsTrue(cache.TryGetValue("item", out _));
        }
Пример #5
0
        public void Count_IsIncrementedWhenItemIsAdded()
        {
            var cache = new NanoCache <string, int> {
                ["1"] = 1
            };

            Assert.AreEqual(1, cache.Count);
        }
Пример #6
0
        public void Indexer_StoresANewValueIntoTheCache()
        {
            var cache = new NanoCache <string, int> {
                ["item"] = 999
            };

            Assert.AreEqual(cache["item"], 999);
        }
Пример #7
0
        public void Indexer_DoesNotAcknowledgeExpiredItems()
        {
            var cache = new NanoCache <string, int>();

            cache.Set("item", 1234, 10);
            Thread.Sleep(100);

            Assert.AreEqual(0, cache["item"]);
        }
Пример #8
0
        public void TryGetValue_ReturnsItemIfExists()
        {
            var cache = new NanoCache <string, int> {
                ["item"] = 1234
            };

            cache.TryGetValue("item", out var value);
            Assert.AreEqual(1234, value);
        }
Пример #9
0
        public void Ctor_TakesEqualityComparer_IntoConsideration()
        {
            var cache = new NanoCache <string, int>(StringComparer.OrdinalIgnoreCase)
            {
                ["a"] = 999
            };

            Assert.AreEqual(cache["A"], 999);
        }
Пример #10
0
        public void TryGetValue_ReturnsFalseIfItemExpired()
        {
            var cache = new NanoCache <string, int>();

            cache.Set("item", 1234, 10);
            Thread.Sleep(100);

            Assert.IsFalse(cache.TryGetValue("item", out _));
        }
Пример #11
0
        public void Remove_ReturnsTrueIfItemRemoved()
        {
            var cache = new NanoCache <string, int>
            {
                ["item"] = 999
            };

            Assert.IsTrue(cache.Remove("item"));
        }
Пример #12
0
        public void Remove_DoesNotAcknowledgeExpiredItems()
        {
            var cache = new NanoCache <string, int>();

            cache.Set("item", 1234, 10);
            Thread.Sleep(100);

            Assert.IsFalse(cache.Remove("item"));
        }
Пример #13
0
        public void Count_IsDecrementedWhenItemIsRemoved()
        {
            var cache = new NanoCache <string, int>
            {
                ["1"] = 1
            };

            cache.Remove("1");
            Assert.AreEqual(0, cache.Count);
        }
Пример #14
0
        public void Indexer_RemovesTheValueFromTheCacheIfDefaultProvided()
        {
            var cache = new NanoCache <string, int>
            {
                ["item"] = 999,
                ["item"] = 0
            };

            Assert.IsFalse(cache.Remove("item"));
        }
Пример #15
0
        public void Indexer_ReplacesAnExistingValueInTheCache()
        {
            var cache = new NanoCache <string, int>
            {
                ["item"] = 999,
                ["item"] = 111
            };

            Assert.AreEqual(cache["item"], 111);
        }
Пример #16
0
        public void Set_RefreshesValueOfExpiredItem()
        {
            var cache = new NanoCache <string, int>();

            cache.Set("item", 1234, 10);
            Thread.Sleep(100);
            cache.Set("item", 9876, 10);

            Assert.AreEqual(9876, cache["item"]);
        }
Пример #17
0
        public void Remove_RemovesAnExistingItemFromTheCache()
        {
            var cache = new NanoCache <string, int>
            {
                ["item"] = 999
            };

            cache.Remove("item");
            Assert.AreEqual(cache["item"], 0);
        }
Пример #18
0
        public void Count_IncludesExpiredItems()
        {
            var cache = new NanoCache <string, int>();

            cache.Set("1", 1, 10);

            Thread.Sleep(100);

            Assert.AreEqual(1, cache.Count);
        }
Пример #19
0
        public void Count_IsUpdatedWhenExpiredItemIsFlushed2()
        {
            var cache = new NanoCache <string, int>();

            cache.Set("1", 1, 10);
            Thread.Sleep(100);

            Assert.AreEqual(0, cache["1"]);
            Assert.AreEqual(0, cache.Count);
        }
Пример #20
0
        public void Count_IsNotIncrementedWhenItemIsUpdated()
        {
            var cache = new NanoCache <string, int>
            {
                ["1"] = 1,
                ["1"] = 2
            };

            Assert.AreEqual(1, cache.Count);
        }
Пример #21
0
        public void Count_IsDecrementedWhenItemIsReplacedWithDefaultValue()
        {
            var cache = new NanoCache <string, int>
            {
                ["1"] = 1,
                ["1"] = 0
            };

            Assert.AreEqual(0, cache.Count);
        }
Пример #22
0
        public void Set_ReplacesAnExistingValueInTheCache()
        {
            var cache = new NanoCache <string, int>
            {
                ["item"] = 999
            };

            cache.Set("item", 111);

            Assert.AreEqual(cache["item"], 111);
        }
Пример #23
0
        public void Flush_DoesNothingForUnExpiredItems()
        {
            var cache = new NanoCache <string, int>
            {
                ["1"] = 1
            };

            cache.Flush();

            Assert.AreEqual(1, cache.Count);
        }
Пример #24
0
        public void Flush_RemovesTheExpiredItems()
        {
            var cache = new NanoCache <string, int>();

            cache.Set("1", 1, 10);
            Thread.Sleep(100);

            cache.Flush();

            Assert.AreEqual(0, cache.Count);
        }
Пример #25
0
        public void Set_RemovesTheValueFromTheCacheIfDefaultProvided()
        {
            var cache = new NanoCache <string, int>
            {
                ["item"] = 999
            };

            cache.Set("item", 0);

            Assert.IsFalse(cache.Remove("item"));
        }
Пример #26
0
        public void Flush_RemovesTheExpiredItemsWhileLeavingTheNormalOnes()
        {
            var cache = new NanoCache <string, int>();

            cache.Set("1", 1, 10);

            Thread.Sleep(100);

            cache["2"] = 2;
            cache.Flush();

            Assert.AreEqual(1, cache.Count);
        }
Пример #27
0
        public void TryGetValue_ThrowsException_IfKeyIsNull()
        {
            var cache = new NanoCache <string, int>();

            Assert.Throws <ArgumentNullException>(() => cache.TryGetValue(null, out _));
        }
Пример #28
0
        public void TryGetValue_ReturnsFalseIfItemDoesNotExist()
        {
            var cache = new NanoCache <string, int>();

            Assert.IsFalse(cache.TryGetValue("item", out _));
        }
Пример #29
0
        public void Set_ThrowsException_ForNullKey()
        {
            var cache = new NanoCache <string, int>();

            Assert.Throws <ArgumentNullException>(() => cache.Set(null, 100));
        }
Пример #30
0
        public void Set_ThrowsException_ForTtlLessThanMinusOne()
        {
            var cache = new NanoCache <string, int>();

            Assert.Throws <ArgumentOutOfRangeException>(() => cache.Set("a", 1, -2));
        }