Esempio n. 1
0
        public void TestHashCreate_Serializable()
        {
            using (new RedisTestKeys(Redis, "test"))
            {
                var obj = new RedisSerializableTest
                {
                    StringField   = "mystring",
                    IntField      = 999,
                    NullField     = null,
                    DateTimeField = DateTime.Now,
                    ObjectField   = new RedisSerializableTest
                    {
                        StringField   = "inner",
                        IntField      = -999,
                        NullField     = null,
                        DateTimeField = DateTime.Now + TimeSpan.FromDays(1),
                    },
                };

                Assert.AreEqual("OK", Redis.HMSet("test", obj));

                var redis_obj = Redis.HGetAll <RedisSerializableTest>("test");
                Assert.AreEqual(obj.StringField, redis_obj.StringField);
                Assert.AreEqual(obj.IntField, redis_obj.IntField);
                Assert.AreEqual(obj.NullField, redis_obj.NullField);
                Assert.AreEqual(obj.DateTimeField.ToString(), redis_obj.DateTimeField.ToString());
                Assert.AreEqual(obj.ObjectField.StringField, redis_obj.ObjectField.StringField);
                Assert.AreEqual(obj.ObjectField.IntField, redis_obj.ObjectField.IntField);
                Assert.AreEqual(obj.ObjectField.NullField, redis_obj.ObjectField.NullField);
                Assert.AreEqual(obj.ObjectField.DateTimeField.ToString(), redis_obj.ObjectField.DateTimeField.ToString());
            }

            using (new RedisTestKeys(Redis, "test"))
            {
                var obj = Redis.HGetAll <RedisSerializableTest>("test");
                Assert.IsNull(obj);
            }
        }
Esempio n. 2
0
            public RedisSerializableTest(SerializationInfo info, StreamingContext context)
            {
                ObjectField = new RedisSerializableTest();
                foreach (var item in info)
                {
                    switch (item.Name)
                    {
                    case "str":
                        StringField = info.GetString(item.Name);
                        break;

                    case "int":
                        IntField = info.GetInt32(item.Name);
                        break;

                    case "null":
                        NullField = info.GetString(item.Name);
                        break;

                    case "date":
                        DateTimeField = info.GetDateTime(item.Name);
                        break;

                    case "obj.str":
                        ObjectField.StringField = info.GetString(item.Name);
                        break;

                    case "obj.int":
                        ObjectField.IntField = info.GetInt32(item.Name);
                        break;

                    case "obj.date":
                        ObjectField.DateTimeField = info.GetDateTime(item.Name);
                        break;
                    }
                }
            }
Esempio n. 3
0
        public void TestHashCreate_Serializable()
        {
            using (new RedisTestKeys(Redis, "test"))
            {
                var obj = new RedisSerializableTest
                {
                    StringField = "mystring",
                    IntField = 999,
                    NullField = null,
                    DateTimeField = DateTime.Now,
                    ObjectField = new RedisSerializableTest
                    {
                        StringField = "inner",
                        IntField = -999,
                        NullField = null,
                        DateTimeField = DateTime.Now + TimeSpan.FromDays(1),
                    },
                };

                Assert.AreEqual("OK", Redis.HMSet("test", obj));

                var redis_obj = Redis.HGetAll<RedisSerializableTest>("test");
                Assert.AreEqual(obj.StringField, redis_obj.StringField);
                Assert.AreEqual(obj.IntField, redis_obj.IntField);
                Assert.AreEqual(obj.NullField, redis_obj.NullField);
                Assert.AreEqual(obj.DateTimeField.ToString(), redis_obj.DateTimeField.ToString());
                Assert.AreEqual(obj.ObjectField.StringField, redis_obj.ObjectField.StringField);
                Assert.AreEqual(obj.ObjectField.IntField, redis_obj.ObjectField.IntField);
                Assert.AreEqual(obj.ObjectField.NullField, redis_obj.ObjectField.NullField);
                Assert.AreEqual(obj.ObjectField.DateTimeField.ToString(), redis_obj.ObjectField.DateTimeField.ToString());
            }

            using (new RedisTestKeys(Redis, "test"))
            {
                var obj = Redis.HGetAll<RedisSerializableTest>("test");
                Assert.IsNull(obj);
            }
        }
Esempio n. 4
0
            public RedisSerializableTest(SerializationInfo info, StreamingContext context)
            {
                ObjectField = new RedisSerializableTest();
                foreach (var item in info)
                {
                    switch (item.Name)
                    {
                        case "str":
                            StringField = info.GetString(item.Name);
                            break;

                        case "int":
                            IntField = info.GetInt32(item.Name);
                            break;

                        case "null":
                            NullField = info.GetString(item.Name);
                            break;

                        case "date":
                            DateTimeField = info.GetDateTime(item.Name);
                            break;

                        case "obj.str":
                            ObjectField.StringField = info.GetString(item.Name);
                            break;

                        case "obj.int":
                            ObjectField.IntField = info.GetInt32(item.Name);
                            break;

                        case "obj.date":
                            ObjectField.DateTimeField = info.GetDateTime(item.Name);
                            break;
                    }
                }
            }