public void ArgsContainLastBookmark()
            {
                const string lastBookmark = "LastBookmark";

                const string queryText = "RETURN [] AS data";

                var queryParams = new Dictionary <string, object>();

                var cypherQuery = new CypherQuery(queryText, queryParams, CypherResultMode.Set, CypherResultFormat.Transactional);

                using (var testHarness = new BoltTestHarness())
                {
                    var recordMock = new Mock <IRecord>();
                    recordMock.Setup(r => r["data"]).Returns(new List <INode>());
                    recordMock.Setup(r => r.Keys).Returns(new[] { "data" });

                    testHarness.MockSession.Setup(s => s.LastBookmark).Returns(lastBookmark);

                    var testStatementResult = new TestStatementResult(new[] { "data" }, recordMock.Object);
                    testHarness.SetupCypherRequestResponse(cypherQuery.QueryText, cypherQuery.QueryParameters, testStatementResult);

                    var graphClient = testHarness.CreateAndConnectBoltGraphClient();
                    graphClient.OperationCompleted += (s, e) => { e.LastBookmark.Should().Be(lastBookmark); };

                    graphClient.ExecuteGetCypherResults <IEnumerable <ObjectWithIds> >(cypherQuery);
                }
            }
Beispiel #2
0
        public async Task SkipsOverExtraFieldsInDbmsComponents()
        {
            const string uri = "bolt://localhost";

            var record1Mock = new Mock <IRecord>();

            record1Mock.Setup(r => r["name"]).Returns("another-value");

            var record2Mock = new Mock <IRecord>();

            record2Mock.Setup(r => r["name"]).Returns("neo4j kernel");
            record2Mock.Setup(r => r["versions"]).Returns(new List <object> {
                "3.2.3"
            });

            var testSr      = new TestStatementResult(new[] { record1Mock.Object, record2Mock.Object });
            var sessionMock = new Mock <ISession>();

            sessionMock
            .Setup(s => s.Run("CALL dbms.components()"))
            .Returns(testSr);

            var driverMock = new Mock <IDriver>();

            driverMock.Setup(d => d.Session(It.IsAny <AccessMode>())).Returns(sessionMock.Object);
            driverMock.Setup(d => d.Session()).Returns(sessionMock.Object);
            driverMock.Setup(d => d.Uri).Returns(new Uri(uri));

            var bgc = new BoltGraphClient(driverMock.Object);
            await bgc.ConnectAsync();

            bgc.ServerVersion.Should().Be(new Version(3, 2, 3));
        }
            public void ArgsContainBookmarksUsed()
            {
                // Arrange
                var bookmarks = new List <string> {
                    "Bookmark1", "Bookmark2"
                };

                const string queryText = "RETURN [] AS data";

                var queryParams = new Dictionary <string, object>();

                var cypherQuery = new CypherQuery(queryText, queryParams, CypherResultMode.Set, CypherResultFormat.Transactional)
                {
                    Bookmarks = bookmarks
                };

                using (var testHarness = new BoltTestHarness())
                {
                    var recordMock = new Mock <IRecord>();
                    recordMock.Setup(r => r["data"]).Returns(new List <INode>());
                    recordMock.Setup(r => r.Keys).Returns(new[] { "data" });

                    var testStatementResult = new TestStatementResult(new[] { "data" }, recordMock.Object);
                    testHarness.SetupCypherRequestResponse(cypherQuery.QueryText, cypherQuery.QueryParameters, testStatementResult);

                    var graphClient = testHarness.CreateAndConnectBoltGraphClient();
                    graphClient.OperationCompleted += (s, e) =>
                    {
                        e.BookmarksUsed.Should().Contain(bookmarks[0]);
                        e.BookmarksUsed.Should().Contain(bookmarks[1]);
                    };

                    graphClient.ExecuteGetCypherResults <IEnumerable <ObjectWithIds> >(cypherQuery);
                }
            }
Beispiel #4
0
        public static Mock <IDriver> MockDriverWithConnectionSet()
        {
            const string uri        = "bolt://localhost";
            var          recordMock = new Mock <IRecord>();

            recordMock.Setup(r => r["name"]).Returns("neo4j kernel");
            recordMock.Setup(r => r["versions"]).Returns(new List <object> {
                "3.2.3"
            });

            var testSr      = new TestStatementResult(new[] { recordMock.Object });
            var sessionMock = new Mock <ISession>();

            sessionMock
            .Setup(s => s.Run("CALL dbms.components()"))
            .Returns(testSr);

            var driverMock = new Mock <IDriver>();

            driverMock.Setup(d => d.Session(It.IsAny <AccessMode>())).Returns(sessionMock.Object);
            driverMock.Setup(d => d.Session()).Returns(sessionMock.Object);
            driverMock.Setup(d => d.Uri).Returns(new Uri(uri));
            return(driverMock);
        }