public void ser_deser_datetimeoffsetnullable_dateset()
        {
            var obj = new DateTimeOffsetNullable()
                {
                    Id = "my_id",
                    TheDateTimeOffset = DateTimeOffset.Parse("10/30/2013 4:12:02 PM -07:00")
                };

            var truth = new Datum
                {
                    type = Datum.DatumType.R_OBJECT
                };
            truth.r_object.Add(new Datum.AssocPair
                {
                    key = "Id",
                    val = new Datum
                        {
                            type = Datum.DatumType.R_STR,
                            r_str = "my_id"
                        }
                });
            truth.r_object.Add(new Datum.AssocPair
                {
                    key = "TheDateTimeOffset",
                    val = new Datum
                        {
                            type = Datum.DatumType.R_OBJECT,
                            r_object =
                                {
                                    new Datum.AssocPair {key = "$reql_type$", val = new Datum {type = Datum.DatumType.R_STR, r_str = "TIME"}},
                                    new Datum.AssocPair {key = "epoch_time", val = new Datum {type = Datum.DatumType.R_NUM, r_num = 1383174722}},
                                    new Datum.AssocPair {key = "timezone", val = new Datum {type = Datum.DatumType.R_STR, r_str = "-07:00"}},
                                }
                        }
                });

            //ser test
            var ser = DatumConvert.SerializeObject(obj);
            ser.ShouldBeEquivalentTo(truth);

            //deser test
            var newtonObj = DatumConvert.DeserializeObject<DateTimeOffsetNullable>(truth);
            newtonObj.ShouldBeEquivalentTo(obj);
        }
        public void ser_deser_datetimeoffsetnullable_nullset()
        {
            var obj = new DateTimeOffsetNullable()
                {
                    Id = "my_id",
                    TheDateTimeOffset = null
                };

            var truth = new Datum
                {
                    type = Datum.DatumType.R_OBJECT
                };
            truth.r_object.Add(new Datum.AssocPair
                {
                    key = "Id",
                    val = new Datum
                        {
                            type = Datum.DatumType.R_STR,
                            r_str = "my_id"
                        }
                });
            truth.r_object.Add(new Datum.AssocPair
                {
                    key = "TheDateTimeOffset",
                    val = new Datum
                        {
                            type = Datum.DatumType.R_NULL,
                        }
                });

            //ser test
            var ser = DatumConvert.SerializeObject(obj);
            ser.ShouldBeEquivalentTo(truth);

            //deser test
            var newtonObj = DatumConvert.DeserializeObject<DateTimeOffsetNullable>(truth);
            newtonObj.ShouldBeEquivalentTo(obj);
        }