Ejemplo n.º 1
0
        private TransactionalContext PrepareKernelWithQuerySession(TransitionalPeriodTransactionMessContainer kernel)
        {
            TransactionalContext tc = mock(typeof(TransactionalContext));

            when(kernel.Create(any(typeof(HttpServletRequest)), any(typeof(GraphDatabaseQueryService)), any(typeof(Transaction_Type)), any(typeof(LoginContext)), any(typeof(string)), any(typeof(System.Collections.IDictionary)))).thenReturn(tc);
            return(tc);
        }
Ejemplo n.º 2
0
//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);
        }
Ejemplo n.º 3
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldCommitSinglePeriodicCommitStatement() throws Exception
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void ShouldCommitSinglePeriodicCommitStatement()
        {
            // given
            string queryText = "USING PERIODIC COMMIT CREATE()";
            TransitionalPeriodTransactionMessContainer kernel = MockKernel();

            QueryExecutionEngine executionEngine = mock(typeof(QueryExecutionEngine));
            Result executionResult = mock(typeof(Result));
            TransactionalContext transactionalContext = PrepareKernelWithQuerySession(kernel);

            when(executionEngine.IsPeriodicCommit(queryText)).thenReturn(true);
            when(executionEngine.ExecuteQuery(eq(queryText), eq(NoParams), eq(transactionalContext))).thenReturn(executionResult);

            TransactionRegistry registry = mock(typeof(TransactionRegistry));

            when(registry.Begin(any(typeof(TransactionHandle)))).thenReturn(1337L);
            TransactionHandle         handle = GetTransactionHandle(kernel, executionEngine, registry);
            ExecutionResultSerializer output = mock(typeof(ExecutionResultSerializer));
            Statement statement = new Statement(queryText, map(), false, (ResultDataContent[])null);

            // when
            handle.Commit(statements(statement), output, mock(typeof(HttpServletRequest)));

            // then
            verify(executionEngine).executeQuery(queryText, NoParams, transactionalContext);

            InOrder outputOrder = inOrder(output);

            outputOrder.verify(output).statementResult(executionResult, false, ( ResultDataContent[] )null);
            outputOrder.verify(output).notifications(anyCollectionOf(typeof(Notification)));
            outputOrder.verify(output).errors(argThat(HasNoErrors()));
            outputOrder.verify(output).finish();
            verifyNoMoreInteractions(output);
        }
Ejemplo n.º 4
0
        public override Pair <string, string> Evaluate(string script)
        {
            if (StringUtils.EMPTY.Equals(script.Trim()))
            {
                return(Pair.of(StringUtils.EMPTY, null));
            }

            string resultString;

            try
            {
                TransactionalContext tc     = _cypherExecutor.createTransactionContext(script, emptyMap(), _request);
                ExecutionEngine      engine = _cypherExecutor.ExecutionEngine;
                Result result = engine.ExecuteQuery(script, emptyMap(), tc);
                resultString = result.ResultAsString();
            }
            catch (SyntaxException error)
            {
                resultString = error.Message;
            }
            catch (Exception exception)
            {
                _log.error("Unknown error executing cypher query", exception);
                resultString = "Error: " + exception.GetType().Name + " - " + exception.Message;
            }
            return(Pair.of(resultString, null));
        }
Ejemplo n.º 5
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldExecuteStatements() throws Exception
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void ShouldExecuteStatements()
        {
            // given
            TransitionalPeriodTransactionMessContainer kernel = MockKernel();

            QueryExecutionEngine executionEngine = mock(typeof(QueryExecutionEngine));
            Result executionResult = mock(typeof(Result));
            TransactionalContext transactionalContext = PrepareKernelWithQuerySession(kernel);

            when(executionEngine.ExecuteQuery("query", NoParams, transactionalContext)).thenReturn(executionResult);
            TransactionRegistry registry = mock(typeof(TransactionRegistry));

            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(executionEngine).executeQuery("query", NoParams, transactionalContext);

            InOrder outputOrder = inOrder(output);

            outputOrder.verify(output).transactionCommitUri(uriScheme.txCommitUri(1337));
            outputOrder.verify(output).statementResult(executionResult, false, ( ResultDataContent[] )null);
            outputOrder.verify(output).notifications(anyCollection());
            outputOrder.verify(output).transactionStatus(anyLong());
            outputOrder.verify(output).errors(argThat(HasNoErrors()));
            outputOrder.verify(output).finish();
            verifyNoMoreInteractions(output);
        }
Ejemplo n.º 6
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldIncludePlanIfPresent() throws Throwable
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void ShouldIncludePlanIfPresent()
        {
            // Given
            QueryStatistics queryStatistics = mock(typeof(QueryStatistics));

            when(queryStatistics.ContainsUpdates()).thenReturn(false);
            QueryResult result = mock(typeof(QueryResult));

            when(result.FieldNames()).thenReturn(new string[0]);
            when(result.ExecutionType()).thenReturn(explained(READ_ONLY));
            when(result.QueryStatistics()).thenReturn(queryStatistics);
            when(result.Notifications).thenReturn(Collections.emptyList());
            when(result.ExecutionPlanDescription()).thenReturn(Plan("Join", map("arg1", 1), singletonList("id1"), Plan("Scan", map("arg2", 1), singletonList("id2"))));

            TransactionalContext tc     = mock(typeof(TransactionalContext));
            CypherAdapterStream  stream = new CypherAdapterStream(result, Clock.systemUTC());

            // When
            MapValue meta = MetadataOf(stream);

            // Then
            MapValue expectedChild = MapValues("args", MapValues("arg2", intValue(1)), "identifiers", list(stringValue("id2")), "operatorType", stringValue("Scan"), "children", VirtualValues.EMPTY_LIST);
            MapValue expectedPlan  = MapValues("args", MapValues("arg1", intValue(1)), "identifiers", list(stringValue("id1")), "operatorType", stringValue("Join"), "children", list(expectedChild));

            assertThat(meta.Get("plan"), equalTo(expectedPlan));
        }
Ejemplo n.º 7
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldIncludeProfileIfPresent() throws Throwable
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void ShouldIncludeProfileIfPresent()
        {
            // Given
            QueryStatistics queryStatistics = mock(typeof(QueryStatistics));

            when(queryStatistics.ContainsUpdates()).thenReturn(false);
            QueryResult result = mock(typeof(QueryResult));

            when(result.FieldNames()).thenReturn(new string[0]);
            when(result.ExecutionType()).thenReturn(explained(READ_ONLY));
            when(result.QueryStatistics()).thenReturn(queryStatistics);
            when(result.Notifications).thenReturn(Collections.emptyList());
            when(result.ExecutionPlanDescription()).thenReturn(Plan("Join", map("arg1", 1), 2, 4, 3, 1, singletonList("id1"), Plan("Scan", map("arg2", 1), 2, 4, 7, 1, singletonList("id2"))));

            TransactionalContext tc     = mock(typeof(TransactionalContext));
            CypherAdapterStream  stream = new CypherAdapterStream(result, Clock.systemUTC());

            // When
            MapValue meta = MetadataOf(stream);

            // Then
            MapValue expectedChild = MapValues("args", MapValues("arg2", intValue(1)), "identifiers", list(stringValue("id2")), "operatorType", stringValue("Scan"), "children", VirtualValues.EMPTY_LIST, "rows", longValue(1L), "dbHits", longValue(2L), "pageCacheHits", longValue(4L), "pageCacheMisses", longValue(7L), "pageCacheHitRatio", doubleValue(4.0 / 11));

            MapValue expectedProfile = MapValues("args", MapValues("arg1", intValue(1)), "identifiers", list(stringValue("id1")), "operatorType", stringValue("Join"), "children", list(expectedChild), "rows", longValue(1L), "dbHits", longValue(2L), "pageCacheHits", longValue(4L), "pageCacheMisses", longValue(3L), "pageCacheHitRatio", doubleValue(4.0 / 7));

            AssertMapEqualsWithDelta(( MapValue )meta.Get("profile"), expectedProfile, 0.0001);
        }
 public BoltResultHandleV1(TransactionStateMachineV1SPI outerInstance, string statement, MapValue @params, TransactionalContext transactionalContext)
 {
     this._outerInstance       = outerInstance;
     this.Statement            = statement;
     this.Params               = @params;
     this.TransactionalContext = transactionalContext;
 }
Ejemplo n.º 9
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldIncludeNotificationsIfPresent() throws Throwable
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void ShouldIncludeNotificationsIfPresent()
        {
            // Given
            QueryResult result = mock(typeof(QueryResult));

            when(result.FieldNames()).thenReturn(new string[0]);

            QueryStatistics queryStatistics = mock(typeof(QueryStatistics));

            when(queryStatistics.ContainsUpdates()).thenReturn(false);

            when(result.QueryStatistics()).thenReturn(queryStatistics);
            when(result.ExecutionType()).thenReturn(query(READ_WRITE));

            when(result.Notifications).thenReturn(Arrays.asList(NotificationCode.INDEX_HINT_UNFULFILLABLE.notification(InputPosition.empty), NotificationCode.PLANNER_UNSUPPORTED.notification(new InputPosition(4, 5, 6))));
            TransactionalContext tc     = mock(typeof(TransactionalContext));
            CypherAdapterStream  stream = new CypherAdapterStream(result, Clock.systemUTC());

            // When
            MapValue meta = MetadataOf(stream);

            // Then
            MapValue msg1 = MapValues("severity", stringValue("WARNING"), "code", stringValue("Neo.ClientError.Schema.IndexNotFound"), "title", stringValue("The request (directly or indirectly) referred to an index that does not exist."), "description", stringValue("The hinted index does not exist, please check the schema"));
            MapValue msg2 = MapValues("severity", stringValue("WARNING"), "code", stringValue("Neo.ClientNotification.Statement.PlannerUnsupportedWarning"), "title", stringValue("This query is not supported by the COST planner."), "description", stringValue("Using COST planner is unsupported for this query, please use RULE planner instead"), "position", MapValues("offset", intValue(4), "column", intValue(6), "line", intValue(5)));

            assertThat(meta.Get("notifications"), equalTo(list(msg1, msg2)));
        }
Ejemplo n.º 10
0
        public override BoltResultHandle ExecuteQuery(LoginContext loginContext, string statement, MapValue @params, Duration txTimeout, IDictionary <string, object> txMetadata)
        {
            InternalTransaction  internalTransaction  = BeginTransaction(@implicit, loginContext, txTimeout, txMetadata);
            TransactionalContext transactionalContext = _contextFactory.newContext(_boltChannel.info(), internalTransaction, statement, @params);

            return(NewBoltResultHandle(statement, @params, transactionalContext));
        }
Ejemplo n.º 11
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldLogMessageIfCypherSyntaxErrorOccurs() throws Exception
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void ShouldLogMessageIfCypherSyntaxErrorOccurs()
        {
            // given
            TransitionalPeriodTransactionMessContainer kernel = MockKernel();

            QueryExecutionEngine executionEngine      = mock(typeof(QueryExecutionEngine));
            TransactionalContext transactionalContext = PrepareKernelWithQuerySession(kernel);

            when(executionEngine.ExecuteQuery("matsch (n) return n", NoParams, transactionalContext)).thenThrow(new QueryExecutionKernelException(new SyntaxException("did you mean MATCH?")));

            TransactionRegistry registry = mock(typeof(TransactionRegistry));

            when(registry.Begin(any(typeof(TransactionHandle)))).thenReturn(1337L);
            GraphDatabaseQueryService queryService = mock(typeof(GraphDatabaseQueryService));
            TransactionHandle         handle       = new TransactionHandle(kernel, executionEngine, queryService, registry, uriScheme, false, AUTH_DISABLED, anyLong(), NullLogProvider.Instance);
            ExecutionResultSerializer output       = mock(typeof(ExecutionResultSerializer));

            // when
            Statement statement = new Statement("matsch (n) return n", map(), false, (ResultDataContent[])null);

            handle.Commit(statements(statement), output, mock(typeof(HttpServletRequest)));

            // then
            verify(registry).forget(1337L);

            InOrder outputOrder = inOrder(output);

            outputOrder.verify(output).errors(argThat(HasErrors(Org.Neo4j.Kernel.Api.Exceptions.Status_Statement.SyntaxError)));
            outputOrder.verify(output).finish();
            verifyNoMoreInteractions(output);
        }
Ejemplo n.º 12
0
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
//ORIGINAL LINE: private org.neo4j.graphdb.Result safelyExecute(Statement statement, boolean hasPeriodicCommit, org.neo4j.kernel.impl.query.TransactionalContext tc) throws org.neo4j.kernel.impl.query.QueryExecutionKernelException, java.io.IOException
        private Result SafelyExecute(Statement statement, bool hasPeriodicCommit, TransactionalContext tc)
        {
            try
            {
                return(_engine.executeQuery(statement.StatementConflict(), ValueUtils.asMapValue(statement.Parameters()), tc));
            }
            finally
            {
                if (hasPeriodicCommit)
                {
                    _context.reopenAfterPeriodicCommit();
                }
            }
        }
Ejemplo n.º 13
0
        /// <summary>
        /// Libère le contexte.
        /// </summary>
        public void Dispose()
        {
            if (!_completed)
            {
                // Libération des objets associés à la transaction dans le cas d'une annulation (connexions).
                TransactionalContext context = SqlServerManager.Instance.CurrentTransactionalContext();
                if (context != null)
                {
                    Transaction t = Transaction.Current;
                    if (t != null)
                    {
                        context.ReleaseConnections(t);
                    }
                }
            }

            _scope.Dispose();
            _scope = null;
        }
Ejemplo n.º 14
0
//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);
        }
Ejemplo n.º 15
0
//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);
        }
Ejemplo n.º 16
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldIncludeBasicMetadata() throws Throwable
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void ShouldIncludeBasicMetadata()
        {
            // Given
            QueryStatistics queryStatistics = mock(typeof(QueryStatistics));

            when(queryStatistics.ContainsUpdates()).thenReturn(true);
            when(queryStatistics.NodesCreated).thenReturn(1);
            when(queryStatistics.NodesDeleted).thenReturn(2);
            when(queryStatistics.RelationshipsCreated).thenReturn(3);
            when(queryStatistics.RelationshipsDeleted).thenReturn(4);
            when(queryStatistics.PropertiesSet).thenReturn(5);
            when(queryStatistics.IndexesAdded).thenReturn(6);
            when(queryStatistics.IndexesRemoved).thenReturn(7);
            when(queryStatistics.ConstraintsAdded).thenReturn(8);
            when(queryStatistics.ConstraintsRemoved).thenReturn(9);
            when(queryStatistics.LabelsAdded).thenReturn(10);
            when(queryStatistics.LabelsRemoved).thenReturn(11);

            QueryResult result = mock(typeof(QueryResult));

            when(result.FieldNames()).thenReturn(new string[0]);
            when(result.ExecutionType()).thenReturn(query(READ_WRITE));
            when(result.QueryStatistics()).thenReturn(queryStatistics);
            when(result.Notifications).thenReturn(Collections.emptyList());

            Clock clock = mock(typeof(Clock));

            when(clock.millis()).thenReturn(0L, 1337L);

            TransactionalContext tc     = mock(typeof(TransactionalContext));
            CypherAdapterStream  stream = new CypherAdapterStream(result, clock);

            // When
            MapValue meta = MetadataOf(stream);

            // Then
            assertThat(meta.Get("type"), equalTo(stringValue("rw")));
            assertThat(meta.Get("stats"), equalTo(MapValues("nodes-created", intValue(1), "nodes-deleted", intValue(2), "relationships-created", intValue(3), "relationships-deleted", intValue(4), "properties-set", intValue(5), "indexes-added", intValue(6), "indexes-removed", intValue(7), "constraints-added", intValue(8), "constraints-removed", intValue(9), "labels-added", intValue(10), "labels-removed", intValue(11))));
            assertThat(meta.Get("result_consumed_after"), equalTo(longValue(1337L)));
        }
Ejemplo n.º 17
0
//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);
        }
Ejemplo n.º 18
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void shouldCreateTransactionContextOnlyWhenFirstNeeded() throws Exception
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#:
        public virtual void ShouldCreateTransactionContextOnlyWhenFirstNeeded()
        {
            // given
            TransitionalPeriodTransactionMessContainer kernel = MockKernel();
            ExecutionResultSerializer output   = mock(typeof(ExecutionResultSerializer));
            TransactionRegistry       registry = mock(typeof(TransactionRegistry));

            // when
            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, true, AUTH_DISABLED, anyLong(), NullLogProvider.Instance);

            // then
            verifyZeroInteractions(kernel);

            // when
            handle.Execute(statements(new Statement("query", map(), false, (ResultDataContent[])null)), output, mock(typeof(HttpServletRequest)));

            // then
            verify(kernel).newTransaction(any(typeof(Transaction_Type)), any(typeof(LoginContext)), anyLong());

            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);
        }
Ejemplo n.º 19
0
 internal TransactionalContextWrapper(TransactionalContext @delegate, params LockOperationListener[] listeners) : this(@delegate, new List <>(), listeners)
Ejemplo n.º 20
0
 protected internal virtual BoltResultHandle NewBoltResultHandle(string statement, MapValue @params, TransactionalContext transactionalContext)
 {
     return(new BoltResultHandleV1(this, statement, @params, transactionalContext));
 }
Ejemplo n.º 21
0
 public TeamsRepository(TransactionalContext context)
 {
     _context = context ?? throw new ArgumentNullException(nameof(context));
 }
Ejemplo n.º 22
0
        private void ExecuteStatements(StatementDeserializer statements, ExecutionResultSerializer output, IList <Neo4jError> errors, HttpServletRequest request)
        {
            try
            {
                bool hasPrevious = false;
                while (statements.MoveNext())
                {
                    Statement statement = statements.Current;
                    try
                    {
                        bool hasPeriodicCommit = _engine.isPeriodicCommit(statement.StatementConflict());
//JAVA TO C# CONVERTER TODO TASK: Java iterators are only converted within the context of 'while' and 'for' loops:
                        if ((statements.HasNext() || hasPrevious) && hasPeriodicCommit)
                        {
                            throw new QueryExecutionKernelException(new InvalidSemanticsException("Cannot execute another statement after executing " + "PERIODIC COMMIT statement in the same transaction"));
                        }

                        if (!hasPrevious && hasPeriodicCommit)
                        {
                            _context.closeTransactionForPeriodicCommit();
                        }

                        hasPrevious = true;
                        TransactionalContext tc = _txManagerFacade.create(request, _queryService, _type, _loginContext, statement.StatementConflict(), statement.Parameters());
                        Result result           = SafelyExecute(statement, hasPeriodicCommit, tc);
                        output.StatementResult(result, statement.IncludeStats(), statement.ResultDataContents());
                        output.Notifications(result.Notifications);
                    }
                    catch (Exception e) when(e is KernelException || e is CypherException || e is AuthorizationViolationException || e is WriteOperationsNotAllowedException)
                    {
                        errors.Add(new Neo4jError(e.status(), e));
                        break;
                    }
                    catch (DeadlockDetectedException e)
                    {
                        errors.Add(new Neo4jError(Org.Neo4j.Kernel.Api.Exceptions.Status_Transaction.DeadlockDetected, e));
                    }
                    catch (IOException e)
                    {
                        errors.Add(new Neo4jError(Org.Neo4j.Kernel.Api.Exceptions.Status_Network.CommunicationError, e));
                        break;
                    }
                    catch (Exception e)
                    {
                        Exception cause = e.InnerException;
                        if (cause is Org.Neo4j.Kernel.Api.Exceptions.Status_HasStatus)
                        {
                            errors.Add(new Neo4jError(((Org.Neo4j.Kernel.Api.Exceptions.Status_HasStatus)cause).Status(), cause));
                        }
                        else
                        {
                            errors.Add(new Neo4jError(Org.Neo4j.Kernel.Api.Exceptions.Status_Statement.ExecutionFailed, e));
                        }

                        break;
                    }
                }

                addToCollection(statements.Errors(), errors);
            }
            catch (Exception e)
            {
                errors.Add(new Neo4jError(Org.Neo4j.Kernel.Api.Exceptions.Status_General.UnknownError, e));
            }
        }
Ejemplo n.º 23
0
 public Org.Neo4j.Graphdb.Result ProfileQuery(string query, [email protected] parameter, TransactionalContext context)
 {
     throw NoQueryEngineConflict();
 }
Ejemplo n.º 24
0
 internal TransactionalContextWrapper(TransactionalContext @delegate, IList <LockOperationRecord> recordedLocks, params LockOperationListener[] listeners)
 {
     this.Delegate      = @delegate;
     this.RecordedLocks = recordedLocks;
     this.Listeners     = listeners;
 }