Search in sources :

Example 26 with Statement

use of org.neo4j.kernel.api.Statement in project neo4j by neo4j.

the class PropertyIT method shouldSetNodePropertyValue.

@Test
public void shouldSetNodePropertyValue() throws Exception {
    // GIVEN
    String value = "bozo";
    Statement statement = statementInNewTransaction(AnonymousContext.writeToken());
    long nodeId = statement.dataWriteOperations().nodeCreate();
    // WHEN
    int propertyKeyId = statement.tokenWriteOperations().propertyKeyGetOrCreateForName("clown");
    statement.dataWriteOperations().nodeSetProperty(nodeId, stringProperty(propertyKeyId, value));
    // THEN
    assertEquals(value, statement.readOperations().nodeGetProperty(nodeId, propertyKeyId));
    // WHEN
    commit();
    ReadOperations readOperations = readOperationsInNewTransaction();
    // THEN
    assertEquals(value, readOperations.nodeGetProperty(nodeId, propertyKeyId));
}
Also used : ReadOperations(org.neo4j.kernel.api.ReadOperations) Statement(org.neo4j.kernel.api.Statement) Test(org.junit.Test)

Example 27 with Statement

use of org.neo4j.kernel.api.Statement in project neo4j by neo4j.

the class PropertyIT method shouldBeAbleToRemoveResetAndTwiceRemovePropertyOnNode.

@Test
public void shouldBeAbleToRemoveResetAndTwiceRemovePropertyOnNode() throws Exception {
    // given
    Statement statement = statementInNewTransaction(AnonymousContext.writeToken());
    int prop = statement.tokenWriteOperations().propertyKeyGetOrCreateForName("foo");
    long node = statement.dataWriteOperations().nodeCreate();
    statement.dataWriteOperations().nodeSetProperty(node, property(prop, "bar"));
    commit();
    // when
    DataWriteOperations dataWriteOperations = dataWriteOperationsInNewTransaction();
    dataWriteOperations.nodeRemoveProperty(node, prop);
    dataWriteOperations.nodeSetProperty(node, property(prop, "bar"));
    dataWriteOperations.nodeRemoveProperty(node, prop);
    dataWriteOperations.nodeRemoveProperty(node, prop);
    commit();
    // then
    ReadOperations readOperations = readOperationsInNewTransaction();
    assertThat(readOperations.nodeGetProperty(node, prop), nullValue());
}
Also used : ReadOperations(org.neo4j.kernel.api.ReadOperations) DataWriteOperations(org.neo4j.kernel.api.DataWriteOperations) Statement(org.neo4j.kernel.api.Statement) Test(org.junit.Test)

Example 28 with Statement

use of org.neo4j.kernel.api.Statement in project neo4j by neo4j.

the class PropertyIT method shouldListAllPropertyKeys.

@Test
public void shouldListAllPropertyKeys() throws Exception {
    // given
    dbWithNoCache();
    Statement statement = statementInNewTransaction(AnonymousContext.writeToken());
    int prop1 = statement.tokenWriteOperations().propertyKeyGetOrCreateForName("prop1");
    int prop2 = statement.tokenWriteOperations().propertyKeyGetOrCreateForName("prop2");
    // when
    Iterator<Token> propIdsBeforeCommit = statement.readOperations().propertyKeyGetAllTokens();
    // then
    assertThat(asCollection(propIdsBeforeCommit), hasItems(new Token("prop1", prop1), new Token("prop2", prop2)));
    // when
    commit();
    ReadOperations readOperations = readOperationsInNewTransaction();
    Iterator<Token> propIdsAfterCommit = readOperations.propertyKeyGetAllTokens();
    // then
    assertThat(asCollection(propIdsAfterCommit), hasItems(new Token("prop1", prop1), new Token("prop2", prop2)));
}
Also used : ReadOperations(org.neo4j.kernel.api.ReadOperations) Statement(org.neo4j.kernel.api.Statement) Token(org.neo4j.storageengine.api.Token) Test(org.junit.Test)

Example 29 with Statement

use of org.neo4j.kernel.api.Statement in project neo4j by neo4j.

the class PropertyIT method shouldRemoveSetNodePropertyAcrossTransactions.

@Test
public void shouldRemoveSetNodePropertyAcrossTransactions() throws Exception {
    // GIVEN
    int propertyKeyId;
    long nodeId;
    {
        Statement statement = statementInNewTransaction(AnonymousContext.writeToken());
        nodeId = statement.dataWriteOperations().nodeCreate();
        propertyKeyId = statement.tokenWriteOperations().propertyKeyGetOrCreateForName("clown");
        statement.dataWriteOperations().nodeSetProperty(nodeId, stringProperty(propertyKeyId, "bozo"));
        commit();
    }
    {
        Statement statement = statementInNewTransaction(AnonymousContext.writeToken());
        // WHEN
        Object previous = statement.dataWriteOperations().nodeRemoveProperty(nodeId, propertyKeyId).value();
        // THEN
        assertEquals("bozo", previous);
        assertThat(statement.readOperations().nodeGetProperty(nodeId, propertyKeyId), nullValue());
        // WHEN
        commit();
    }
    // THEN
    ReadOperations readOperations = readOperationsInNewTransaction();
    assertThat(readOperations.nodeGetProperty(nodeId, propertyKeyId), nullValue());
}
Also used : ReadOperations(org.neo4j.kernel.api.ReadOperations) Statement(org.neo4j.kernel.api.Statement) Test(org.junit.Test)

Example 30 with Statement

use of org.neo4j.kernel.api.Statement in project neo4j by neo4j.

the class KernelIT method transactionStateShouldRemovePreviouslyAddedLabel.

@Test
public void transactionStateShouldRemovePreviouslyAddedLabel() throws Exception {
    Transaction tx = db.beginTx();
    Statement statement = statementContextSupplier.get();
    // WHEN
    Node node = db.createNode();
    int labelId1 = statement.tokenWriteOperations().labelGetOrCreateForName("labello1");
    int labelId2 = statement.tokenWriteOperations().labelGetOrCreateForName("labello2");
    statement.dataWriteOperations().nodeAddLabel(node.getId(), labelId1);
    statement.dataWriteOperations().nodeAddLabel(node.getId(), labelId2);
    statement.dataWriteOperations().nodeRemoveLabel(node.getId(), labelId2);
    statement.close();
    tx.success();
    tx.close();
    // THEN
    tx = db.beginTx();
    statement = statementContextSupplier.get();
    assertEquals(PrimitiveIntCollections.asSet(new int[] { labelId1 }), PrimitiveIntCollections.asSet(statement.readOperations().nodeGetLabels(node.getId())));
    tx.close();
}
Also used : Transaction(org.neo4j.graphdb.Transaction) KernelTransaction(org.neo4j.kernel.api.KernelTransaction) Statement(org.neo4j.kernel.api.Statement) Node(org.neo4j.graphdb.Node) Test(org.junit.Test)

Aggregations

Statement (org.neo4j.kernel.api.Statement)158 Test (org.junit.Test)76 KernelTransaction (org.neo4j.kernel.api.KernelTransaction)56 Transaction (org.neo4j.graphdb.Transaction)44 ReadOperations (org.neo4j.kernel.api.ReadOperations)40 NewIndexDescriptor (org.neo4j.kernel.api.schema_new.index.NewIndexDescriptor)30 EntityNotFoundException (org.neo4j.kernel.api.exceptions.EntityNotFoundException)23 NotFoundException (org.neo4j.graphdb.NotFoundException)21 Node (org.neo4j.graphdb.Node)20 ThreadToStatementContextBridge (org.neo4j.kernel.impl.core.ThreadToStatementContextBridge)19 PropertyNotFoundException (org.neo4j.kernel.api.exceptions.PropertyNotFoundException)13 KeyReadOperations (org.neo4j.kernel.impl.api.operations.KeyReadOperations)11 ArrayList (java.util.ArrayList)10 DependencyResolver (org.neo4j.graphdb.DependencyResolver)10 IndexNotFoundKernelException (org.neo4j.kernel.api.exceptions.index.IndexNotFoundKernelException)10 Label (org.neo4j.graphdb.Label)9 KernelAPI (org.neo4j.kernel.api.KernelAPI)9 ProcedureException (org.neo4j.kernel.api.exceptions.ProcedureException)9 InvalidTransactionTypeKernelException (org.neo4j.kernel.api.exceptions.InvalidTransactionTypeKernelException)8 GraphDatabaseAPI (org.neo4j.kernel.internal.GraphDatabaseAPI)8