Exemplo n.º 1
0
        internal static T Get <T>(Guid identifier) where T : class, IDataObject
        {
            BoltGraphClient graphClient = GetGraphClient();

            {
                var inputString = string.Format("({0}:{1})", "record", typeof(T).Name);
                var query       = graphClient.Cypher
                                  .Match(inputString)
                                  .Where((T record) => record.Id == identifier)
                                  .Return(record => record.As <T>());
                int failed = 0;
                while (failed < numberOfRetry)
                {
                    try
                    {
                        return(query.Results.FirstOrDefault());
                    }
                    catch (Exception e)
                    {
                        failed++;
                        if (failed == numberOfRetry)
                        {
                            throw;
                        }
                        Thread.Sleep(sleepBeforeRetry);
                    }
                }
            }
            return(null);
        }
Exemplo n.º 2
0
        internal static IList <T> GetAll <T>() where T : class, IDataObject
        {
            BoltGraphClient graphClient = GetGraphClient();

            {
                var query = graphClient.Cypher
                            .Match($"(record:{typeof(T).Name})")
                            .Return(record => record.As <T>());
                int failed = 0;
                while (failed < numberOfRetry)
                {
                    try
                    {
                        return(query.Results.ToList());
                    }
                    catch (Exception e)
                    {
                        failed++;
                        if (failed == numberOfRetry)
                        {
                            throw;
                        }
                        Thread.Sleep(sleepBeforeRetry);
                    }
                }
            }
            return(new List <T>());
        }
Exemplo n.º 3
0
        static bool Create <T>(T record) where T : IDataObject
        {
            BoltGraphClient graphClient = GetGraphClient();

            {
                var variableName = record.GetType().Name.ToLower();
                var inputString  = $"({variableName}:{record.GetType().Name}";
                inputString += " { newRecord })";
                var query = graphClient.Cypher
                            .Create(inputString)
                            .SetLabels(variableName, record.Labels())
                            .WithParam("newRecord", record);
                int failed = 0;
                while (failed < numberOfRetry)
                {
                    try
                    {
                        query.ExecuteWithoutResults();
                        return(true);
                    }
                    catch (Exception e)
                    {
                        failed++;
                        if (failed == numberOfRetry)
                        {
                            throw;
                        }
                        Thread.Sleep(sleepBeforeRetry);
                    }
                }
            }
            return(false);
        }
Exemplo n.º 4
0
        //Issue from https://github.com/DotNet4Neo4j/Neo4jClient/issues/385
        public async Task SerializerShouldTakeIntoAccountTheContractResolverProvided()
        {
            var mockSession = new Mock <IAsyncSession>();

            mockSession.Setup(s => s.RunAsync("CALL dbms.components()")).Returns(Task.FromResult <IResultCursor>(new ServerInfo()));

            var mockDriver = new Mock <IDriver>();

            mockDriver.Setup(d => d.AsyncSession(It.IsAny <Action <SessionConfigBuilder> >())).Returns(mockSession.Object);

            var bgc = new BoltGraphClient(mockDriver.Object);

            bgc.JsonContractResolver = new CamelCasePropertyNamesContractResolver();
            await bgc.ConnectAsync();

            var cwa = new ClassWithSomeNeo4jIgnoreAttributes {
                Text = "foo"
            };
            var cfq = bgc.Cypher.Create("(c)").WithParam("testParam", cwa);
            var expectedParameters = new Dictionary <string, object> {
                { "testParam", new Dictionary <string, object> {
                      { "text", "foo" }, { "testInt", 0 }
                  } }
            };

            var query = cfq.Query;

            query.ToNeo4jDriverParameters(bgc).IsEqualTo(expectedParameters).Should().BeTrue();
        }
Exemplo n.º 5
0
        public IRawGraphClient CreateAndConnectBoltGraphClient()
        {
            var bgc = new BoltGraphClient(MockDriver.Object);

            bgc.Connect();
            return(bgc);
        }
Exemplo n.º 6
0
        public void SerializesDateTimesProperly()
        {
            var mockSession = new Mock <ISession>();

            mockSession.Setup(s => s.Run("CALL dbms.components()")).Returns(new ServerInfo());

            var mockDriver = new Mock <IDriver>();

            mockDriver.Setup(d => d.Session(It.IsAny <AccessMode>())).Returns(mockSession.Object);
            mockDriver.Setup(d => d.Session(It.IsAny <AccessMode>(), It.IsAny <IEnumerable <string> >())).Returns(mockSession.Object);
            mockDriver.Setup(d => d.Uri).Returns(new Uri("bolt://localhost"));

            var bgc = new BoltGraphClient(mockDriver.Object);

            bgc.Connect();

            var cwd = new ClassWithDateTime {
                Dt = new DateTime(2000, 1, 1)
            };;

            var cfq = bgc.Cypher.Create("(c)").WithParam("testParam", cwd);

            var expectedParameters = new Dictionary <string, object>
            {
                {
                    "testParam", new Dictionary <string, object> {
                        { "Dt", JsonConvert.SerializeObject(cwd.Dt).Trim('\"') }
                    }
                }
            };

            var query = cfq.Query;

            query.ToNeo4jDriverParameters(bgc).IsEqualTo(expectedParameters).Should().BeTrue();
        }
Exemplo n.º 7
0
        public void SerializesGuidsProperlyWhenAutoGeneratingParams()
        {
            var mockSession = new Mock <ISession>();

            mockSession.Setup(s => s.Run("CALL dbms.components()")).Returns(new ServerInfo());

            var mockDriver = new Mock <IDriver>();

            mockDriver.Setup(d => d.Session(It.IsAny <AccessMode>())).Returns(mockSession.Object);
            mockDriver.Setup(d => d.Session(It.IsAny <AccessMode>(), It.IsAny <IEnumerable <string> >())).Returns(mockSession.Object);
            mockDriver.Setup(d => d.Uri).Returns(new Uri("bolt://localhost"));

            var bgc = new BoltGraphClient(mockDriver.Object);

            bgc.Connect();

            var cwg = new ClassWithGuid();

            var cfq = bgc.Cypher.Create("(c)").Where((ClassWithGuid c) => c.Id == cwg.Id);

            var expectedParameters = new Dictionary <string, object> {
                { "p0", $"{cwg.Id}" }
            };

            var query = cfq.Query;

            query.ToNeo4jDriverParameters(bgc).IsEqualTo(expectedParameters).Should().BeTrue();
        }
Exemplo n.º 8
0
                public async Task ReturnsQueryStats_WhenInTransaction()
                {
                    BoltClientTestHelper.GetDriverAndSession(out var mockDriver, out _, out _);

                    bool       completedRaised = false;
                    QueryStats stats           = null;

                    var client = new BoltGraphClient(mockDriver);

                    client.OperationCompleted += (o, e) =>
                    {
                        stats           = e.QueryStats;
                        completedRaised = true;
                    };


                    await client.ConnectAsync();

                    using (var tx = client.BeginTransaction())
                    {
                        await client.Cypher.WithQueryStats.Match("n").Return(n => n.Count()).ExecuteWithoutResultsAsync();

                        completedRaised.Should().BeTrue();
                        stats.Should().NotBeNull();
                    }
                }
Exemplo n.º 9
0
        //[Description("test bolt part of https://github.com/Readify/Neo4jClient/issues/336  https://github.com/Readify/Neo4jClient/pull/337 - see UserSuppliedSerializationTests for https part")]
        public void JsonSerializerShouldNotSerializeNeo4JIgnoreAttribute()
        {
            var mockSession = new Mock <ISession>();

            mockSession.Setup(s => s.Run("CALL dbms.components()")).Returns(new ServerInfo());

            var mockDriver = new Mock <IDriver>();

            mockDriver.Setup(d => d.Session(It.IsAny <AccessMode>())).Returns(mockSession.Object);
            mockDriver.Setup(d => d.Session(It.IsAny <AccessMode>(), It.IsAny <IEnumerable <string> >())).Returns(mockSession.Object);
            mockDriver.Setup(d => d.Uri).Returns(new Uri("bolt://localhost"));

            var bgc = new BoltGraphClient(mockDriver.Object);

            bgc.Connect();

            var cwa = new ClasseWithSomeNeo4JIgnoreAttributes()
            {
                Text = "foo", TextIgnore = "fooignore", TestInt = 42, TestNeo4jIntIgnore = 42, TestJsonIntgnore = 42
            };

            var cfq = bgc.Cypher.Create("(c)").WithParam("testParam", cwa);

            var expectedParameters = new Dictionary <string, object>
            {
                { "testParam", new Dictionary <string, object> {
                      { "Text", "foo" }, { "TestInt", 42 }
                  } }
            };

            var query = cfq.Query;

            query.ToNeo4jDriverParameters(bgc).IsEqualTo(expectedParameters).Should().BeTrue();
        }
Exemplo n.º 10
0
        public async Task SerializesDateTimeOffsetsProperly()
        {
            var mockSession = new Mock <IAsyncSession>();

            mockSession.Setup(s => s.RunAsync("CALL dbms.components()")).Returns(Task.FromResult <IResultCursor>(new ServerInfo()));

            var mockDriver = new Mock <IDriver>();

            mockDriver.Setup(d => d.AsyncSession(It.IsAny <Action <SessionConfigBuilder> >())).Returns(mockSession.Object);

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

            var cwd = new ClassWithDateTimeOffset {
                Dt = new DateTimeOffset(new DateTime(2000, 1, 1), TimeSpan.FromHours(1))
            };;

            var cfq = bgc.Cypher.Create("(c)").WithParam("testParam", cwd);

            var expectedParameters = new Dictionary <string, object>
            {
                {
                    "testParam", new Dictionary <string, object> {
                        { "Dt", JsonConvert.SerializeObject(cwd.Dt).Trim('\"') }
                    }
                }
            };

            var query = cfq.Query;

            query.ToNeo4jDriverParameters(bgc).IsEqualTo(expectedParameters).Should().BeTrue();
        }
Exemplo n.º 11
0
        public Neo4jDataService()
        {
            Client = new BoltGraphClient(new Uri(ServerAddress),
                                         User, Password);

            Client.Connect();
        }
Exemplo n.º 12
0
        public async Task SerializesGuidsProperlyWhenAutoGeneratingParams()
        {
            var mockSession = new Mock <IAsyncSession>();

            mockSession.Setup(s => s.RunAsync("CALL dbms.components()")).Returns(Task.FromResult <IResultCursor>(new ServerInfo()));

            var mockDriver = new Mock <IDriver>();

            mockDriver.Setup(d => d.AsyncSession(It.IsAny <Action <SessionConfigBuilder> >())).Returns(mockSession.Object);

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

            var cwg = new ClassWithGuid();

            var cfq = bgc.Cypher.Create("(c)").Where((ClassWithGuid c) => c.Id == cwg.Id);

            var expectedParameters = new Dictionary <string, object> {
                { "p0", $"{cwg.Id}" }
            };

            var query = cfq.Query;

            query.ToNeo4jDriverParameters(bgc).IsEqualTo(expectedParameters).Should().BeTrue();
        }
Exemplo n.º 13
0
        public void SerializesGuidsProperlyWhenAutoGeneratingParams()
        {
            var mockSession = new Mock <ISession>();

            mockSession.Setup(s => s.Run("CALL dbms.components()")).Returns(new ServerInfo());

            var mockDriver = new Mock <IDriver>();

            mockDriver.Setup(d => d.Session(It.IsAny <AccessMode>())).Returns(mockSession.Object);
            mockDriver.Setup(d => d.Uri).Returns(new Uri("bolt://localhost"));

            var bgc = new BoltGraphClient(mockDriver.Object);

            bgc.Connect();

            var cwg = new ClassWithGuid();

            bgc.Cypher.Create("(c)").Where((ClassWithGuid c) => c.Id == cwg.Id).ExecuteWithoutResults();

            var expectedParameters = new Dictionary <string, object> {
                { "p0", $"\"{cwg.Id}\"" }
            };

            mockSession.Verify(x => x.Run("CREATE (c)\r\nWHERE (c.Id = {p0})", It.Is <IDictionary <string, object> >(c => CompareDictionaries(c, expectedParameters))), Times.Once);
        }
Exemplo n.º 14
0
        private static async Task SerializesObjectProperlyWitDifferentStrategies(IDictionary <string, object> expectedParameters, Action <BoltGraphClient> setupClient)
        {
            var mockSession = new Mock <IAsyncSession>();

            mockSession.Setup(s => s.RunAsync("CALL dbms.components()"))
            .Returns(Task.FromResult <IResultCursor>(new ServerInfo()));

            var mockDriver = new Mock <IDriver>();

            mockDriver.Setup(d => d.AsyncSession(It.IsAny <Action <SessionConfigBuilder> >())).Returns(mockSession.Object);

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

            setupClient(bgc);

            var obj = new
            {
                Param1 = 1,
                Param2 = (object)null
            };

            var cfq = bgc.Cypher.Create("MATCH (node:FakeNode) SET node += $param").WithParam("param", obj);

            var query = cfq.Query;
            var t     = query.ToNeo4jDriverParameters(bgc);

            t.IsEqualTo(expectedParameters).Should().BeTrue();
        }
Exemplo n.º 15
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 <IAsyncSession>();

            sessionMock
            .Setup(s => s.RunAsync("CALL dbms.components()"))
            .Returns(Task.FromResult <IResultCursor>(testSr));

            var driverMock = new Mock <IDriver>();

            driverMock.Setup(d => d.AsyncSession(It.IsAny <Action <SessionConfigBuilder> >())).Returns(sessionMock.Object);


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

            bgc.ServerVersion.Should().Be(new Version(3, 2, 3));
        }
Exemplo n.º 16
0
            public void UsesAddressResolverWhenPassingInMultipleUris(string scheme)
            {
                var bgc      = new BoltGraphClient($"{scheme}://virtual.foo.com", new[] { "x.foo.com", "y.foo.com" });
                var resolved = bgc.AddressResolver.Resolve(null);

                resolved.Should().HaveCount(2);
            }
        public async Task <IActionResult> OnGet()
        {
            int  idLog;
            bool log = int.TryParse(HttpContext.Session.GetString("idKorisnik"), out idLog);

            if (log)
            {
                try
                {
                    client = DataLayer.Neo4jManager.GetClient();

                    var             queryKorisnik = new Neo4jClient.Cypher.CypherQuery("MATCH (s) WHERE s.ID = " + idLog + " RETURN s", new Dictionary <string, object>(), CypherResultMode.Set);
                    List <Korisnik> korisnici     = ((IRawGraphClient)client).ExecuteGetCypherResults <Korisnik>(queryKorisnik).ToList();
                    Korisnik    = korisnici[0];
                    idKorisnika = Korisnik.ID;

                    var queryZaObjaveKorisnika1 = new Neo4jClient.Cypher.CypherQuery("match (n)-[r:KORISNIKKORISNIK]->(m) where n.ID = " + Korisnik.ID + " and r.Prijatelj=true and r.Blokiran=true return r {Korisnik1:n, Korisnik2:m}", new Dictionary <string, object>(), CypherResultMode.Set);
                    var pomocno = ((IRawGraphClient)client).ExecuteGetCypherResults <KorisnikKorisnik>(queryZaObjaveKorisnika1);
                    Prijatelji = pomocno.ToList();
                }
                catch (Exception exc)
                {
                    Console.WriteLine("greska2");
                }
                return(Page());
            }
            else
            {
                return(RedirectToPage("../Index"));
            }
        }
Exemplo n.º 18
0
        internal static bool Delete <T>(T entry) where T : IDataObject
        {
            BoltGraphClient graphClient = GetGraphClient();

            {
                var entryId     = entry.Id;
                var inputString = $"(record:{entry.GetType().Name})";
                var query       = graphClient.Cypher
                                  .Match(inputString)
                                  .Where((T record) => record.Id == entryId)
                                  .Delete("record");

                int failed = 0;
                while (failed < numberOfRetry)
                {
                    try
                    {
                        query.ExecuteWithoutResults();
                        return(true);
                    }
                    catch (Exception e)
                    {
                        failed++;
                        if (failed == numberOfRetry)
                        {
                            throw;
                        }
                        Thread.Sleep(sleepBeforeRetry);
                    }
                }
            }
            return(false);
        }
Exemplo n.º 19
0
        public void SerializesGuidsProperly()
        {
            var mockSession = new Mock <ISession>();

            mockSession.Setup(s => s.Run("CALL dbms.components()")).Returns(new ServerInfo());

            var mockDriver = new Mock <IDriver>();

            mockDriver.Setup(d => d.Session(It.IsAny <AccessMode>())).Returns(mockSession.Object);
            mockDriver.Setup(d => d.Session(It.IsAny <AccessMode>(), It.IsAny <IEnumerable <string> >())).Returns(mockSession.Object);
            mockDriver.Setup(d => d.Uri).Returns(new Uri("bolt://localhost"));

            var bgc = new BoltGraphClient(mockDriver.Object);

            bgc.Connect();

            var cwg = new ClassWithGuid();

            var cfq = bgc.Cypher.Create("(c)").WithParam("testParam", cwg);

            var expectedParameters = new Dictionary <string, object>
            {
                { "testParam", new Dictionary <string, object> {
                      { "Id", cwg.Id.ToString() }
                  } }
            };

            var query = cfq.Query;

            CompareDictionaries(query.ToNeo4jDriverParameters(bgc), expectedParameters).Should().BeTrue();
        }
Exemplo n.º 20
0
        public void SerializesDateTimesProperly()
        {
            var mockSession = new Mock <ISession>();

            mockSession.Setup(s => s.Run("CALL dbms.components()")).Returns(new ServerInfo());

            var mockDriver = new Mock <IDriver>();

            mockDriver.Setup(d => d.Session(It.IsAny <AccessMode>())).Returns(mockSession.Object);
            mockDriver.Setup(d => d.Uri).Returns(new Uri("bolt://localhost"));

            var bgc = new BoltGraphClient(mockDriver.Object);

            bgc.Connect();

            var cwd = new ClassWithDateTime {
                Dt = new DateTime(2000, 1, 1)
            };;

            bgc.Cypher.Create("(c)").WithParam("testParam", cwd).ExecuteWithoutResults();

            var expectedParameters = new Dictionary <string, object>
            {
                {
                    "testParam", new Dictionary <string, object> {
                        { "Dt", JsonConvert.SerializeObject(cwd.Dt).Trim('\"') }
                    }
                }
            };

            mockSession.Verify(x => x.Run("CREATE (c)", It.Is <IDictionary <string, object> >(c => CompareDictionaries(c, expectedParameters))), Times.Once);
        }
Exemplo n.º 21
0
        public async Task <IActionResult> OnPostDislajk(int?id)
        {
            int  idLog;
            bool log = int.TryParse(HttpContext.Session.GetString("idKorisnik"), out idLog);

            if (log)
            {
                try
                {
                    client = DataLayer.Neo4jManager.GetClient();

                    var query2 = new Neo4jClient.Cypher.CypherQuery("MATCH (a:Korisnik)-[r:KORISNIKOBJAVA]->(b:Objava) WHERE a.ID = " + HttpContext.Session.GetString("idKorisnik") + " and b.ID=" + id + " return b",
                                                                    new Dictionary <string, object>(), CypherResultMode.Set);
                    List <Objava> o = ((IRawGraphClient)client).ExecuteGetCypherResults <Objava>(query2).ToList();

                    if (o != null && o.Count != 0)
                    {
                        var query3 = new Neo4jClient.Cypher.CypherQuery("MATCH (a:Korisnik)-[r:KORISNIKOBJAVA]->(b:Objava) WHERE a.ID = " + HttpContext.Session.GetString("idKorisnik") + " and b.ID=" + id + " set r.Lajkovao=false set b.Lajkova = " + (o[0].Lajkova - 1),
                                                                        new Dictionary <string, object>(), CypherResultMode.Set);
                        ((IRawGraphClient)client).ExecuteGetCypherResults <Objava>(query3);
                    }
                }
                catch (Exception exc)
                {
                    Console.WriteLine("greska");
                }
                return(RedirectToPage());
            }
            else
            {
                return(RedirectToPage("../Index"));
            }
        }
Exemplo n.º 22
0
        public List <long> CalcDepth(int depth)
        {
            List <long> esecList = new List <long>();

            using (var client = new BoltGraphClient("bolt://localhost:7687", "neo4j", "test1234"))
            {
                client.Connect();
                for (int i = 0; i < RandomIdList.Count; i++)
                {
                    stopwatch.Reset();
                    stopwatch.Start();
                    var query = client.Cypher
                                .Match("(a:person {pid:" + RandomIdList[i] + "})-[:Endorsments*1.." + depth + "]->(b:person)")
                                .Return((b) => new {
                        Person = b.As <PersonCLR>()
                    });
                    var res = query.Results;

                    stopwatch.Stop();
                    esecList.Add(stopwatch.ElapsedMilliseconds);
                    //I've left this line of code inhere should you want to verify
                    //System.Console.WriteLine($"\nFound relationships : {res.Count()} for person with id : {RandomIdList[i]}" );
                }
            }
            return(esecList);
        }
Exemplo n.º 23
0
        public int BrojPratilaca()
        {
            client = DataLayer.Neo4jManager.GetClient();
            var queryKorisnik = new Neo4jClient.Cypher.CypherQuery("MATCH (n)<-[r:KORISNIKKORISNIK]-(m) WHERE n.ID=" + Korisnik.ID + " and r.Pratilac=true RETURN count(m) as count", new Dictionary <string, object>(), CypherResultMode.Set);
            int rez           = ((IRawGraphClient)client).ExecuteGetCypherResults <int>(queryKorisnik).FirstOrDefault();

            return(rez);
        }
Exemplo n.º 24
0
        public async Task <IRawGraphClient> CreateAndConnectBoltGraphClient()
        {
            var bgc = new BoltGraphClient(MockDriver.Object);
            await bgc.ConnectAsync();

            MockDriver.Invocations.Clear();
            return(bgc);
        }
Exemplo n.º 25
0
        private String getId(string nam, string pass)
        {
            client = DataLayer.Neo4jManager.GetClient();
            var query = new Neo4jClient.Cypher.CypherQuery("match (n:Korisnik) where n.Email='" + nam + "' and n.Sifra='" + pass + "' return n.ID",
                                                           new Dictionary <string, object>(), CypherResultMode.Set);

            return(((IRawGraphClient)client).ExecuteGetCypherResults <String>(query).ToList().FirstOrDefault());
        }
Exemplo n.º 26
0
 static BoltGraphClient GetGraphClient()
 {
     if (cachedGraphClient == null)
     {
         cachedGraphClient = CoreGetGraphClient();
     }
     return(cachedGraphClient);
 }
Exemplo n.º 27
0
        public async Task SetIsConnected()
        {
            var driverMock = DriverTestHelper.MockDriverWithConnectionSet();

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

            bgc.IsConnected.Should().BeTrue();
        }
Exemplo n.º 28
0
        public void GetNode_ThrowsInvalidOperationException()
        {
            var bgc = new BoltGraphClient(DriverTestHelper.MockDriverWithConnectionSet().Object);
            var ex  = Record.Exception(() => bgc.Get(new NodeReference <string>(1)));

            ex.Should().NotBeNull();
            ex.Should().BeOfType <InvalidOperationException>();
            ex.Message.Should().Be(BoltGraphClient.NotValidForBolt);
        }
Exemplo n.º 29
0
        public void Create_ThrowsInvalidOperationException()
        {
            var bgc = new BoltGraphClient(DriverTestHelper.MockDriverWithConnectionSet().Object);
            var ex  = Record.Exception(() => bgc.Create("value", null));

            ex.Should().NotBeNull();
            ex.Should().BeOfType <InvalidOperationException>();
            ex.Message.Should().Be(BoltGraphClient.NotValidForBolt);
        }
Exemplo n.º 30
0
        public async Task GetAsync_RelationReference_ThrowsInvalidOperationException()
        {
            var bgc = new BoltGraphClient(DriverTestHelper.MockDriverWithConnectionSet().Object);
            var ex  = await Record.ExceptionAsync(() => bgc.GetAsync <TestNode>(new RelationshipReference <TestNode>(1)));

            ex.Should().NotBeNull();
            ex.Should().BeOfType <InvalidOperationException>();
            ex.Message.Should().Be(BoltGraphClient.NotValidForBolt);
        }