public async void ShouldReadRecordMessageReturningPath() { var fields = new object[0]; var mockInput = IOExtensions.CreateMockStream("00 0d b1 71 91 B3 50 91 B3 4E 01 90 A0 90 90 00 00"); var mockResponseHandler = new Mock <IMessageResponseHandler>(); mockResponseHandler.Setup(x => x.HandleRecordMessage(It.IsAny <object[]>())) .Callback <object[]>(x => fields = x); var reader = new BoltReader(mockInput.Object); await reader.ReadAsync(mockResponseHandler.Object); mockResponseHandler.Verify(x => x.HandleRecordMessage(It.IsAny <object[]>()), Times.Once); fields.Should().NotBeNull(); fields.Should().HaveCount(1); var p = fields[0] as IPath; p.Should().NotBeNull(); p.Start.Should().NotBeNull(); p.End.Should().NotBeNull(); p.Start.Id.Should().Be(1); p.Start.Properties.Should().BeEmpty(); p.Start.Labels.Should().BeEmpty(); p.Nodes.Should().HaveCount(1); p.Relationships.Should().HaveCount(0); }
public void ShouldReadSuccessMessage() { var dict = (IDictionary <string, object>)null; var mockInput = IOExtensions.CreateMockStream("00 14 B1 70 A1 86 66 69 65 6C 64 73 92 84 6E 61 6D 65 83 61 67 65 00 00"); var mockResponseHandler = new Mock <IMessageResponseHandler>(); mockResponseHandler.Setup(x => x.HandleSuccessMessage(It.IsAny <IDictionary <string, object> >())) .Callback <IDictionary <string, object> >(x => dict = x); var reader = new BoltReader(mockInput.Object); reader.Read(mockResponseHandler.Object); mockResponseHandler.Verify(x => x.HandleSuccessMessage(It.IsAny <IDictionary <string, object> >()), Times.Once); dict.Should().NotBeNull(); dict.Should().HaveCount(1); dict.Should().ContainKey("fields"); var fieldsValue = dict["fields"]; fieldsValue.Should().NotBeNull(); fieldsValue.Should().BeAssignableTo <IList <object> >(); var fields = (IList <object>)fieldsValue; fields.Should().HaveCount(2); fields.Should().Contain("name"); fields.Should().Contain("age"); }
public async void ShouldReadRecordMessageReturningRelationship() { var fields = new object[0]; var mockInput = IOExtensions.CreateMockStream("00 0A b1 71 91 B5 52 01 02 03 80 a0 00 00"); var mockResponseHandler = new Mock <IMessageResponseHandler>(); mockResponseHandler.Setup(x => x.HandleRecordMessage(It.IsAny <object[]>())) .Callback <object[]>(x => fields = x); var reader = new BoltReader(mockInput.Object); await reader.ReadAsync(mockResponseHandler.Object); mockResponseHandler.Verify(x => x.HandleRecordMessage(It.IsAny <object[]>()), Times.Once); fields.Should().NotBeNull(); fields.Should().HaveCount(1); var rel = fields[0] as IRelationship; rel.Should().NotBeNull(); rel.Id.Should().Be(1); rel.StartNodeId.Should().Be(2); rel.EndNodeId.Should().Be(3); rel.Type.Should().BeEmpty(); rel.Properties.Should().BeEmpty(); }
public void ShouldReadRecordMessageReturningNode() { var fields = new object[0]; var mockInput = IOExtensions.CreateMockStream("00 08 b1 71 91 B3 4E 01 90 A0 00 00"); var mockResponseHandler = new Mock <IMessageResponseHandler>(); mockResponseHandler.Setup(x => x.HandleRecordMessage(It.IsAny <object[]>())) .Callback <object[]>(x => fields = x); var reader = new BoltReader(mockInput.Object); reader.Read(mockResponseHandler.Object); mockResponseHandler.Verify(x => x.HandleRecordMessage(It.IsAny <object[]>()), Times.Once); fields.Should().NotBeNull(); fields.Should().HaveCount(1); var n = fields[0] as INode; n.Should().NotBeNull(); n.Id.Should().Be(1); n.Properties.Should().BeEmpty(); n.Labels.Should().BeEmpty(); }
public void ShouldThrowExceptionIfMarkerByteNotTrueOrFalse() { var mockInput = IOExtensions.CreateMockStream(PackStream.Bytes16); var reader = new PackStreamReader(mockInput.Object, BoltReader.StructHandlers); var ex = Xunit.Record.Exception(() => reader.ReadBoolean()); ex.Should().BeOfType <ProtocolException>(); }
public void ShouldReadZeroLengthBytes() { var mockInput = IOExtensions.CreateMockStream(PackStream.Bytes8, 0); var reader = new PackStreamReader(mockInput.Object, BoltReader.StructHandlers); var real = reader.ReadBytes(); real.Length.Should().Be(0); }
private void ShouldReadNumCorrectly(long expected, byte[] data) { var mockInput = IOExtensions.CreateMockStream(data); var reader = new PackStreamReader(mockInput.Object, BoltReader.StructHandlers); var real = reader.Read(); real.Should().Be(expected); }
public void ShouldReadNullThroughRead() { var mockInput = IOExtensions.CreateMockStream(PackStream.Null); var reader = new PackStreamReader(mockInput.Object, BoltReader.StructHandlers); var real = reader.Read(); real.Should().BeNull(); }
[InlineData(0x7F, 127)] // 7F to FF public void ShouldReadLongAsTinyByte(byte data, sbyte expected) { var mockInput = IOExtensions.CreateMockStream(data); var reader = new PackStreamReader(mockInput.Object, BoltReader.StructHandlers); var real = (sbyte)reader.ReadLong(); real.Should().Be(expected); mockInput.Verify(x => x.Read(It.IsAny <byte[]>(), It.IsAny <int>(), It.IsAny <int>()), Times.Once); }
public void ShouldReadString8() { var mockInput = IOExtensions.CreateMockStream(PackStream.String8, (byte)1, 0x61); var reader = new PackStreamReader(mockInput.Object, BoltReader.StructHandlers); var real = reader.ReadString(); real.Should().Be("a"); mockInput.Verify(x => x.Read(It.IsAny <byte[]>(), It.IsAny <int>(), It.IsAny <int>()), Times.Exactly(3)); }
public void ShouldReadTinyStruct() { var mockInput = IOExtensions.CreateMockStream(0xB2); var reader = new PackStreamReader(mockInput.Object, BoltReader.StructHandlers); var header = reader.ReadStructHeader(); header.Should().Be(2); mockInput.Verify(x => x.ReadByte(), Times.Once); }
public void ShouldCallReadByteOnce() { var mockInput = IOExtensions.CreateMockStream(0xFF); var reader = new PackStreamReader(mockInput.Object, BoltReader.StructHandlers); var signature = reader.ReadStructSignature(); signature.Should().Be(0xFF); mockInput.Verify(x => x.Read(It.IsAny <byte[]>(), It.IsAny <int>(), It.IsAny <int>()), Times.Once); }
internal void ShouldPeekTypeCorrectly(byte marker, PackStream.PackType expected) { var mockInput = IOExtensions.CreateMockStream(marker); var reader = new PackStreamReader(mockInput.Object, BoltReader.StructHandlers); var nextType = reader.PeekNextType(); nextType.Should().Be(expected); mockInput.Verify(x => x.ReadByte(), Times.Once); }
public void ShouldThrowExceptionIfMarkerByteNotBytes() { var mockInput = IOExtensions.CreateMockStream(PackStream.False); var reader = new PackStreamReader(mockInput.Object, BoltReader.StructHandlers); var ex = Xunit.Record.Exception(() => reader.ReadBytes()); ex.Should().BeOfType <ProtocolException>(); mockInput.Verify(x => x.Read(It.IsAny <byte[]>(), It.IsAny <int>(), It.IsAny <int>()), Times.Once); }
public void ShouldReadBooleanFalseSuccessfully() { var mockInput = IOExtensions.CreateMockStream(PackStream.False); var reader = new PackStreamReader(mockInput.Object, BoltReader.StructHandlers); var real = reader.ReadBoolean(); real.Should().BeFalse(); mockInput.Verify(x => x.Read(It.IsAny <byte[]>(), It.IsAny <int>(), It.IsAny <int>()), Times.Once); }
public void ShouldThrowExceptionWhenReadBytes32ReturnsBytesSizeLonggerThanIntMax() { var mockInput = IOExtensions.CreateMockStream(PackStream.Bytes32, PackStreamBitConverter.GetBytes((int)-1)); var reader = new PackStreamReader(mockInput.Object, BoltReader.StructHandlers); var ex = Xunit.Record.Exception(() => reader.ReadBytes()); ex.Should().BeOfType <ProtocolException>(); mockInput.Verify(x => x.Read(It.IsAny <byte[]>(), It.IsAny <int>(), It.IsAny <int>()), Times.Exactly(2)); }
public void ShouldThrowExceptionIfMarkerByteUnDefined() { var mockInput = IOExtensions.CreateMockStream(PackStream.ReservedC4); var reader = new PackStreamReader(mockInput.Object, BoltReader.StructHandlers); var ex = Xunit.Record.Exception(() => reader.PeekNextType()); ex.Should().BeOfType <ProtocolException>(); mockInput.Verify(x => x.ReadByte(), Times.Once); }
public void ShouldReadTinyStringAsEmptyString() { var mockInput = IOExtensions.CreateMockStream(PackStream.TinyString); var reader = new PackStreamReader(mockInput.Object, BoltReader.StructHandlers); var real = reader.ReadString(); real.Should().BeEmpty(); //.Equals(String.Empty); mockInput.Verify(x => x.Read(It.IsAny <byte[]>(), It.IsAny <int>(), It.IsAny <int>()), Times.Once); }
public void ShouldReadList8() { var mockInput = IOExtensions.CreateMockStream(PackStream.List8, (byte)1); var reader = new PackStreamReader(mockInput.Object, BoltReader.StructHandlers); var header = reader.ReadListHeader(); 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 void ShouldThrowWhenBytesIsSent() { var mockInput = IOExtensions.CreateMockStream("CC 01 01".ToByteArray()); var reader = new PackStreamReaderBytesIncompatible(mockInput.Object, BoltReader.StructHandlers); var ex = Record.Exception(() => reader.Read()); ex.Should().NotBeNull(); ex.Should().BeOfType <ProtocolException>(); }
public void ShouldReadLongAsSignedByte() { const sbyte expected = 1; var mockInput = IOExtensions.CreateMockStream(PackStream.Int8, (byte)expected); var reader = new PackStreamReader(mockInput.Object, BoltReader.StructHandlers); var real = (sbyte)reader.ReadLong(); real.Should().Be(expected); mockInput.Verify(x => x.Read(It.IsAny <byte[]>(), It.IsAny <int>(), It.IsAny <int>()), Times.Exactly(2)); }
public void ShouldReadStruct16() { var mockInput = IOExtensions.CreateMockStream(PackStream.Struct16, PackStreamBitConverter.GetBytes((short)1)); var reader = new PackStreamReader(mockInput.Object, BoltReader.StructHandlers); var header = reader.ReadStructHeader(); 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 void ShouldReadDoubleCorrectly() { const double expected = 1.12; var mockInput = IOExtensions.CreateMockStream(PackStream.Float64, PackStreamBitConverter.GetBytes(expected)); var reader = new PackStreamReader(mockInput.Object, BoltReader.StructHandlers); var real = reader.ReadDouble(); real.Should().Be(expected); mockInput.Verify(x => x.Read(It.IsAny <byte[]>(), It.IsAny <int>(), It.IsAny <int>()), Times.Exactly(2)); }
public void ShouldReadLongAsInt() { const int expected = 1024; var mockInput = IOExtensions.CreateMockStream(PackStream.Int32, PackStreamBitConverter.GetBytes(expected)); var reader = new PackStreamReader(mockInput.Object, BoltReader.StructHandlers); var real = reader.ReadLong(); real.Should().Be(expected); mockInput.Verify(x => x.Read(It.IsAny <byte[]>(), It.IsAny <int>(), It.IsAny <int>()), Times.Exactly(2)); }
public void ShouldReadFailureMessage() { var mockInput = IOExtensions.CreateMockStream("00 47 B1 7F A2 84 63 6F 64 65 D0 25 4E 65 6F 2E 43 6C 69 65 6E 74 45 72 72 6F 72 2E 53 74 61 74 65 6D 65 6E 74 2E 53 79 6E 74 61 78 45 72 72 6F 72 87 6D 65 73 73 61 67 65 8F 49 6E 76 61 6C 69 64 20 73 79 6E 74 61 78 2E 00 00"); var mockResponseHandler = new Mock <IMessageResponseHandler>(); var reader = new BoltReader(mockInput.Object); reader.Read(mockResponseHandler.Object); mockResponseHandler.Verify(x => x.HandleFailureMessage("Neo.ClientError.Statement.SyntaxError", "Invalid syntax."), Times.Once); }
public void ShouldReadBytes8() { var mockInput = IOExtensions.CreateMockStream(PackStream.Bytes8, 1, 0x61); var reader = new PackStreamReader(mockInput.Object, BoltReader.StructHandlers); var real = reader.ReadBytes(); real.Length.Should().Be(1); real.Should().Contain(0x61); mockInput.Verify(x => x.Read(It.IsAny <byte[]>(), It.IsAny <int>(), It.IsAny <int>()), Times.Exactly(3)); }
public void ShouldReadString32() { var mockInput = IOExtensions.CreateMockStream(new byte[] { PackStream.String32 }, PackStreamBitConverter.GetBytes((int)1), new byte[] { 0x61 }); var reader = new PackStreamReader(mockInput.Object, BoltReader.StructHandlers); var real = reader.ReadString(); real.Should().Be("a"); mockInput.Verify(x => x.Read(It.IsAny <byte[]>(), It.IsAny <int>(), It.IsAny <int>()), Times.Exactly(3)); }
public void ShouldReadIgnoredMessage() { var mockInput = IOExtensions.CreateMockStream("00 02 B0 7E 00 00"); var mockResponseHandler = new Mock <IMessageResponseHandler>(); var reader = new BoltReader(mockInput.Object); reader.Read(mockResponseHandler.Object); mockResponseHandler.Verify(x => x.HandleIgnoredMessage(), Times.Once); }
public void ShouldReadBytes16() { var mockInput = IOExtensions.CreateMockStream(new byte[] { PackStream.Bytes16 }, PackStreamBitConverter.GetBytes((short)1), new byte[] { 0x61 }); var reader = new PackStreamReader(mockInput.Object, BoltReader.StructHandlers); var real = reader.ReadBytes(); real.Length.Should().Be(1); real.Should().Contain(0x61); mockInput.Verify(x => x.Read(It.IsAny <byte[]>(), It.IsAny <int>(), It.IsAny <int>()), Times.Exactly(3)); }
public void ShouldThrowExceptionWhenTheresNoBytesToPeek() { var mockInput = IOExtensions.CreateMockStream(new byte[0]); var reader = new PackStreamReader(mockInput.Object, BoltReader.StructHandlers); var ex = Record.Exception(() => reader.PeekByte()); ex.Should().BeOfType <ProtocolException>(); mockInput.Verify(x => x.Length, Times.Once); mockInput.Verify(x => x.Position, Times.Once); mockInput.Verify(x => x.Seek(-1, SeekOrigin.Current), Times.Never); }