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]); } }
public void WriteDataValueTestMethod() { IDataValue _ReadDataValue; using (MemoryStream _stream = new MemoryStream()) using (TestBinaryReader _buffer = new TestBinaryReader(_stream)) _ReadDataValue = _buffer.ReadDataValue(_buffer); }
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"); }
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); }
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); } }
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); } } }
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); }
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); }
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}]"); }
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); }
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); }