コード例 #1
0
        public async Task Redis_Should_AddUpdateAndGetSimpleItem()
        {
            var ds = GetValidStream();

            var record = new DataStreamRecord()
            {
                DeviceId  = DEVICE_ID,
                StreamId  = ds.Id,
                StreamKey = ds.Key
            };

            var originalTimeStamp = DateTime.UtcNow.ToJSONString();

            record.Timestamp = originalTimeStamp;
            record.Data.Add("int1", 100);
            record.Data.Add("dec1", 100.12);
            record.Data.Add("str1", "hello world");

            Assert.IsTrue((await _redisConnector.AddItemAsync(record)).Successful);

            var result = await _redisConnector.GetItemsAsync(DEVICE_ID, new Core.Models.UIMetaData.ListRequest());

            Assert.IsTrue(result.Successful);
            Assert.AreEqual(1, result.Model.Count());

            Assert.AreEqual(originalTimeStamp, result.Model.First().Timestamp);
            Assert.AreEqual(Convert.ToInt32(100), Convert.ToInt32(result.Model.First()["int1"]));
            Assert.AreEqual(Math.Round(100.12, 2), Math.Round(Convert.ToDouble(result.Model.First()["dec1"]), 2));
            Assert.AreEqual("hello world", result.Model.First()["str1"]);

            var newRecord = new DataStreamRecord()
            {
                DeviceId  = DEVICE_ID,
                StreamId  = ds.Id,
                StreamKey = ds.Key
            };

            var newTimeStamp = DateTime.UtcNow.ToJSONString();

            newRecord.Timestamp = newTimeStamp;
            newRecord.Data.Add("int1", 105);
            newRecord.Data.Add("dec1", 105.12);
            newRecord.Data.Add("str1", "goodby world");

            Assert.IsTrue((await _redisConnector.UpdateItem(newRecord.Data, new Dictionary <string, object>()
            {
                { "deviceId", DEVICE_ID }
            })).Successful);

            var updatedResult = await _redisConnector.GetItemsAsync(DEVICE_ID, new Core.Models.UIMetaData.ListRequest());

            Assert.IsTrue(updatedResult.Successful);
            Assert.AreEqual(1, updatedResult.Model.Count());

            Assert.AreEqual(Convert.ToInt32(105), Convert.ToInt32(updatedResult.Model.First()["int1"]));
            Assert.AreEqual(Math.Round(105.12, 2), Math.Round(Convert.ToDouble(updatedResult.Model.First()["dec1"]), 2));
            Assert.AreEqual("goodby world", updatedResult.Model.First()["str1"]);
        }