コード例 #1
0
        public void PipeStreamSerializeAndDeserialize_MultipleValues_ConsecutiveReadsAndWrites_IsCorrect()
        {
            var obj1 = new List <int>()
            {
                1
            };
            var obj2 = new Dictionary <string, object>()
            {
                { "A", DateTime.MinValue }
            };
            var obj3 = double.MaxValue;

            FakePipeStream stream = new FakePipeStream();

            BssomSerializer.Serialize(stream, obj1);
            BssomSerializer.Serialize(stream, obj2);
            BssomSerializer.Serialize(stream, obj3);

            stream.ResetCursor();
            var oobj1 = BssomSerializer.Deserialize <List <int> >(stream);
            var oobj2 = BssomSerializer.Deserialize <Dictionary <string, object> >(stream);
            var oobj3 = BssomSerializer.Deserialize <double>(stream);

            oobj1.Count.Is(obj1.Count);
            oobj1[0].Is(oobj1[0]);
            oobj2.Count.Is(obj2.Count);
            oobj2["A"].Is(oobj2["A"]);
            oobj3.Is(obj3);
        }
コード例 #2
0
        public void DeserializeTestWithStreamAsync_Type()
        {
            int val    = int.MaxValue;
            var buf    = BssomSerializer.Serialize(val);
            var stream = new FakePipeStream(buf);

            ((int)(BssomSerializer.DeserializeAsync(stream, typeof(int)).Result)).Is(int.MaxValue);
            stream.CurrentCursor().Is(5);
        }
コード例 #3
0
        public void DeserializeTestWithStreamAsync()
        {
            int val    = int.MaxValue;
            var buf    = BssomSerializer.Serialize(val);
            var stream = new FakePipeStream(buf);

            BssomSerializer.DeserializeAsync <int>(stream).Result.Is(int.MaxValue);
            stream.CurrentCursor().Is(5);
        }
コード例 #4
0
        public void DeserializeTestWithStream_Type_Context()
        {
            int val     = int.MaxValue;
            var context = new BssomDeserializeContext();
            var buf     = BssomSerializer.Serialize(val);
            var stream  = new FakePipeStream(buf);

            ((int)BssomSerializer.Deserialize(ref context, stream, typeof(int))).Is(int.MaxValue);
            stream.CurrentCursor().Is(5);
        }
コード例 #5
0
        public void SerializeTestWithStreamAsync()
        {
            int val    = int.MaxValue;
            var stream = new FakePipeStream();

            BssomSerializer.SerializeAsync(stream, val).Wait();
            stream.CurrentCursor().Is(5);
            BssomSerializer.Deserialize <int>(stream.ToArray(), 0, out int readSize).Is(int.MaxValue);
            readSize.Is(5);
        }
コード例 #6
0
        public void PipeStreamDeserializeAsyncTest(Type type)
        {
            var obj = RandomHelper.RandomValueWithOutStringEmpty(type);

            byte[] buf = BssomSerializer.Serialize(obj);

            FakePipeStream stream = new FakePipeStream(buf);

            obj = BssomSerializer.DeserializeAsync(stream, type).Result;
            buf.Is(BssomSerializer.Serialize(obj));
        }
コード例 #7
0
        public void SerializeTestWithContext_Stream()
        {
            int val     = int.MaxValue;
            var context = new BssomSerializeContext();
            var stream  = new FakePipeStream();

            BssomSerializer.Serialize(ref context, val, stream);
            stream.CurrentCursor().Is(5);
            BssomSerializer.Deserialize <int>(stream.ToArray(), 0, out int readSize).Is(int.MaxValue);
            readSize.Is(5);
        }
コード例 #8
0
        public void PipeStreamSerializeAsyncTest(Type type)
        {
            var obj = RandomHelper.RandomValueWithOutStringEmpty(type);

            byte[] buf = BssomSerializer.Serialize(obj);

            FakePipeStream stream = new FakePipeStream();

            BssomSerializer.SerializeAsync(stream, obj).Wait();

            stream.CurrentCursor().Is(buf.Length);
            buf.Is(stream.ToArray());
        }