protected bool Equals(PrimitivesReferenceModel other)
 {
     return(string.Equals(StringVal, other.StringVal) && IntVal == other.IntVal &&
            BooleanVal == other.BooleanVal && ByteVal == other.ByteVal && LongVal == other.LongVal &&
            FloatVal.Equals(other.FloatVal) && DoubleVal.Equals(other.DoubleVal) &&
            DateTimeVal.Equals(other.DateTimeVal) && ShortVal == other.ShortVal &&
            UShortVal == other.UShortVal && UIntVal == other.UIntVal && ULongVal == other.ULongVal &&
            SByteVal == other.SByteVal && CharVal == other.CharVal);
 }
        private void ReferenceTypeWithAllPrimitiveTypesTest_Run(IDbContext context, ref Expr lastQuery)
        {
            var model = new PrimitivesReferenceModel
            {
                BooleanVal  = true,
                ByteVal     = 10,
                CharVal     = 'a',
                DateTimeVal = DateTime.MaxValue,
                DoubleVal   = 123.4,
                FloatVal    = 234.5f,
                LongVal     = 123,
                IntVal      = 234,
                SByteVal    = 1,
                UIntVal     = 2,
                UShortVal   = 3,
                ULongVal    = 4,
                ShortVal    = 5,
                StringVal   = "test1"
            };

            var dict = new Dictionary <string, object>
            {
                { "string_val", "test1" },
                { "int_val", 234 },
                { "boolean_val", true },
                { "byte_val", 10 },
                { "long_val", 123 },
                { "float_val", 234.5f },
                { "double_val", 123.4 },
                { "date_time_val", Time(DateTime.MaxValue.ToString("O")) },
                { "short_val", 5 },
                { "u_short_val", 3 },
                { "u_int_val", 2 },
                { "u_long_val", 4 }, // bizarre issue with conversion, ulong will implicit to double for some reason
                { "s_byte_val", 1 },
                { "char_val", "a" },
            };

            var manual = Obj(dict);

            var auto = context.ToFaunaObj(model);

            Assert.Equal(JsonConvert.SerializeObject(manual), JsonConvert.SerializeObject(auto));
        }
        private void ReferenceTypeWithAllPrimitivesDecodeTest_Run(IDbContext context, ref Expr lastQuery)
        {
            var model = new PrimitivesReferenceModel
            {
                BooleanVal  = true,
                ByteVal     = 10,
                CharVal     = 'a',
                DateTimeVal = new DateTime(2010, 1, 1).ToUniversalTime(),
                DoubleVal   = 123.4,
                FloatVal    = 234.5f,
                LongVal     = 123,
                IntVal      = 234,
                SByteVal    = 1,
                UIntVal     = 2,
                UShortVal   = 3,
                ULongVal    = 4,
                ShortVal    = 5,
                StringVal   = "test1"
            };

            var result = context.Get <PrimitivesReferenceModel>("test1").Result;

            Assert.Equal(model, result);
        }