//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldRollbackTransactionIfExecutionErrorOccurs() throws Exception //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: public virtual void ShouldRollbackTransactionIfExecutionErrorOccurs() { // given TransitionalPeriodTransactionMessContainer kernel = MockKernel(); TransitionalTxManagementKernelTransaction transactionContext = kernel.NewTransaction(@explicit, AUTH_DISABLED, -1); TransactionRegistry registry = mock(typeof(TransactionRegistry)); QueryExecutionEngine executionEngine = mock(typeof(QueryExecutionEngine)); TransactionalContext transactionalContext = PrepareKernelWithQuerySession(kernel); when(executionEngine.ExecuteQuery("query", NoParams, transactionalContext)).thenThrow(new System.NullReferenceException()); when(registry.Begin(any(typeof(TransactionHandle)))).thenReturn(1337L); TransactionHandle handle = GetTransactionHandle(kernel, executionEngine, registry); ExecutionResultSerializer output = mock(typeof(ExecutionResultSerializer)); // when handle.Execute(statements(new Statement("query", map(), false, (ResultDataContent[])null)), output, mock(typeof(HttpServletRequest))); // then verify(transactionContext).rollback(); verify(registry).forget(1337L); InOrder outputOrder = inOrder(output); outputOrder.verify(output).transactionCommitUri(uriScheme.txCommitUri(1337)); outputOrder.verify(output).errors(argThat(HasErrors(Org.Neo4j.Kernel.Api.Exceptions.Status_Statement.ExecutionFailed))); outputOrder.verify(output).finish(); verifyNoMoreInteractions(output); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldRollbackTransactionAndTellRegistryToForgetItsHandle() public virtual void ShouldRollbackTransactionAndTellRegistryToForgetItsHandle() { // given TransitionalPeriodTransactionMessContainer kernel = MockKernel(); TransitionalTxManagementKernelTransaction transactionContext = kernel.NewTransaction(@explicit, AUTH_DISABLED, -1); TransactionRegistry registry = mock(typeof(TransactionRegistry)); when(registry.Begin(any(typeof(TransactionHandle)))).thenReturn(1337L); GraphDatabaseQueryService queryService = mock(typeof(GraphDatabaseQueryService)); TransactionHandle handle = new TransactionHandle(kernel, mock(typeof(QueryExecutionEngine)), queryService, registry, uriScheme, true, AUTH_DISABLED, anyLong(), NullLogProvider.Instance); ExecutionResultSerializer output = mock(typeof(ExecutionResultSerializer)); // when handle.Rollback(output); // then InOrder transactionOrder = inOrder(transactionContext, registry); transactionOrder.verify(transactionContext).rollback(); transactionOrder.verify(registry).forget(1337L); InOrder outputOrder = inOrder(output); outputOrder.verify(output).errors(argThat(HasNoErrors())); outputOrder.verify(output).finish(); verifyNoMoreInteractions(output); }
private TransitionalPeriodTransactionMessContainer MockKernel() { TransitionalTxManagementKernelTransaction context = mock(typeof(TransitionalTxManagementKernelTransaction)); TransitionalPeriodTransactionMessContainer kernel = mock(typeof(TransitionalPeriodTransactionMessContainer)); when(kernel.NewTransaction(any(typeof(Transaction_Type)), any(typeof(LoginContext)), anyLong())).thenReturn(context); return(kernel); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void reopenStartDefaultTransactionIfTimeoutNotSpecified() public virtual void ReopenStartDefaultTransactionIfTimeoutNotSpecified() { TransitionalTxManagementKernelTransaction managementKernelTransaction = new TransitionalTxManagementKernelTransaction(_databaseFacade, _type, _loginContext, -1, _contextBridge); managementKernelTransaction.ReopenAfterPeriodicCommit(); verify(_databaseFacade, times(2)).beginTransaction(_type, _loginContext); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void reopenStartTransactionWithCustomTimeoutIfSpecified() public virtual void ReopenStartTransactionWithCustomTimeoutIfSpecified() { TransitionalTxManagementKernelTransaction managementKernelTransaction = new TransitionalTxManagementKernelTransaction(_databaseFacade, _type, _loginContext, 10, _contextBridge); managementKernelTransaction.ReopenAfterPeriodicCommit(); verify(_databaseFacade, times(2)).beginTransaction(_type, _loginContext, 10, TimeUnit.MILLISECONDS); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldThrowSpecificExceptionOnConcurrentTransactionAccess() throws Exception //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: public virtual void ShouldThrowSpecificExceptionOnConcurrentTransactionAccess() { // given TransactionRegistry registry = new TransactionHandleRegistry(mock(typeof(Clock)), 0, NullLogProvider.Instance); TransitionalPeriodTransactionMessContainer kernel = mock(typeof(TransitionalPeriodTransactionMessContainer)); GraphDatabaseQueryService queryService = mock(typeof(GraphDatabaseQueryService)); TransitionalTxManagementKernelTransaction kernelTransaction = mock(typeof(TransitionalTxManagementKernelTransaction)); when(kernel.NewTransaction(any(typeof(KernelTransaction.Type)), any(typeof(LoginContext)), anyLong())).thenReturn(kernelTransaction); TransactionFacade actions = new TransactionFacade(kernel, null, queryService, registry, NullLogProvider.Instance); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final TransactionHandle transactionHandle = actions.newTransactionHandle(new DisgustingUriScheme(), true, org.neo4j.internal.kernel.api.security.LoginContext.AUTH_DISABLED, -1); TransactionHandle transactionHandle = actions.NewTransactionHandle(new DisgustingUriScheme(), true, LoginContext.AUTH_DISABLED, -1); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final org.neo4j.test.DoubleLatch latch = new org.neo4j.test.DoubleLatch(); DoubleLatch latch = new DoubleLatch(); //JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final': //ORIGINAL LINE: final StatementDeserializer statements = mock(StatementDeserializer.class); StatementDeserializer statements = mock(typeof(StatementDeserializer)); //JAVA TO C# CONVERTER TODO TASK: Java iterators are only converted within the context of 'while' and 'for' loops: when(statements.HasNext()).thenAnswer(invocation => { latch.StartAndWaitForAllToStartAndFinish(); return(false); }); (new Thread(() => { // start and block until finish transactionHandle.Execute(statements, mock(typeof(ExecutionResultSerializer)), mock(typeof(HttpServletRequest))); })).Start(); latch.WaitForAllToStart(); try { // when actions.FindTransactionHandle(DisgustingUriScheme.ParseTxId(transactionHandle.Uri())); fail("should have thrown exception"); } catch (InvalidConcurrentTransactionAccess) { // then we get here } finally { latch.Finish(); } }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: private void ensureActiveTransaction() throws org.neo4j.server.rest.transactional.error.InternalBeginTransactionError private void EnsureActiveTransaction() { if (_context == null) { try { _context = _txManagerFacade.newTransaction(_type, _loginContext, _customTransactionTimeout); } catch (Exception e) { _log.error("Failed to start transaction.", e); throw new InternalBeginTransactionError(e); } } else { _context.resumeSinceTransactionsAreStillThreadBound(); } }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldLogMessageIfCommitErrorOccurs() throws Exception //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: public virtual void ShouldLogMessageIfCommitErrorOccurs() { // given TransitionalPeriodTransactionMessContainer kernel = MockKernel(); TransitionalTxManagementKernelTransaction transactionContext = kernel.NewTransaction(@explicit, AUTH_DISABLED, -1); doThrow(new System.NullReferenceException()).when(transactionContext).commit(); LogProvider logProvider = mock(typeof(LogProvider)); Log log = mock(typeof(Log)); when(logProvider.GetLog(typeof(TransactionHandle))).thenReturn(log); TransactionRegistry registry = mock(typeof(TransactionRegistry)); QueryExecutionEngine engine = mock(typeof(QueryExecutionEngine)); Result executionResult = mock(typeof(Result)); TransactionalContext transactionalContext = PrepareKernelWithQuerySession(kernel); when(engine.ExecuteQuery("query", NoParams, transactionalContext)).thenReturn(executionResult); when(registry.Begin(any(typeof(TransactionHandle)))).thenReturn(1337L); GraphDatabaseQueryService queryService = mock(typeof(GraphDatabaseQueryService)); TransactionHandle handle = new TransactionHandle(kernel, engine, queryService, registry, uriScheme, false, AUTH_DISABLED, anyLong(), logProvider); ExecutionResultSerializer output = mock(typeof(ExecutionResultSerializer)); // when Statement statement = new Statement("query", map(), false, (ResultDataContent[])null); handle.Commit(statements(statement), output, mock(typeof(HttpServletRequest))); // then verify(log).error(eq("Failed to commit transaction."), any(typeof(System.NullReferenceException))); verify(registry).forget(1337L); InOrder outputOrder = inOrder(output); outputOrder.verify(output).statementResult(executionResult, false, ( ResultDataContent[] )null); outputOrder.verify(output).notifications(anyCollectionOf(typeof(Notification))); outputOrder.verify(output).errors(argThat(HasErrors(Org.Neo4j.Kernel.Api.Exceptions.Status_Transaction.TransactionCommitFailed))); outputOrder.verify(output).finish(); verifyNoMoreInteractions(output); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldResumeTransactionWhenExecutingStatementsOnSecondRequest() throws Exception //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: public virtual void ShouldResumeTransactionWhenExecutingStatementsOnSecondRequest() { // given TransitionalPeriodTransactionMessContainer kernel = MockKernel(); TransitionalTxManagementKernelTransaction transactionContext = kernel.NewTransaction(@explicit, AUTH_DISABLED, -1); TransactionRegistry registry = mock(typeof(TransactionRegistry)); QueryExecutionEngine executionEngine = mock(typeof(QueryExecutionEngine)); TransactionalContext transactionalContext = PrepareKernelWithQuerySession(kernel); when(registry.Begin(any(typeof(TransactionHandle)))).thenReturn(1337L); TransactionHandle handle = GetTransactionHandle(kernel, executionEngine, registry); ExecutionResultSerializer output = mock(typeof(ExecutionResultSerializer)); handle.Execute(statements(new Statement("query", map(), false, (ResultDataContent[])null)), output, mock(typeof(HttpServletRequest))); reset(transactionContext, registry, executionEngine, output); Result executionResult = mock(typeof(Result)); when(executionEngine.ExecuteQuery("query", NoParams, transactionalContext)).thenReturn(executionResult); // when handle.Execute(statements(new Statement("query", map(), false, (ResultDataContent[])null)), output, mock(typeof(HttpServletRequest))); // then InOrder order = inOrder(transactionContext, registry, executionEngine); order.verify(transactionContext).resumeSinceTransactionsAreStillThreadBound(); order.verify(executionEngine).executeQuery("query", NoParams, transactionalContext); order.verify(transactionContext).suspendSinceTransactionsAreStillThreadBound(); order.verify(registry).release(1337L, handle); InOrder outputOrder = inOrder(output); outputOrder.verify(output).transactionCommitUri(uriScheme.txCommitUri(1337)); outputOrder.verify(output).statementResult(executionResult, false, ( ResultDataContent[] )null); outputOrder.verify(output).notifications(anyCollectionOf(typeof(Notification))); outputOrder.verify(output).transactionStatus(anyLong()); outputOrder.verify(output).errors(argThat(HasNoErrors())); outputOrder.verify(output).finish(); verifyNoMoreInteractions(output); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldCommitTransactionAndTellRegistryToForgetItsHandle() throws Exception //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: public virtual void ShouldCommitTransactionAndTellRegistryToForgetItsHandle() { // given TransitionalPeriodTransactionMessContainer kernel = MockKernel(); TransitionalTxManagementKernelTransaction transactionContext = kernel.NewTransaction(@explicit, AUTH_DISABLED, -1); TransactionRegistry registry = mock(typeof(TransactionRegistry)); QueryExecutionEngine engine = mock(typeof(QueryExecutionEngine)); TransactionalContext transactionalContext = PrepareKernelWithQuerySession(kernel); Result result = mock(typeof(Result)); when(engine.ExecuteQuery("query", NoParams, transactionalContext)).thenReturn(result); when(registry.Begin(any(typeof(TransactionHandle)))).thenReturn(1337L); GraphDatabaseQueryService queryService = mock(typeof(GraphDatabaseQueryService)); TransactionHandle handle = new TransactionHandle(kernel, engine, queryService, registry, uriScheme, false, AUTH_DISABLED, anyLong(), NullLogProvider.Instance); ExecutionResultSerializer output = mock(typeof(ExecutionResultSerializer)); // when Statement statement = new Statement("query", map(), false, (ResultDataContent[])null); handle.Commit(statements(statement), output, mock(typeof(HttpServletRequest))); // then InOrder transactionOrder = inOrder(transactionContext, registry); transactionOrder.verify(transactionContext).commit(); transactionOrder.verify(registry).forget(1337L); InOrder outputOrder = inOrder(output); outputOrder.verify(output).statementResult(result, false, ( ResultDataContent[] )null); outputOrder.verify(output).notifications(anyCollectionOf(typeof(Notification))); outputOrder.verify(output).errors(argThat(HasNoErrors())); outputOrder.verify(output).finish(); verifyNoMoreInteractions(output); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldInterruptTransaction() public virtual void ShouldInterruptTransaction() { // given TransitionalPeriodTransactionMessContainer kernel = MockKernel(); TransitionalTxManagementKernelTransaction tx = mock(typeof(TransitionalTxManagementKernelTransaction)); when(kernel.NewTransaction(any(typeof(Transaction_Type)), any(typeof(LoginContext)), anyLong())).thenReturn(tx); TransactionRegistry registry = mock(typeof(TransactionRegistry)); when(registry.Begin(any(typeof(TransactionHandle)))).thenReturn(1337L); QueryExecutionEngine executionEngine = mock(typeof(QueryExecutionEngine)); TransactionHandle handle = GetTransactionHandle(kernel, executionEngine, registry); ExecutionResultSerializer output = mock(typeof(ExecutionResultSerializer)); Statement statement = new Statement("MATCH (n) RETURN n", map(), false, (ResultDataContent[])null); handle.Execute(statements(statement), output, mock(typeof(HttpServletRequest))); // when handle.Terminate(); // then verify(tx, times(1)).terminate(); }