Beispiel #1
0
        public void ArrayOneDimensionByteStringVariantTest()
        {
            byte[]   _testArray    = new byte[] { 143, 2, 0, 0, 0, 5, 0, 0, 0, 0, 1, 2, 3, 4, 5, 0, 0, 0, 5, 6, 7, 8, 9 };
            IVariant _EncodedArray = null;

            using (MemoryStream _stream = new MemoryStream(_testArray))
                using (TestBinaryReader _buffer = new TestBinaryReader(_stream))
                {
                    Assert.IsNotNull(_buffer);
                    _EncodedArray = _buffer.ReadVariant(_buffer);
                    _buffer.Close();
                }
            Assert.IsNotNull(_EncodedArray);
            Assert.AreEqual <BuiltInType>(BuiltInType.ByteString, _EncodedArray.UATypeInfo.BuiltInType);
            Assert.AreEqual <int>(1, _EncodedArray.UATypeInfo.ValueRank);
            Assert.IsInstanceOfType(_EncodedArray.Value, typeof(Array));
            Array _value = _EncodedArray.Value as Array;

            Assert.IsNotNull(_value);
            Assert.AreEqual <int>(1, _value.Rank);
            Assert.AreEqual <int>(2, _value.GetLength(0));
            byte[][] _recovered = (byte[][])_value;
            byte[][] _expected  = new byte[][] { new byte[] { 0, 1, 2, 3, 4 }, new byte[] { 5, 6, 7, 8, 9 } };
            for (int i = 0; i < _value.Rank; i++)
            {
                CollectionAssert.AreEqual(_expected[i], _recovered[i]);
            }
        }
Beispiel #2
0
        public void WriteDataValueTestMethod()
        {
            IDataValue _ReadDataValue;

            using (MemoryStream _stream = new MemoryStream())
                using (TestBinaryReader _buffer = new TestBinaryReader(_stream))
                    _ReadDataValue = _buffer.ReadDataValue(_buffer);
        }
Beispiel #3
0
        public void UnsupportedClass_Read()
        {
            var    bs     = new BinarizableSerializer();
            var    reader = new TestBinaryReader(new MemoryStream(Consts.TREX_DEFAULT_MEMORY_STREAM_CAPACITY_ON_CREATION));
            Action act    = () => bs.ReadBinary(new object(), reader);

            act.Should().Throw <TRexNonBinarizableException>().WithMessage("Not IBinarizable on ReadBinary: System.Object");
        }
Beispiel #4
0
        public void GuidTestMethod()
        {
            Guid             _Guid   = Guid.NewGuid();
            MemoryStream     _stream = new MemoryStream(_Guid.ToByteArray());
            TestBinaryReader _buffer = new TestBinaryReader(_stream);

            Assert.IsNotNull(_buffer);
            Guid _EncodedGuid = _buffer.ReadGuid();

            _buffer.Close();
            Assert.AreEqual <Guid>(_Guid, _EncodedGuid);
        }
Beispiel #5
0
 public void VariantGuidTestMethod()
 {
     using (MemoryStream _stream = new MemoryStream(CommonDefinitions.TestGuidVariant))
         using (TestBinaryReader _buffer = new TestBinaryReader(_stream))
         {
             Assert.IsNotNull(_buffer);
             IVariant _EncodedVGuid = _buffer.ReadVariant(_buffer);
             _buffer.Close();
             Assert.IsNotNull(_EncodedVGuid);
             Assert.AreEqual <BuiltInType>(BuiltInType.Guid, _EncodedVGuid.UATypeInfo.BuiltInType);
             Assert.AreEqual <int>(-1, _EncodedVGuid.UATypeInfo.ValueRank);
             Assert.AreEqual <Guid>(CommonDefinitions.TestGuid, (Guid)_EncodedVGuid.Value);
         }
 }
Beispiel #6
0
 public void VariantDateTimeTestMethod()
 {
     foreach (CommonDefinitions.DateTimeVariantEncoding _dtx in CommonDefinitions.DateTimeTestingValues)
     {
         using (MemoryStream _stream = new MemoryStream(_dtx.encoding))
             using (TestBinaryReader _buffer = new TestBinaryReader(_stream))
             {
                 Assert.IsNotNull(_buffer);
                 IVariant _variant = _buffer.ReadVariant(_buffer);
                 _buffer.Close();
                 Assert.AreEqual <BuiltInType>(BuiltInType.DateTime, _variant.UATypeInfo.BuiltInType);
                 Assert.AreEqual <DateTime>(_dtx.dateTime, (DateTime)_variant.Value);
             }
     }
 }
Beispiel #7
0
        public void CheckVersionByte_Binarizable_Success()
        {
            const byte TEST_VERSION = 99;

            var writer = new TestBinaryWriter();

            VersionSerializationHelper.EmitVersionByte(writer, TEST_VERSION);

            var ms = writer._stream.BaseStream as MemoryStream;

            ms.Position = 0;

            var reader = new TestBinaryReader(ms);

            VersionSerializationHelper.CheckVersionByte(reader, TEST_VERSION);
        }
Beispiel #8
0
        public void ArrayOneDimensionCompressedTest()
        {
            byte[] _testArray    = new byte[] { 5, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0 };
            Array  _EncodedArray = null;

            using (MemoryStream _stream = new MemoryStream(_testArray))
                using (TestBinaryReader _buffer = new TestBinaryReader(_stream))
                {
                    Assert.IsNotNull(_buffer);
                    _EncodedArray = _buffer.ReadArray <Int32>(_buffer, _buffer.ReadInt32, false);
                    _buffer.Close();
                }
            Assert.IsNotNull(_EncodedArray);
            Assert.AreEqual <int>(1, _EncodedArray.Rank);
            Assert.IsInstanceOfType(_EncodedArray, typeof(Array));
            Assert.AreEqual <int>(5, _EncodedArray.GetLength(0));
            CollectionAssert.AreEqual(new Int32[] { 0, 1, 2, 3, 4 }, _EncodedArray);
        }
Beispiel #9
0
        public void CheckVersionByte_Binarizable_Failure()
        {
            const byte TEST_VERSION     = 99;
            const byte BAD_TEST_VERSION = 100;

            var writer = new TestBinaryWriter();

            VersionSerializationHelper.EmitVersionByte(writer, BAD_TEST_VERSION);

            var ms = writer._stream.BaseStream as MemoryStream;

            ms.Position = 0;

            var reader = new TestBinaryReader(ms);

            Action act = () => VersionSerializationHelper.CheckVersionByte(reader, TEST_VERSION);

            act.Should().Throw <TRexSerializationVersionException>().WithMessage($"Invalid version read during deserialization: {BAD_TEST_VERSION}, expected version in [{TEST_VERSION}]");
        }
Beispiel #10
0
        public void ArrayMultiDimensionTest()
        {
            byte[] _testArray    = new byte[] { 198, 4, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0 };
            Array  _EncodedArray = null;

            using (MemoryStream _stream = new MemoryStream(_testArray))
                using (TestBinaryReader _buffer = new TestBinaryReader(_stream))
                {
                    Assert.IsNotNull(_buffer);
                    _EncodedArray = _buffer.ReadArray <Int32>(_buffer, _buffer.ReadInt32, true);
                    Assert.Fail();
                    _buffer.Close();
                }
            Assert.IsNotNull(_EncodedArray);
            Assert.AreEqual <int>(2, _EncodedArray.Rank);
            Assert.IsInstanceOfType(_EncodedArray, typeof(Array));
            Assert.AreEqual <int>(4, _EncodedArray.Length);
            CollectionAssert.AreEqual(new Int32[] { 0, 1, 2, 3 }, _EncodedArray);
        }
Beispiel #11
0
        public void ArrayOneDimensionVariantTest()
        {
            byte[]   _testArray    = new byte[] { 134, 5, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0 };
            IVariant _EncodedArray = null;

            using (MemoryStream _stream = new MemoryStream(_testArray))
                using (TestBinaryReader _buffer = new TestBinaryReader(_stream))
                {
                    Assert.IsNotNull(_buffer);
                    _EncodedArray = _buffer.ReadVariant(_buffer);
                    _buffer.Close();
                }
            Assert.IsNotNull(_EncodedArray);
            Assert.AreEqual <BuiltInType>(BuiltInType.Int32, _EncodedArray.UATypeInfo.BuiltInType);
            Assert.AreEqual <int>(1, _EncodedArray.UATypeInfo.ValueRank);
            Assert.IsInstanceOfType(_EncodedArray.Value, typeof(Array));
            Array _value = _EncodedArray.Value as Array;

            Assert.IsNotNull(_value);
            Assert.AreEqual <int>(1, _value.Rank);
            Assert.AreEqual <int>(5, _value.GetLength(0));
            CollectionAssert.AreEqual(new Int32[] { 0, 1, 2, 3, 4 }, _value);
        }