Search in sources :

Example 36 with Label

use of org.neo4j.graphdb.Label in project neo4j by neo4j.

the class NodeProxyTest method createDropNodeLongArrayProperty.

@Test
public void createDropNodeLongArrayProperty() {
    Label markerLabel = Label.label("marker");
    String testPropertyKey = "testProperty";
    byte[] propertyValue = RandomUtils.nextBytes(1024);
    try (Transaction tx = db.beginTx()) {
        Node node = db.createNode(markerLabel);
        node.setProperty(testPropertyKey, propertyValue);
        tx.success();
    }
    try (Transaction tx = db.beginTx()) {
        Node node = Iterators.single(db.findNodes(markerLabel));
        assertArrayEquals(propertyValue, (byte[]) node.getProperty(testPropertyKey));
        tx.success();
    }
    try (Transaction tx = db.beginTx()) {
        Node node = Iterators.single(db.findNodes(markerLabel));
        node.removeProperty(testPropertyKey);
        tx.success();
    }
    try (Transaction tx = db.beginTx()) {
        Node node = Iterators.single(db.findNodes(markerLabel));
        assertFalse(node.hasProperty(testPropertyKey));
        tx.success();
    }
}
Also used : Transaction(org.neo4j.graphdb.Transaction) Node(org.neo4j.graphdb.Node) Label(org.neo4j.graphdb.Label) Matchers.containsString(org.hamcrest.Matchers.containsString) Test(org.junit.Test)

Example 37 with Label

use of org.neo4j.graphdb.Label in project neo4j by neo4j.

the class RelationshipProxyTest method createDropRelationshipLongStringProperty.

@Test
public void createDropRelationshipLongStringProperty() {
    Label markerLabel = DynamicLabel.label("marker");
    String testPropertyKey = "testProperty";
    String propertyValue = RandomStringUtils.randomAscii(255);
    try (Transaction tx = db.beginTx()) {
        Node start = db.createNode(markerLabel);
        Node end = db.createNode(markerLabel);
        Relationship relationship = start.createRelationshipTo(end, withName("type"));
        relationship.setProperty(testPropertyKey, propertyValue);
        tx.success();
    }
    try (Transaction tx = db.beginTx()) {
        Relationship relationship = db.getRelationshipById(0);
        assertEquals(propertyValue, relationship.getProperty(testPropertyKey));
        tx.success();
    }
    try (Transaction tx = db.beginTx()) {
        Relationship relationship = db.getRelationshipById(0);
        relationship.removeProperty(testPropertyKey);
        tx.success();
    }
    try (Transaction tx = db.beginTx()) {
        Relationship relationship = db.getRelationshipById(0);
        assertFalse(relationship.hasProperty(testPropertyKey));
        tx.success();
    }
}
Also used : Transaction(org.neo4j.graphdb.Transaction) Node(org.neo4j.graphdb.Node) Relationship(org.neo4j.graphdb.Relationship) Label(org.neo4j.graphdb.Label) DynamicLabel(org.neo4j.graphdb.DynamicLabel) Test(org.junit.Test)

Example 38 with Label

use of org.neo4j.graphdb.Label in project neo4j by neo4j.

the class NodeMatcher method matches.

@Override
public boolean matches(Object value) {
    if (value instanceof Node) {
        Node node = (Node) value;
        int nbrOfLabels = 0;
        for (Label l : node.getLabels()) {
            if (!labelNames.contains(l.name())) {
                return false;
            }
            ++nbrOfLabels;
        }
        return labelNames.size() == nbrOfLabels && propertyMatcher.matches(node.getAllProperties());
    }
    return false;
}
Also used : Node(org.neo4j.graphdb.Node) Label(org.neo4j.graphdb.Label)

Example 39 with Label

use of org.neo4j.graphdb.Label in project neo4j by neo4j.

the class LabelIT method creatingIndexOnMasterShouldHaveSlavesBuildItAsWell.

@Test
public void creatingIndexOnMasterShouldHaveSlavesBuildItAsWell() throws Throwable {
    // GIVEN
    HighlyAvailableGraphDatabase slave1 = cluster.getAnySlave();
    HighlyAvailableGraphDatabase slave2 = cluster.getAnySlave(/*except*/
    slave1);
    Label label = label("Person");
    // WHEN
    TransactionContinuation txOnSlave1 = createNodeAndKeepTxOpen(slave1, label);
    TransactionContinuation txOnSlave2 = createNodeAndKeepTxOpen(slave2, label);
    commit(txOnSlave1);
    commit(txOnSlave2);
    // THEN
    assertEquals(getLabelId(slave1, label), getLabelId(slave2, label));
}
Also used : HighlyAvailableGraphDatabase(org.neo4j.kernel.ha.HighlyAvailableGraphDatabase) Label(org.neo4j.graphdb.Label) Test(org.junit.Test)

Example 40 with Label

use of org.neo4j.graphdb.Label in project neo4j by neo4j.

the class LabelScanStoreHaIT method setUp.

@Before
public void setUp() {
    KernelExtensionFactory<?> testExtension = labelScanStoreExtension(monitor);
    TestHighlyAvailableGraphDatabaseFactory factory = new TestHighlyAvailableGraphDatabaseFactory();
    factory.removeKernelExtensions(extension -> extension.getClass().getName().contains("LabelScan"));
    factory.addKernelExtension(testExtension);
    ClusterManager clusterManager = new ClusterManager.Builder(testDirectory.directory("root")).withDbFactory(factory).withSharedSetting(GraphDatabaseSettings.label_index, labelIndexSettingName()).withStoreDirInitializer((serverId, storeDir) -> {
        if (serverId == 1) {
            GraphDatabaseService db = new TestGraphDatabaseFactory().addKernelExtension(testExtension).newEmbeddedDatabaseBuilder(storeDir.getAbsoluteFile()).setConfig(GraphDatabaseSettings.label_index, labelIndexSettingName()).newGraphDatabase();
            try {
                createSomeLabeledNodes(db, new Label[] { Labels.First }, new Label[] { Labels.First, Labels.Second }, new Label[] { Labels.Second });
            } finally {
                db.shutdown();
            }
        }
    }).build();
    life.add(clusterManager);
    life.start();
    cluster = clusterManager.getCluster();
    cluster.await(allSeesAllAsAvailable());
    cluster.await(allAvailabilityGuardsReleased());
}
Also used : Label(org.neo4j.graphdb.Label) TestDirectory(org.neo4j.test.rule.TestDirectory) Assert.assertTrue(org.junit.Assert.assertTrue) Test(org.junit.Test) LabelScanStore(org.neo4j.kernel.api.labelscan.LabelScanStore) ManagedCluster(org.neo4j.kernel.impl.ha.ClusterManager.ManagedCluster) LifeSupport(org.neo4j.kernel.lifecycle.LifeSupport) TestGraphDatabaseFactory(org.neo4j.test.TestGraphDatabaseFactory) Iterators.count(org.neo4j.helpers.collection.Iterators.count) TestHighlyAvailableGraphDatabaseFactory(org.neo4j.graphdb.factory.TestHighlyAvailableGraphDatabaseFactory) Rule(org.junit.Rule) GraphDatabaseService(org.neo4j.graphdb.GraphDatabaseService) ClusterManager.allSeesAllAsAvailable(org.neo4j.kernel.impl.ha.ClusterManager.allSeesAllAsAvailable) After(org.junit.After) KernelExtensionFactory(org.neo4j.kernel.extension.KernelExtensionFactory) ClusterManager.allAvailabilityGuardsReleased(org.neo4j.kernel.impl.ha.ClusterManager.allAvailabilityGuardsReleased) GraphDatabaseSettings(org.neo4j.graphdb.factory.GraphDatabaseSettings) Transaction(org.neo4j.graphdb.Transaction) ClusterManager(org.neo4j.kernel.impl.ha.ClusterManager) Assert.assertEquals(org.junit.Assert.assertEquals) Before(org.junit.Before) GraphDatabaseService(org.neo4j.graphdb.GraphDatabaseService) TestHighlyAvailableGraphDatabaseFactory(org.neo4j.graphdb.factory.TestHighlyAvailableGraphDatabaseFactory) TestGraphDatabaseFactory(org.neo4j.test.TestGraphDatabaseFactory) Label(org.neo4j.graphdb.Label) ClusterManager(org.neo4j.kernel.impl.ha.ClusterManager) Before(org.junit.Before)

Aggregations

Label (org.neo4j.graphdb.Label)82 Test (org.junit.Test)55 Node (org.neo4j.graphdb.Node)48 Transaction (org.neo4j.graphdb.Transaction)44 GraphDatabaseService (org.neo4j.graphdb.GraphDatabaseService)12 RelationshipType (org.neo4j.graphdb.RelationshipType)8 DependencyResolver (org.neo4j.graphdb.DependencyResolver)6 DynamicLabel (org.neo4j.graphdb.DynamicLabel)6 KernelTransaction (org.neo4j.kernel.api.KernelTransaction)6 Statement (org.neo4j.kernel.api.Statement)6 ArrayList (java.util.ArrayList)5 ConstraintViolationException (org.neo4j.graphdb.ConstraintViolationException)5 Relationship (org.neo4j.graphdb.Relationship)5 GraphDatabaseAPI (org.neo4j.kernel.internal.GraphDatabaseAPI)5 TestGraphDatabaseFactory (org.neo4j.test.TestGraphDatabaseFactory)5 File (java.io.File)4 HashSet (java.util.HashSet)4 CoreMatchers.containsString (org.hamcrest.CoreMatchers.containsString)4 Matchers.containsString (org.hamcrest.Matchers.containsString)4 TransactionFailureException (org.neo4j.graphdb.TransactionFailureException)4