public void ShouldThrowExceptionIfMarkerByteNotMap() { var mockInput = IOExtensions.CreateMockStream(PackStream.False); var reader = new PackStreamReader(mockInput.Object, BoltReader.StructHandlers); var ex = Xunit.Record.Exception(() => reader.ReadMapHeader()); ex.Should().BeOfType <ProtocolException>(); mockInput.Verify(x => x.ReadByte(), Times.Once); }
public void ShouldReadTinyMap() { var mockInput = IOExtensions.CreateMockStream(0xA2); var reader = new PackStreamReader(mockInput.Object, BoltReader.StructHandlers); var header = reader.ReadMapHeader(); header.Should().Be(2); mockInput.Verify(x => x.ReadByte(), Times.Once); }
public void ShouldReadMap32() { var mockInput = IOExtensions.CreateMockStream(PackStream.Map32, PackStreamBitConverter.GetBytes((int)-1)); var reader = new PackStreamReader(mockInput.Object, BoltReader.StructHandlers); var header = reader.ReadMapHeader(); header.Should().Be(uint.MaxValue); mockInput.Verify(x => x.ReadByte(), Times.Once); mockInput.Verify(x => x.Read(It.IsAny <byte[]>(), It.IsAny <int>(), It.IsAny <int>()), Times.Once); }
public void ShouldReadMap8() { var mockInput = IOExtensions.CreateMockStream(PackStream.Map8, (byte)1); var reader = new PackStreamReader(mockInput.Object, BoltReader.StructHandlers); var header = reader.ReadMapHeader(); header.Should().Be(1); mockInput.Verify(x => x.ReadByte(), Times.Once); mockInput.Verify(x => x.Read(It.IsAny <byte[]>(), It.IsAny <int>(), It.IsAny <int>()), Times.Once); }
public object Read(PackStreamReader reader, long size) { var urn = reader.ReadLong(); var numLabels = (int)reader.ReadListHeader(); var labels = new List <string>(numLabels); for (var i = 0; i < numLabels; i++) { labels.Add(reader.ReadString()); } var numProps = (int)reader.ReadMapHeader(); var props = new Dictionary <string, object>(numProps); for (var j = 0; j < numProps; j++) { var key = reader.ReadString(); props.Add(key, reader.Read()); } return(new Node(urn, labels, props)); }