public async Task ShouldThrowExceptionWhenTxConfigIsUsed() { var mockConn = new Mock <IConnection>(); var statement = new Statement("A cypher query"); var bookmarkTracker = new Mock <IBookmarkTracker>(); var resourceHandler = new Mock <IResultResourceHandler>(); var txConfig = new TransactionConfig { Timeout = TimeSpan.FromMinutes(1), Metadata = new Dictionary <string, object> { { "key1", "value1" } } }; mockConn.Setup(x => x.EnqueueAsync(It.IsAny <RunMessage>(), It.IsAny <V1.RunResponseHandler>(), PullAllMessage.PullAll, It.IsAny <V1.PullResponseHandler>())) .Callback <IRequestMessage, IResponseHandler, IRequestMessage, IResponseHandler>( (msg1, h1, msg2, h2) => { h1?.OnSuccess(new Dictionary <string, object>()); }); var error = await Xunit.Record.ExceptionAsync(() => BoltV1.RunInAutoCommitTransactionAsync(mockConn.Object, statement, true, bookmarkTracker.Object, resourceHandler.Object, null, txConfig)); error.Should().BeOfType <ArgumentException>(); error.Message.Should() .StartWith("Driver is connected to the database that does not support transaction configuration"); }
public async Task ResultBuilderShouldObtainServerInfoFromConnection() { var mockConn = new Mock <IConnection>(); var statement = new Statement("A cypher query"); var mockHandler = new Mock <IResultResourceHandler>(); mockConn.Setup(x => x.Enqueue(It.IsAny <IRequestMessage>(), It.IsAny <IMessageResponseCollector>(), PullAll)) .Callback <IRequestMessage, IMessageResponseCollector, IRequestMessage>( (msg1, h, msg2) => { h?.DoneSuccess(); }); await BoltV1.RunInAutoCommitTransactionAsync(mockConn.Object, statement, mockHandler.Object); mockConn.Verify(x => x.Server, Times.Once); }
public async Task ShouldEnqueueRunAndPullAllAndSend() { var mockConn = new Mock <IConnection>(); var statement = new Statement("A cypher query"); var mockHandler = new Mock <IResultResourceHandler>(); mockConn.Setup(x => x.Enqueue(It.IsAny <IRequestMessage>(), It.IsAny <IMessageResponseCollector>(), It.IsAny <IRequestMessage>())) .Callback <IRequestMessage, IMessageResponseCollector, IRequestMessage>( (msg1, h, msg2) => { h?.DoneSuccess(); }); await BoltV1.RunInAutoCommitTransactionAsync(mockConn.Object, statement, mockHandler.Object, null, null); mockConn.Verify(x => x.Enqueue(It.IsAny <RunMessage>(), It.IsAny <ResultCursorBuilder>(), PullAll), Times.Once); mockConn.Verify(x => x.SendAsync()); }
public async Task ResultBuilderShouldObtainServerInfoFromConnection() { var mockConn = new Mock <IConnection>(); var statement = new Statement("A cypher query"); var bookmarkTracker = new Mock <IBookmarkTracker>(); var resourceHandler = new Mock <IResultResourceHandler>(); mockConn.Setup(x => x.EnqueueAsync(It.IsAny <RunMessage>(), It.IsAny <V1.RunResponseHandler>(), PullAllMessage.PullAll, It.IsAny <V1.PullResponseHandler>())) .Returns(TaskHelper.GetCompletedTask()) .Callback <IRequestMessage, IResponseHandler, IRequestMessage, IResponseHandler>( (msg1, h1, msg2, h2) => { h1?.OnSuccess(new Dictionary <string, object>()); }); await BoltV1.RunInAutoCommitTransactionAsync(mockConn.Object, statement, true, bookmarkTracker.Object, resourceHandler.Object, null, null); mockConn.Verify(x => x.Server, Times.Once); }