示例#1
0
        public static async Task TestGetOrDefaultForValueType(IKeyValueStorage storage)
        {
            var key = "testValue1_c34a33";
            await storage.Set(key, null);

            var num = await storage.GetOrDefault <int>(key);

            Assert.AreEqual(num, default(int));
        }
示例#2
0
        public static async Task DefaultCall(IKeyValueStorage storage)
        {
            var key = "D99h323";
            await storage.Set(key, 100);

            var val = await storage.Get <int>(key);

            Assert.AreEqual(val, 100);
        }
示例#3
0
        /// <summary>
        /// Must throw exception.
        /// </summary>
        /// <param name="storage"></param>
        public static async Task TestGetNull(IKeyValueStorage storage)
        {
            var key = "value_TestGetNull";
            await storage.Set(key, null);

            var value = await storage.Get <string>(key);

            Assert.IsNull(value);
        }
示例#4
0
        public static void TaskWaitDefaultCall(IKeyValueStorage storage)
        {
            var key = "D991231h323";

            storage.Set(key, 100).Wait();
            var val = storage.Get <int>(key).Result;

            Assert.AreEqual(val, 100);
        }
示例#5
0
        public static async Task ContainsTest(IKeyValueStorage storage)
        {
            var key = "value_ContainsTest";
            await storage.Set(key, "asda");

            var isContains = await storage.ContainsKey(key);

            Assert.IsTrue(isContains);
            await storage.Set(key, null);

            isContains = await storage.ContainsKey(key);

            Assert.IsTrue(isContains);
            await storage.Remove(key);

            isContains = await storage.ContainsKey(key);

            Assert.IsFalse(isContains);
        }
示例#6
0
        public static async Task ReadTest(IKeyValueStorage storage)
        {
            await storage.Clear();

            var rd = new Random();

            for (int i = 0; i < 50; i++)
            {
                await storage.Set("somekey" + i, "qwwwwwwww");
            }

            await storage.Set("mykey", "val");

            for (int i = 0; i < 500; i++)
            {
                var val = await storage.Get <string>("mykey");

                Assert.AreEqual("val", val);
            }
            await storage.Clear();
        }
示例#7
0
        public static async Task SynchronizationTest(IKeyValueStorage storage)
        {
            await storage.Clear();

            var rd = new Random();

            for (int i = 0; i < 50; i++)
            {
                for (int j = 0; j < 10; j++)
                {
                    await storage.Set("key" + rd.Next(10000, 99999).ToString(), "qwwwwwwww");
                }


                string key     = "key" + i.ToString();
                string prevKey = "key" + (i - 1).ToString();

                //await storage.Clear();
                await storage.Set(prevKey, null);

                var prevVal = await storage.GetOrDefault <string>(prevKey);

                if (prevVal != null)
                {
                    Assert.Fail($"Not null value after cleaning. Iteration {i}.");
                }

                await storage.Set(key, "val");

                var val = await storage.Get <string>(key);

                Assert.AreEqual(val, "val");
                var isContains = await storage.ContainsKey(key);

                Assert.IsTrue(isContains);
            }

            await storage.Clear();
        }
示例#8
0
        private void btnStartGeneration_Click(object sender, EventArgs e)
        {
            int start = int.Parse(nudStartKey.Value.ToString(CultureInfo.InvariantCulture));
            int count = int.Parse(nudKeyCount.Value.ToString(CultureInfo.InvariantCulture));

            TimeMeasure.Start();
            try
            {
                for (int i = start; i < start + count; i++)
                {
                    if (_storageClosing)
                    {
                        break;
                    }
                    _storage.Set(i, RandomString(_random.Next(500)));

                    if (i % 1000 == 0)
                    {
                        lblState.Text = $"Inserting value {i}...";
                        Application.DoEvents();
                    }
                }

                if (!_storageClosing)
                {
                    lblState.Text = "Flushing...";
                    Application.DoEvents();
                    _storage.Flush();
                }
            }
            finally
            {
                TimeMeasure.Stop();
            }

            lblState.Text = $"Done! Elapsed time: {TimeMeasure.Result()}";
            TimeMeasure.Reset();
        }
        async Task <UploadLogRecord> AddLogRecord(string fileName)
        {
            var urlFileName = HttpUtility.UrlEncode(fileName);
            var record      = new UploadLogRecord()
            {
                UploadedAt  = DateTime.UtcNow,
                FileName    = fileName,
                DownloadUrl = $"{ AppSettings.EXTERNAL_URL}/{AppSettings.ApiPath}/files/download/{urlFileName}"
            };
            var list = await GetLogRecordsList();

            list.Add(record);
            await _storage.Set(UploadsLogCacheKey, list);

            return(record);
        }
示例#10
0
        public static async Task ComplexObjectTest(IKeyValueStorage storage)
        {
            var dictLikeComplexObj = new Dictionary <string, object>()
            {
                { "Val1", "10" },
                { "Val2", "aerertavt" },
                {
                    "Val3",
                    new Dictionary <string, object>()
                    {
                        { "Val1", 11 },
                        { "Val2", "fhg hgh fhxghhg" },
                    }
                }
            };
            await storage.Set("complex", dictLikeComplexObj);

            var obj = await storage.Get <ComplexType>("complex");

            Assert.AreEqual(obj.Val1, 10);
            Assert.AreEqual(obj.Val3.Val1, 11);
        }
示例#11
0
        public static async Task TestScopes(IKeyValueStorage storage)
        {
            await storage.Set("ComplexType.Val1", 100);

            await storage.Set("ComplexType.Val2", "First scope string");

            await storage.Set("ComplexType.Val3.Val1", 200);

            await storage.Set("ComplexType.Val3.Val2", "Second scope string");

            await storage.Set("ComplexType.Val3.Val3.Val1", 300);

            await storage.Set("ComplexType.Val3.Val3.Val2", "Third scope string");

            var num = await storage.Get <int>("ComplexType.Val1");

            Assert.AreEqual(num, 100);
            num = await storage.Get <int>("ComplexType.Val3.Val1");

            Assert.AreEqual(num, 200);

            var str = await storage.Get <string>("ComplexType.Val3.Val2");

            Assert.AreEqual(str, "Second scope string");

            var complexType = await storage.Get <ComplexType>("ComplexType");

            Assert.AreEqual(complexType.Val3.Val3.Val1, 300);
            complexType = await storage.Get <ComplexType>("ComplexType.Val3");

            Assert.AreEqual(complexType.Val3.Val1, 300);

            await storage.Remove("ComplexType.Val3.Val3.Val1");

            var isContains = await storage.ContainsKey("ComplexType.Val3.Val3.Val1");

            Assert.IsFalse(isContains);
            isContains = await storage.ContainsKey("ComplexType.Val3.Val3");

            Assert.IsTrue(isContains);

            await storage.Remove("ComplexType.Val3.Val3.Val2");

            isContains = await storage.ContainsKey("ComplexType.Val3.Val3");

            Assert.IsFalse(isContains);
            isContains = await storage.ContainsKey("ComplexType");

            Assert.IsTrue(isContains);

            await storage.Set("ComplexType", 999);

            num = await storage.Get <int>("ComplexType");

            Assert.AreEqual(num, 999);
            isContains = await storage.ContainsKey("ComplexType.Val3.Val3");

            Assert.IsFalse(isContains);
            isContains = (await storage.ContainsKey("ComplexType.Val1"));
            Assert.IsFalse(isContains);
            isContains = (await storage.ContainsKey("ComplexType.Val2"));
            Assert.IsFalse(isContains);
            isContains = (await storage.ContainsKey("ComplexType.Val3"));
            Assert.IsFalse(isContains);
            isContains = (await storage.ContainsKey("ComplexType.Val3.Val1"));
            Assert.IsFalse(isContains);
            isContains = (await storage.ContainsKey("ComplexType.Val3.Val3"));
            Assert.IsFalse(isContains);
            isContains = (await storage.ContainsKey("ComplexType.Val3.Val3.Val1"));
            Assert.IsFalse(isContains);
        }