diff --git a/ZeroLevel.UnitTests/SerializationTests.cs b/ZeroLevel.UnitTests/SerializationTests.cs index 70b9730..dc193a9 100644 --- a/ZeroLevel.UnitTests/SerializationTests.cs +++ b/ZeroLevel.UnitTests/SerializationTests.cs @@ -2,14 +2,13 @@ using System.Collections.Generic; using System.Linq; using System.Net; -using DOM.Services; using Xunit; using ZeroLevel.DocumentObjectModel; using ZeroLevel.Network; using ZeroLevel.Services.Serialization; using ZeroLevel.UnitTests.Models; -namespace ZeroLevel.UnitTests +namespace ZeroLevel.Serialization { public class SerializationTests { @@ -345,6 +344,21 @@ namespace ZeroLevel.UnitTests }); MakePrimitiveTest(CompositeInstanceFactory.MakeDocument(), comparator); - } + } + + [Fact] + public void ReverseByteOrderTest() + { + var data = new byte[4] { 0, 0, 8, 1 }; + using (var reader = new MemoryStreamReader(data)) + { + Assert.Equal(17301504, reader.ReadInt32()); + } + using (var reader = new MemoryStreamReader(data)) + { + reader.ReverseByteOrder(true); + Assert.Equal(2049, reader.ReadInt32()); + } + } } } diff --git a/ZeroLevel/Services/Serialization/MemoryStreamReader.cs b/ZeroLevel/Services/Serialization/MemoryStreamReader.cs index 56c2dcc..c01d261 100644 --- a/ZeroLevel/Services/Serialization/MemoryStreamReader.cs +++ b/ZeroLevel/Services/Serialization/MemoryStreamReader.cs @@ -142,14 +142,14 @@ namespace ZeroLevel.Services.Serialization var readedCount = _stream.Read(buffer, 0, count); if (count != readedCount) throw new InvalidOperationException($"The stream returned less data ({count} bytes) than expected ({readedCount} bytes)"); - if (_reverseByteOrder) + if (_reverseByteOrder && count > 1) { byte b; for (int i = 0; i < (count >> 1); i++) { b = buffer[i]; - buffer[i] = buffer[count - i]; - buffer[count - i] = b; + buffer[i] = buffer[count - i - 1]; + buffer[count - i - 1] = b; } } return buffer; diff --git a/ZeroLevel/ZeroLevel.csproj b/ZeroLevel/ZeroLevel.csproj index 684975e..f0e8114 100644 --- a/ZeroLevel/ZeroLevel.csproj +++ b/ZeroLevel/ZeroLevel.csproj @@ -5,15 +5,15 @@ Infrastructure layer library ogoun ogoun - 2.0.3.0 - Update serialization + 2.0.4.0 + Patch https://github.com/ogoun/Zero/wiki Copyright Ogoun 2019 https://opensource.org/licenses/MIT https://raw.githubusercontent.com/ogoun/Zero/master/zero.png https://github.com/ogoun/Zero GitHub - 2.0.3 + 2.0.4