Esempio n. 1
0
        public void Test_Deserialize_Null()
        {
            var    transcoder = new DefaultTranscoder(new DefaultConverter());
            object value      = null;

            var flags = new Flags
            {
                Compression = Compression.None,
                DataFormat  = DataFormat.Reserved,
                TypeCode    = TypeCode.Empty
            };

            var bytes  = transcoder.SerializeAsJson(value);
            var actual = transcoder.Decode <object>(bytes, 0, bytes.Length, flags, OperationCode.Get);

            Assert.AreEqual(value, actual);
        }
        public void Test_Deserialize_Int()
        {
            var transcoder = new DefaultTranscoder(new DefaultConverter());
            var five       = 5;

            var flags = new Flags
            {
                Compression = Compression.None,
                DataFormat  = DataFormat.Reserved,
                TypeCode    = five.GetTypeCode()
            };

            var bytes  = transcoder.Encode(five, flags, OperationCode.Get);
            var actual = transcoder.Decode <int>(bytes, 0, bytes.Length, flags, OperationCode.Get);

            Assert.AreEqual(five, actual);
        }
Esempio n. 3
0
        public void Test_Deserialize_Char()
        {
            var transcoder = new DefaultTranscoder(new DefaultConverter());
            var value      = 'o';

            var flags = new Flags
            {
                Compression = Compression.None,
                DataFormat  = DataFormat.Reserved,
                TypeCode    = Convert.GetTypeCode(value)
            };

            var bytes  = Encoding.UTF8.GetBytes(value.ToString());
            var actual = transcoder.Decode <char>(bytes.AsMemory(), flags, OpCode.Get);

            Assert.Equal(value, actual);
        }
Esempio n. 4
0
        public void Test_Deserialize_Null()
        {
            var    transcoder = new DefaultTranscoder(new DefaultConverter());
            object value      = null;

            var flags = new Flags
            {
                Compression = Compression.None,
                DataFormat  = DataFormat.Reserved,
                TypeCode    = TypeCode.Empty
            };

            // ReSharper disable once ExpressionIsAlwaysNull
            var bytes  = transcoder.SerializeAsJson(value);
            var actual = transcoder.Decode <object>(bytes.AsMemory(), flags, OpCode.Get);

            Assert.Equal(value, actual);
        }
        public void Test_Deserialize_String()
        {
            var transcoder = new DefaultTranscoder(new ManualByteConverter());
            var value      = "astring";

            var flags = new Flags
            {
                Compression = Compression.None,
                DataFormat  = DataFormat.Reserved,
                TypeCode    = value.GetTypeCode()
            };

            var bytes  = transcoder.Encode(value, flags);
            var bytes1 = Encoding.UTF8.GetBytes(value);
            var actual = transcoder.Decode <string>(bytes, 0, bytes.Length, flags);

            Assert.AreEqual(value, actual);
        }
Esempio n. 6
0
        public void Test_Poco_Encode_And_Decode()
        {
            var transcoder = new DefaultTranscoder(new DefaultConverter(), new JilSerializer());

            var expected = new QueueItem {
                Id = "foo", ModeTime = 111ul
            };
            var bytes = transcoder.Encode(expected,
                                          new Flags
            {
                DataFormat = DataFormat.Json
            },
                                          OperationCode.Get);

            var actual = transcoder.Decode <QueueItem>(bytes, 0, bytes.Length, OperationCode.Get);

            Assert.AreEqual(expected.Id, actual.Id);
        }
Esempio n. 7
0
        public void Test_Deserialize_String()
        {
            var transcoder = new DefaultTranscoder();
            var value      = "astring";

            var flags = new Flags
            {
                Compression = Compression.None,
                DataFormat  = DataFormat.Reserved,
                TypeCode    = Convert.GetTypeCode(value)
            };

            using (var stream = new MemoryStream())
            {
                transcoder.Encode(stream, value, flags, OpCode.Get);
                var actual = transcoder.Decode <string>(stream.ToArray(), flags, OpCode.Get);
                Assert.Equal(value, actual);
            }
        }
        public void Test_Deserialize_Int()
        {
            var transcoder = new DefaultTranscoder(new DefaultConverter());
            var five       = 5;

            var flags = new Flags
            {
                Compression = Compression.None,
                DataFormat  = DataFormat.Reserved,
                TypeCode    = Convert.GetTypeCode(five)
            };

            using (var stream = new MemoryStream())
            {
                transcoder.Encode(stream, five, flags, OpCode.Get);
                var actual = transcoder.Decode <int>(stream.ToArray(), flags, OpCode.Get);
                Assert.Equal(five, actual);
            }
        }
Esempio n. 9
0
        public void Test_Poco()
        {
            var transcoder = new DefaultTranscoder(new DefaultConverter());
            var value      = new Person {
                Name = "jeff"
            };

            var flags = new Flags
            {
                Compression = Compression.None,
                DataFormat  = DataFormat.Reserved,
                TypeCode    = Type.GetTypeCode(typeof(Person))
            };

            var bytes  = transcoder.Encode(value, flags, OpCode.Get);
            var actual = transcoder.Decode <Person>(bytes.AsMemory(), flags, OpCode.Get);

            Assert.Equal(value.Name, actual.Name);
        }
        public void Test_Poco()
        {
            var transcoder = new DefaultTranscoder(new ManualByteConverter());
            var value      = new Person {
                Name = "jeff"
            };

            var flags = new Flags
            {
                Compression = Compression.None,
                DataFormat  = DataFormat.Reserved,
                TypeCode    = Type.GetTypeCode(typeof(Person))
            };

            var bytes  = transcoder.Encode(value, flags);
            var actual = transcoder.Decode <Person>(new ArraySegment <byte>(bytes), 0, bytes.Length, flags);

            Assert.AreEqual(value.Name, actual.Name);
        }
        public void Test_Byte_Array()
        {
            var transcoder = new DefaultTranscoder(new ManualByteConverter());
            var value      = new byte[] { 0x00, 0x00, 0x01 };

            var flags = new Flags
            {
                Compression = Compression.None,
                DataFormat  = DataFormat.Binary,
                TypeCode    = Type.GetTypeCode(typeof(byte[]))
            };

            var bytes = transcoder.Encode(value, flags);

            Assert.AreEqual(bytes, value);

            var actual = transcoder.Decode <byte[]>(bytes, 0, bytes.Length, flags);

            Assert.AreEqual(bytes, actual);
        }
Esempio n. 12
0
        public void Test_Deserialize_Null()
        {
            var    transcoder = new DefaultTranscoder();
            object value      = null;

            var flags = new Flags
            {
                Compression = Compression.None,
                DataFormat  = DataFormat.Reserved,
                TypeCode    = TypeCode.Empty
            };

            // ReSharper disable once ExpressionIsAlwaysNull
            using (var stream = new MemoryStream())
            {
                transcoder.SerializeAsJson(stream, value);
                var actual = transcoder.Decode <object>(stream.ToArray(), flags, OpCode.Get);
                Assert.Equal(value, actual);
            }
        }
Esempio n. 13
0
        public void Test_Byte_Array()
        {
            var transcoder = new DefaultTranscoder();
            var value      = new byte[] { 0x00, 0x00, 0x01 };

            var flags = new Flags
            {
                Compression = Compression.None,
                DataFormat  = DataFormat.Binary,
                TypeCode    = Type.GetTypeCode(typeof(byte[]))
            };

            using (var stream = new MemoryStream())
            {
                transcoder.Encode(stream, value, flags, OpCode.Get);
                Assert.Equal(value, stream.ToArray());

                var actual = transcoder.Decode <byte[]>(stream.ToArray(), flags, OpCode.Get);
                Assert.Equal(value, actual);
            }
        }
Esempio n. 14
0
        public void Test_Int_Encode_And_Decode()
        {
            var transcoder = new DefaultTranscoder(new DefaultConverter(), new JilSerializer());

            var expected = 10;
            var bytes    = transcoder.Encode(expected,
                                             new Flags
            {
                DataFormat = DataFormat.Json
            },
                                             OperationCode.Get);

            var actual = transcoder.Decode <int>(bytes, 0, bytes.Length,
                                                 new Flags
            {
                DataFormat = DataFormat.Json
            },
                                                 OperationCode.Get);

            Assert.AreEqual(expected, actual);
        }
Esempio n. 15
0
        public void Test_Poco()
        {
            var transcoder = new DefaultTranscoder();
            var value      = new Person {
                Name = "jeff"
            };

            var flags = new Flags
            {
                Compression = Compression.None,
                DataFormat  = DataFormat.Reserved,
                TypeCode    = Type.GetTypeCode(typeof(Person))
            };

            using (var stream = new MemoryStream())
            {
                transcoder.Encode(stream, value, flags, OpCode.Get);
                var actual = transcoder.Decode <Person>(stream.ToArray(), flags, OpCode.Get);

                Assert.Equal(value.Name, actual.Name);
            }
        }
Esempio n. 16
0
        public void Test_dynamic_Encode_And_Decode()
        {
            var transcoder = new DefaultTranscoder(new DefaultConverter(), new JilSerializer());

            dynamic expected = new { Id = "bar", Val = 100 };
            var     bytes    = transcoder.Encode(expected,
                                                 new Flags
            {
                DataFormat = DataFormat.Json
            },
                                                 OperationCode.Get);

            var actual = transcoder.Decode <dynamic>(bytes, 0, bytes.Length,
                                                     new Flags
            {
                DataFormat = DataFormat.Json
            },
                                                     OperationCode.Get);

            //dynamic does not quite work as expected...
            //Assert.AreEqual(expected.Id, actual.Id);
        }
Esempio n. 17
0
        public void When_ByteArray_Is_Stored_With_Legacy_Flags_It_Is_Decoded_As_A_ByteArray()
        {
            var legacyByteArray = new byte[]
            {
                129, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 8, 0,
                0, 0, 5, 19, 185, 8, 248, 3, 104, 208, 188, 0,
                0, 250, 82, 116, 101, 115, 116
            };

            var converter = new DefaultConverter();
            var format    = new byte();

            var temp = converter.ToByte(legacyByteArray, 24);

            converter.SetBit(ref format, 0, converter.GetBit(temp, 0));
            converter.SetBit(ref format, 1, converter.GetBit(temp, 1));
            converter.SetBit(ref format, 2, converter.GetBit(temp, 2));
            converter.SetBit(ref format, 3, converter.GetBit(temp, 3));

            var compression = new byte();

            converter.SetBit(ref compression, 4, converter.GetBit(temp, 4));
            converter.SetBit(ref compression, 5, converter.GetBit(temp, 5));
            converter.SetBit(ref compression, 6, converter.GetBit(temp, 6));

            var flags = new Flags
            {
                DataFormat  = (DataFormat)format,
                Compression = (Compression)compression,
                TypeCode    = (TypeCode)(converter.ToUInt16(legacyByteArray, 26) & 0xff),
            };

            var transcoder = new DefaultTranscoder(new DefaultConverter());
            var result     = transcoder.Decode <byte[]>(legacyByteArray.AsMemory(28, 4), flags, OpCode.Get);

            Assert.Equal("test", Encoding.UTF8.GetString(result));
        }
        public void When_ByteArray_Is_Stored_With_Legacy_Flags_It_Is_Decoded_As_A_ByteArray()
        {
            var legacyByteArray = new byte[]
            {
                129, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 8, 0,
                0, 0, 5, 19, 185, 8, 248, 3, 104, 208, 188, 0,
                0, 250, 82, 116, 101, 115, 116
            };

            var converter = new DefaultConverter();
            var format = new byte();

            var temp = converter.ToByte(legacyByteArray, 24);
            converter.SetBit(ref format, 0, converter.GetBit(temp, 0));
            converter.SetBit(ref format, 1, converter.GetBit(temp, 1));
            converter.SetBit(ref format, 2, converter.GetBit(temp, 2));
            converter.SetBit(ref format, 3, converter.GetBit(temp, 3));

            var compression = new byte();
            converter.SetBit(ref compression, 4, converter.GetBit(temp, 4));
            converter.SetBit(ref compression, 5, converter.GetBit(temp, 5));
            converter.SetBit(ref compression, 6, converter.GetBit(temp, 6));

            var flags = new Flags
            {
                DataFormat = (DataFormat)format,
                Compression = (Compression)compression,
                TypeCode = (TypeCode)(converter.ToUInt16(legacyByteArray, 26) & 0xff),
            };

            var transcoder = new DefaultTranscoder(new DefaultConverter());
            var result = transcoder.Decode<byte[]>(legacyByteArray, 28, 4, flags, OperationCode.Get);
            Assert.AreEqual("test", Encoding.UTF8.GetString(result));
        }
        public void Test_Byte_Array()
        {
            var transcoder = new DefaultTranscoder(new DefaultConverter());
            var value = new byte[] {0x00, 0x00, 0x01};

            var flags = new Flags
            {
                Compression = Compression.None,
                DataFormat = DataFormat.Binary,
                TypeCode = Type.GetTypeCode(typeof(byte[]))
            };

            var bytes = transcoder.Encode(value, flags, OperationCode.Get);
            Assert.AreEqual(bytes, value);

            var actual = transcoder.Decode<byte[]>(bytes, 0, bytes.Length, flags, OperationCode.Get);
            Assert.AreEqual(bytes, actual);
        }
        public void Test_Deserialize_String()
        {
            var transcoder = new DefaultTranscoder(new DefaultConverter());
            var value = "astring";

            var flags = new Flags
            {
                Compression = Compression.None,
                DataFormat = DataFormat.Reserved,
                TypeCode = value.GetTypeCode()
            };

            var bytes = transcoder.Encode(value, flags, OperationCode.Get);
            var bytes1 = Encoding.UTF8.GetBytes(value);
            var actual = transcoder.Decode<string>(bytes, 0, bytes.Length, flags, OperationCode.Get);
            Assert.AreEqual(value, actual);
        }
        public void Test_Deserialize_Null()
        {
            var transcoder = new DefaultTranscoder(new DefaultConverter());
            object value = null;

            var flags = new Flags
            {
                Compression = Compression.None,
                DataFormat = DataFormat.Reserved,
                TypeCode = TypeCode.Empty
            };

            var bytes = transcoder.SerializeAsJson(value);
            var actual = transcoder.Decode<object>(bytes, 0, bytes.Length, flags, OperationCode.Get);
            Assert.AreEqual(value, actual);
        }
        public void Test_Deserialize_Int()
        {
            var transcoder = new DefaultTranscoder(new DefaultConverter());
            var five = 5;

            var flags = new Flags
            {
                Compression = Compression.None,
                DataFormat = DataFormat.Reserved,
                TypeCode = five.GetTypeCode()
            };

            var bytes = transcoder.Encode(five, flags, OperationCode.Get);
            var actual = transcoder.Decode<int>(bytes, 0, bytes.Length, flags, OperationCode.Get);
            Assert.AreEqual(five, actual);

        }
        public void Test_Poco()
        {
            var transcoder = new DefaultTranscoder(new DefaultConverter());
            var value = new Person {Name = "jeff"};

            var flags = new Flags
            {
                Compression = Compression.None,
                DataFormat = DataFormat.Reserved,
                TypeCode = Type.GetTypeCode(typeof(Person))
            };

            var bytes = transcoder.Encode(value, flags, OperationCode.Get);
            var actual = transcoder.Decode<Person>(new ArraySegment<byte>(bytes), 0, bytes.Length, flags, OperationCode.Get);

            Assert.AreEqual(value.Name, actual.Name);
        }