public void ShouldUnpackZeroLenghPathCorrectly()
                    {
                        // A
                        var bytes =
                            "00 2C B3 50 91 B3 4E C9 03 E9    92 86 50 65 72 73 6F 6E    88 45 6D 70 6C 6F 79 65    65 A2 84 6E 61 6D 65 85 41 6C 69 63 65 83 61 67    65 21 90 90 00 00"
                            .ToByteArray();
                        var mockTcpSocketClient = new Mock <ITcpSocketClient>();

                        SetupClientReadStream(mockTcpSocketClient, bytes);

                        PackStreamMessageFormatV1.ReaderV1 reader = (PackStreamMessageFormatV1.ReaderV1)
                                                                    new PackStreamMessageFormatV1(mockTcpSocketClient.Object, null).Reader;
                        var   path = reader.UnpackValue();
                        IPath p    = path as IPath;

                        p.Should().NotBeNull();

                        p.Start.Should().NotBeNull();
                        p.End.Should().NotBeNull();
                        p.Start.Equals(TestNodes.Alice).Should().BeTrue();
                        p.End.Equals(TestNodes.Alice).Should().BeTrue();

                        p.Nodes.Should().HaveCount(1);
                        p.Relationships.Should().HaveCount(0);
                    }
                    public void ShouldUnpackPathWithLenghOneCorrectly()
                    {
                        // A->B
                        var bytes =
                            "00 66 B3 50 92 B3 4E C9 03 E9    92 86 50 65 72 73 6F 6E    88 45 6D 70 6C 6F 79 65    65 A2 84 6E 61 6D 65 85 41 6C 69 63 65 83 61 67    65 21 B3 4E C9 03 EA 92    86 50 65 72 73 6F 6E 88    45 6D 70 6C 6F 79 65 65 A2 84 6E 61 6D 65 83 42    6F 62 83 61 67 65 2C 91    B3 72 0C 85 4B 4E 4F 57    53 A1 85 73 69 6E 63 65 C9 07 CF 92 01 01 00 00"
                            .ToByteArray();
                        var mockTcpSocketClient = new Mock <ITcpSocketClient>();

                        SetupClientReadStream(mockTcpSocketClient, bytes);

                        PackStreamMessageFormatV1.ReaderV1 reader = (PackStreamMessageFormatV1.ReaderV1)
                                                                    new PackStreamMessageFormatV1(mockTcpSocketClient.Object, null).Reader;
                        var   path = reader.UnpackValue();
                        IPath p    = path as IPath;

                        p.Should().NotBeNull();

                        p.Nodes.Should().HaveCount(2);
                        p.Relationships.Should().HaveCount(1);

                        p.Start.Should().NotBeNull();
                        p.End.Should().NotBeNull();
                        p.Start.Equals(TestNodes.Alice).Should().BeTrue();
                        p.End.Equals(TestNodes.Bob).Should().BeTrue();

                        p.Relationships[0].Equals(TestRelationships.AliceKnowsBob).Should().BeTrue();
                    }
                public void ShouldPackBytes()
                {
                    var inputStreamMock = new Mock <IChunkedInputStream>();

                    inputStreamMock.SetupSequence(x => x.ReadByte()).Returns(PackStream.BYTES_8).Returns((byte)0x00);
                    var reader = new PackStreamMessageFormatV1.ReaderV1(inputStreamMock.Object);

                    var unpackValue = reader.UnpackValue(PackStream.PackType.Bytes).ValueAs <byte[]>();

                    unpackValue.Length.Should().Be(0);
                }
Beispiel #4
0
                    public void ShouldUnpackPathWithRelTraversedMulTimesInSameDirectionCorrectly()
                    {
                        // A->C->B<-A->C->D
                        var bytes =
                            "00 BE B35094B34EC903E99286506572736F6E88456D706C6F796565A2846E616D6585416C6963658361676521B34EC903EB9186506572736F6EA1846E616D65854361726F6CB34EC903EA9286506572736F6E88456D706C6F796565A2846E616D6583426F62836167652CB34EC903EC90A1846E616D65844461766594B3720D854C494B4553A0B37220884449534C494B4553A0B3720C854B4E4F5753A18573696E6365C907CFB372228A4D4152524945445F544FA09A01010202FD0001010403 00 00"
                            .ToByteArray();
                        var mockTcpSocketClient = new Mock <ITcpSocketClient>();

                        TestHelper.TcpSocketClientSetup.SetupClientReadStream(mockTcpSocketClient, bytes);

                        PackStreamMessageFormatV1.ReaderV1 reader = (PackStreamMessageFormatV1.ReaderV1)
                                                                    new PackStreamMessageFormatV1(mockTcpSocketClient.Object, new BigEndianTargetBitConverter(),
                                                                                                  null)
                                                                    .Reader;
                        var   path = reader.UnpackValue();
                        IPath p    = path as IPath;

                        p.Should().NotBeNull();

                        p.Nodes.Should().HaveCount(6);
                        p.Relationships.Should().HaveCount(5);

                        p.Start.Should().NotBeNull();
                        p.End.Should().NotBeNull();
                        p.Start.Equals(TestNodes.Alice).Should().BeTrue();
                        p.End.Equals(TestNodes.Dave).Should().BeTrue($"Got {p.End.Id}");

                        List <INode> correctOrder = new List <INode>
                        {
                            TestNodes.Alice,
                            TestNodes.Carol,
                            TestNodes.Bob,
                            TestNodes.Alice,
                            TestNodes.Carol,
                            TestNodes.Dave
                        };

                        p.Nodes.Should().ContainInOrder(correctOrder);

                        List <IRelationship> expectedRelOrder = new List <IRelationship>
                        {
                            TestRelationships.AliceLikesCarol,
                            TestRelationships.CarolDislikesBob,
                            TestRelationships.AliceKnowsBob,
                            TestRelationships.AliceLikesCarol,
                            TestRelationships.CarolMarriedToDave
                        };

                        p.Relationships.Should().ContainInOrder(expectedRelOrder);
                        p.Relationships[0].Equals(TestRelationships.AliceLikesCarol).Should().BeTrue();
                    }
                    public void ShouldUnpackPathWithNodeVisitedMulTimesCorrectly()
                    {
                        // A->B<-A->C->B<-C
                        var bytes =
                            "00 9E B35093B34EC903E99286506572736F6E88456D706C6F796565A2846E616D6585416C6963658361676521B34EC903EA9286506572736F6E88456D706C6F796565A2846E616D6583426F62836167652CB34EC903EB9186506572736F6EA1846E616D65854361726F6C93B3720C854B4E4F5753A18573696E6365C907CFB3720D854C494B4553A0B37220884449534C494B4553A09A0101FF0002020301FD02 00 00"
                            .ToByteArray();
                        var mockTcpSocketClient = new Mock <ITcpSocketClient>();

                        SetupClientReadStream(mockTcpSocketClient, bytes);

                        PackStreamMessageFormatV1.ReaderV1 reader = (PackStreamMessageFormatV1.ReaderV1)
                                                                    new PackStreamMessageFormatV1(mockTcpSocketClient.Object, null).Reader;
                        var   path = reader.UnpackValue();
                        IPath p    = path as IPath;

                        p.Should().NotBeNull();

                        p.Nodes.Should().HaveCount(6);
                        p.Relationships.Should().HaveCount(5);

                        p.Start.Should().NotBeNull();
                        p.End.Should().NotBeNull();
                        p.Start.Equals(TestNodes.Alice).Should().BeTrue();
                        p.End.Equals(TestNodes.Carol).Should().BeTrue($"Got {p.End.Id}");

                        List <INode> correctOrder = new List <INode>
                        {
                            TestNodes.Alice,
                            TestNodes.Bob,
                            TestNodes.Alice,
                            TestNodes.Carol,
                            TestNodes.Bob,
                            TestNodes.Carol
                        };

                        p.Nodes.Should().ContainInOrder(correctOrder);

                        List <IRelationship> expectedRelOrder = new List <IRelationship>
                        {
                            TestRelationships.AliceKnowsBob,
                            TestRelationships.AliceKnowsBob,
                            TestRelationships.AliceLikesCarol,
                            TestRelationships.CarolDislikesBob,
                            TestRelationships.CarolDislikesBob
                        };

                        p.Relationships.Should().ContainInOrder(expectedRelOrder);
                        p.Relationships[0].Equals(TestRelationships.AliceKnowsBob).Should().BeTrue();
                    }
Beispiel #6
0
                    public void ShouldUnpackPathWithLoopCorrectly()
                    {
                        // C->D->D
                        var bytes =
                            "00 50 B35092B34EC903EB9186506572736F6EA1846E616D65854361726F6CB34EC903EC90A1846E616D65844461766592B372228A4D4152524945445F544FA0B3722C89574F524B535F464F52A09401010201 00 00"
                            .ToByteArray();
                        var mockTcpSocketClient = new Mock <ITcpSocketClient>();

                        TestHelper.TcpSocketClientSetup.SetupClientReadStream(mockTcpSocketClient, bytes);

                        PackStreamMessageFormatV1.ReaderV1 reader = (PackStreamMessageFormatV1.ReaderV1)
                                                                    new PackStreamMessageFormatV1(mockTcpSocketClient.Object, new BigEndianTargetBitConverter(),
                                                                                                  null)
                                                                    .Reader;
                        var   path = reader.UnpackValue();
                        IPath p    = path as IPath;

                        p.Should().NotBeNull();

                        p.Nodes.Should().HaveCount(3);
                        p.Relationships.Should().HaveCount(2);

                        p.Start.Should().NotBeNull();
                        p.End.Should().NotBeNull();
                        p.Start.Equals(TestNodes.Carol).Should().BeTrue();
                        p.End.Equals(TestNodes.Dave).Should().BeTrue($"Got {p.End.Id}");

                        List <INode> correctOrder = new List <INode>
                        {
                            TestNodes.Carol,
                            TestNodes.Dave,
                            TestNodes.Dave
                        };

                        p.Nodes.Should().ContainInOrder(correctOrder);

                        List <IRelationship> expectedRelOrder = new List <IRelationship>
                        {
                            TestRelationships.CarolMarriedToDave,
                            TestRelationships.DaveWorksForDave,
                        };

                        p.Relationships.Should().ContainInOrder(expectedRelOrder);
                        p.Relationships[0].Equals(TestRelationships.CarolMarriedToDave).Should().BeTrue();
                    }
                    public void ShouldUnpackNodeCorrectly()
                    {
                        var bytes = "00 06 B3 4E 01 90 A0 00 00".ToByteArray();
                        var mockTcpSocketClient = new Mock <ITcpSocketClient>();

                        SetupClientReadStream(mockTcpSocketClient, bytes);

                        PackStreamMessageFormatV1.ReaderV1 reader = (PackStreamMessageFormatV1.ReaderV1)
                                                                    new PackStreamMessageFormatV1(mockTcpSocketClient.Object, null).Reader;
                        var   node = reader.UnpackValue();
                        INode n    = node as INode;

                        n.Should().NotBeNull();

                        n.Id.Should().Be(1);
                        n.Properties.Should().BeEmpty();
                        n.Labels.Should().BeEmpty();
                    }
                    public void ShouldUnpackRelationshipCorrectly()
                    {
                        var bytes = "00 07 B5 52 01 02 03 80 a0 00 00".ToByteArray();
                        var mockTcpSocketClient = new Mock <ITcpSocketClient>();

                        SetupClientReadStream(mockTcpSocketClient, bytes);

                        PackStreamMessageFormatV1.ReaderV1 reader = (PackStreamMessageFormatV1.ReaderV1)
                                                                    new PackStreamMessageFormatV1(mockTcpSocketClient.Object, null).Reader;
                        var           real = reader.UnpackValue();
                        IRelationship rel  = real 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();
                    }
                private void UnpackNumCorrectly(long expected, byte[] data)
                {
                    var mockTcpSocketClient = new Mock <ITcpSocketClient>();

                    List <byte> bytes = new List <byte>
                    {
                        0x00,
                        (byte)data.Length
                    };

                    bytes.AddRange(data);

                    SetupClientReadStream(mockTcpSocketClient, bytes.ToArray());

                    PackStreamMessageFormatV1.ReaderV1 reader = (PackStreamMessageFormatV1.ReaderV1)
                                                                new PackStreamMessageFormatV1(mockTcpSocketClient.Object, null).Reader;
                    var real = reader.UnpackValue();

                    Assert.Equal(expected, real);
                }
                    public void ShouldUnpackPathWithLenghTwoCorrectly()
                    {
                        // A->C->D
                        var bytes =
                            "00 73 B35093B34EC903E99286506572736F6E88456D706C6F796565A2846E616D6585416C6963658361676521B34EC903EB9186506572736F6EA1846E616D65854361726F6CB34EC903EC90A1846E616D65844461766592B3720D854C494B4553A0B372228A4D4152524945445F544FA09401010202 00 00"
                            .ToByteArray();
                        var mockTcpSocketClient = new Mock <ITcpSocketClient>();

                        SetupClientReadStream(mockTcpSocketClient, bytes);

                        PackStreamMessageFormatV1.ReaderV1 reader = (PackStreamMessageFormatV1.ReaderV1)
                                                                    new PackStreamMessageFormatV1(mockTcpSocketClient.Object, null)
                                                                    .Reader;
                        var   path = reader.UnpackValue();
                        IPath p    = path as IPath;

                        p.Should().NotBeNull();

                        p.Nodes.Should().HaveCount(3);
                        p.Relationships.Should().HaveCount(2);

                        p.Start.Should().NotBeNull();
                        p.End.Should().NotBeNull();
                        p.Start.Equals(TestNodes.Alice).Should().BeTrue();
                        p.End.Equals(TestNodes.Dave).Should().BeTrue($"Got {p.End.Id}");

                        List <INode> correctOrder = new List <INode> {
                            TestNodes.Alice, TestNodes.Carol, TestNodes.Dave
                        };

                        p.Nodes.Should().ContainInOrder(correctOrder);

                        p.Relationships[0].Equals(TestRelationships.AliceLikesCarol).Should().BeTrue();
                        List <IRelationship> expectedRelOrder = new List <IRelationship>
                        {
                            TestRelationships.AliceLikesCarol,
                            TestRelationships.CarolMarriedToDave
                        };

                        p.Relationships.Should().ContainInOrder(expectedRelOrder);
                    }
                    public void ShouldUnpackPathCorrectly()
                    {
                        var bytes = "00 0A B3 50 91 B3 4E 01 90 A0 90 90 A0 00 00".ToByteArray();
                        var mockTcpSocketClient = new Mock <ITcpSocketClient>();

                        SetupClientReadStream(mockTcpSocketClient, bytes);

                        PackStreamMessageFormatV1.ReaderV1 reader = (PackStreamMessageFormatV1.ReaderV1)
                                                                    new PackStreamMessageFormatV1(mockTcpSocketClient.Object, null).Reader;
                        var   path = reader.UnpackValue();
                        IPath p    = path 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);
                    }