public GXAsyncWork(System.Windows.Forms.Control sender, AsyncStateChangeEventHandler e, AsyncTransaction command, object[] parameters)
 {
     OnAsyncStateChangeEventHandler = e;
     Sender = sender;
     Command = command;
     Parameters = parameters;
 }
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 /// <param name="command"></param>
 /// <param name="error"></param>
 /// <param name="text"></param>
 /// <param name="parameters"></param>
 public GXAsyncWork(object sender, AsyncStateChangeEventHandler e, 
     AsyncTransaction command, ErrorEventHandler error, 
     string text, object[] parameters)
 {
     OnError = error;
     Text = text;
     OnAsyncStateChangeEventHandler = e;
     Sender = sender;
     Command = command;
     Parameters = parameters;
 }       
            public async void ShouldCommitOnSuccess()
            {
                var protocol    = new Mock <IBoltProtocol>();
                var mockConn    = NewMockedConnection(protocol.Object);
                var mockHandler = new Mock <ITransactionResourceHandler>();
                var tx          = new AsyncTransaction(mockConn.Object, mockHandler.Object);

                mockConn.Invocations.Clear();
                await tx.CommitAsync();

                protocol.Verify(x => x.CommitTransactionAsync(It.IsAny <IConnection>(), tx));
                mockHandler.Verify(x => x.OnTransactionDisposeAsync(It.IsAny <Bookmark>()), Times.Once);
            }
Exemple #4
0
            public void ShouldNotEnqueueMoreMessagesAfterMarkToClosedInRollbackAsync()
            {
                var protocol = new Mock <IBoltProtocol>();
                var mockConn = NewMockedConnection(protocol.Object);
                var tx       = new AsyncTransaction(mockConn.Object, Mock.Of <ITransactionResourceHandler>());

                mockConn.Invocations.Clear();

                tx.MarkToClose();
                tx.Awaiting(t => t.RollbackAsync()).Should().NotThrow();
                protocol.Verify(x => x.RollbackTransactionAsync(It.IsAny <IConnection>()), Times.Never);
                mockConn.Verify(x => x.SyncAsync(), Times.Never);
            }
            public async Task ShouldNotEnqueueMoreMessagesAfterMarkToClosedInRollbackAsync()
            {
                var protocol = new Mock <IBoltProtocol>();
                var mockConn = NewMockedConnection(protocol.Object);
                var tx       = new AsyncTransaction(mockConn.Object);

                mockConn.Invocations.Clear();

                tx.MarkToClose();
                await tx.RollbackAsync();

                protocol.Verify(x => x.RollbackTransactionAsync(It.IsAny <IConnection>()), Times.Never);
                mockConn.Verify(x => x.SyncAsync(), Times.Never);
            }
            public async Task ShouldNotDisposeIfAlreadyClosed()
            {
                var protocol    = new Mock <IBoltProtocol>();
                var mockConn    = NewMockedConnection(protocol.Object);
                var mockHandler = new Mock <ITransactionResourceHandler>();
                var tx          = new AsyncTransaction(mockConn.Object, mockHandler.Object);

                mockConn.Invocations.Clear();
                await tx.CommitAsync();

                await tx.CloseAsync();

                mockHandler.Verify(x => x.OnTransactionDisposeAsync(It.IsAny <Bookmark>()), Times.Once);
            }
            public async void ShouldThrowExceptionIfFailedToRunAndFetchResult()
            {
                var protocol  = new Mock <IBoltProtocol>();
                var mockConn  = NewMockedConnection(protocol.Object);
                var tx        = new AsyncTransaction(mockConn.Object);
                var statement = new Statement("lala");

                protocol.Setup(x => x.RunInExplicitTransactionAsync(It.IsAny <IConnection>(), statement, false))
                .Throws <Neo4jException>();

                var error = await ExceptionAsync(() => tx.RunAsync(statement));

                error.Should().BeOfType <Neo4jException>();
            }
Exemple #8
0
            public void ShouldNotEnqueueMoreMessagesAfterMarkToClosedInCommitAsync()
            {
                var protocol = new Mock <IBoltProtocol>();
                var mockConn = NewMockedConnection(protocol.Object);
                var tx       = new AsyncTransaction(mockConn.Object, Mock.Of <ITransactionResourceHandler>());

                mockConn.Invocations.Clear();

                tx.MarkToClose();
                tx.Awaiting(t => t.CommitAsync()).Should().Throw <ClientException>().Which.Message.Should()
                .Contain("Cannot commit this transaction");
                protocol.Verify(x => x.CommitTransactionAsync(It.IsAny <IConnection>(), tx), Times.Never);
                mockConn.Verify(x => x.SyncAsync(), Times.Never);
            }
            public async void ShouldThrowExceptionIfFailedToRunAndFetchResult()
            {
                var protocol = new Mock <IBoltProtocol>();
                var mockConn = NewMockedConnection(protocol.Object);
                var tx       = new AsyncTransaction(mockConn.Object, Mock.Of <ITransactionResourceHandler>());
                var query    = new Query("lala");

                protocol.Setup(x => x.RunInExplicitTransactionAsync(It.IsAny <IConnection>(), query, false, It.IsAny <long>()))
                .Throws <Neo4jException>();

                var error = await ExceptionAsync(() => tx.RunAsync(query));

                error.Should().BeOfType <Neo4jException>();
            }
Exemple #10
0
            public void ShouldThrowExceptionToRunAfterMarkToClosed()
            {
                var protocol = new Mock <IBoltProtocol>();
                var mockConn = NewMockedConnection(protocol.Object);
                var tx       = new AsyncTransaction(mockConn.Object, Mock.Of <ITransactionResourceHandler>());

                mockConn.Invocations.Clear();

                tx.MarkToClose();

                tx.Awaiting(t => t.RunAsync("should not run")).Should().Throw <ClientException>().Which.Message.Should()
                .StartWith("Cannot run statement in this transaction");
                protocol.Verify(x => x.RollbackTransactionAsync(It.IsAny <IConnection>()), Times.Never);
                mockConn.Verify(x => x.SyncAsync(), Times.Never);
            }
            public async Task ShouldSaveBookmark()
            {
                var mockConn     = new Mock <IConnection>();
                var mockProtocol = new Mock <IBoltProtocol>();

                mockConn.Setup(x => x.BoltProtocol).Returns(mockProtocol.Object);

                var bookmark = Bookmark.From(FakeABookmark(123));
                var tx       = new AsyncTransaction(mockConn.Object, null, null, bookmark);

                await tx.BeginTransactionAsync(null);

                mockProtocol.Verify(
                    x => x.BeginTransactionAsync(It.IsAny <IConnection>(), bookmark, It.IsAny <TransactionConfig>()),
                    Times.Once);
            }
            public async Task ShouldThrowExceptionToRunAfterMarkToClosed()
            {
                var protocol = new Mock <IBoltProtocol>();
                var mockConn = NewMockedConnection(protocol.Object);
                var tx       = new AsyncTransaction(mockConn.Object);

                mockConn.Invocations.Clear();

                tx.MarkToClose();

                var exception = await Record.ExceptionAsync(() => tx.RunAsync("should not run"));

                exception.Should().BeOfType <ClientException>();
                exception.Message.Should().StartWith("Cannot run more statements in this transaction");

                protocol.Verify(x => x.RollbackTransactionAsync(It.IsAny <IConnection>()), Times.Never);
                mockConn.Verify(x => x.SyncAsync(), Times.Never);
            }
Exemple #13
0
        public async Task TestAsyncListTableNamesLists()
        {
            var factory = new ValueFactory();
            var tables  = new List <string> {
                "table1", "table2"
            };
            var ions = tables.Select(t => CreateValueHolder(factory.NewString(t))).ToList();

            var h1 = QldbHash.ToQldbHash(TestTransactionId);

            h1 = AsyncTransaction.Dot(h1, QldbDriverBase <AsyncQldbSession> .TableNameQuery, new List <IIonValue>());

            mockClient.QueueResponse(StartSessionResponse(TestRequestId));
            mockClient.QueueResponse(StartTransactionResponse(TestTransactionId, TestRequestId));
            mockClient.QueueResponse(ExecuteResponse(TestRequestId, ions));
            mockClient.QueueResponse(CommitResponse(TestTransactionId, TestRequestId, h1.Hash));

            var result = await testDriver.ListTableNames();

            Assert.IsNotNull(result);
            CollectionAssert.AreEqual(tables, result.ToList());

            mockClient.Clear();
        }
Exemple #14
0
 public GXAsyncWork(System.Windows.Forms.Control sender, AsyncStateChangeEventHandler e, AsyncTransaction command, object[] parameters)
 {
     OnAsyncStateChangeEventHandler = e;
     Sender     = sender;
     Command    = command;
     Parameters = parameters;
 }
Exemple #15
0
 public void SetUp()
 {
     mockSession      = new Mock <Session>(null, null, null, null, null);
     asyncTransaction = new AsyncTransaction(mockSession.Object, TxnId, mockLogger.Object,
                                             It.IsAny <CancellationToken>());
 }